The Airsource Blog

On starting a software company

This blog has been going for nearly a year now - our first post was on January 29th. Airsource has been around for a little longer than that - I quit my job at QUALCOMM to work full-time at Airsource in June 2006. We're approaching the end of the year, so what better time for a bit of a review. I'm going to stick to the technical side of things - I'm sure Nick will have something to say, and maybe one of our new employees will want to give their view of things too.

There are several key things I've learned in my time at Airsource. The most important one is that when it's your own company, it's not enough to be good, or even just better than the next guy. You need to be great. Every time I write code, at the back of my head is the feeling that some day this code may be run by a customer. And it had better work, because if it doesn't, one way or another it will be my problem. No matter how principled you are, that ethos simply doesn't apply when you're working for a large company. You write the code, you test it, the QA department passes it, and you walk away. You don't even have to do any sales!

The corollary of this is that it's not just enough to write good software. It has to be the right software. By that, I mean that you need to make absolutely sure that you know what the customer is asking for - and that what the customer is asking for is really what they want. And then, you need to deliver that, deliver it well, and ideally deliver just a little bit more. You don't want to give the farm away, when consultancy is what keeps a roof over your head, but you do want to give the customer a warm fuzzy feeling.

If you are writing a product, you don't develop the thing in a clean room and then unleash it on an unsuspecting public. Or if you do, it will probably flop. You do some market research first. You do usability testing. You go out there and find out what people want. In the same way, when working on a client project, it's your responsibility to make sure you are doing what the customer wants. And remember, even if what the customer is asking for sounds stupid, there's a reason behind it. At least when you're a small software company, your customers are almost guaranteed to be making a lot more money than you are. Which means they're doing something right.

When Airsource finishes a customer project, we send someone along who didn't write any of the code, and had as little involvement as possible with the project. They sit down with the customer, and do a post mortem. The customer gets the chance to voice any and all complaints that they have. They are surprisingly frank. I've had some feedback about me that people would never give to my face. And then, when we've got the feedback, we sit down together at the office, and figure how to make the next project an even better experience for the customer.