We have been building iPhone apps for over two years now. When we started the company, there were hardly any people interested in making app, and we had to make do with the projects that we got. For the first six months, we never once took a project which took more than three weeks to build. Infact, there was one, which we did in three days flat!

Let's make an app for that

Things changed quickly in late 2009. Almost everybody wanted an iPhone app. For the first time ever, we started getting more requests than we could possibly handle, and we decided that the first come first serve model that we had followed till then, had to go. It was really frustrating to let a really cool project go because we didn’t have the time to take it up. That was when we decided to get a little picky with the type of clients that we worked with.

Now, getting picky with clients is a little tricky. It is usually difficult to find out about how the client will turn out before starting the project, so you might commit to something you think is really cool, but it might not feel the same two months down the line. So we decided to make a framework to choose clients, based on a bunch of parameters – if it was a startup or not, if we thought that the product would do well, and what kind of software does the specific company usually work on.

Most of the companies pay a lot of attention to what the client’s experience with their company was, but for one, I think that it more important to track how was your teams experience with the client. I can not say this for product companies but for services firms, this part is really important. If you and your team is going to spend the next six months putting your heart and soul into making a product for somebody, you should be sure that you work with someone who appreciates the effort that you put in. The company gets paid, sure. But nothing kills the team’s morale more than an uptight client.

Anyways, after working with lots of clients from across the globe, and much debates, we came up with a framework on how should you go ahead and rate your clients, before you start working with them. It won’t work for every company, but it might give you a blueprint of how you should decide for yourself.

How important is it for them?

The first step is finding out how important the project is for the client. If it’s an internal software where they would have to force their team to work with the software that you make, we usually just say no. If it’s a startup, you know for sure it’s important and you give them more points. If there are two founders, lots of points, if three, lesser, five or more, really low points. If some of founders have left jobs, more points. If at least one of the founders is a techie and can answer questions, more points. If at least one of the founders has great marketing experience, more points. If there are two founders and both have stunning resumes, and both have left jobs, maximum points. If it’s a huge company, and if you can ensure that the person who’s hiring you is going to stick around in the company, then more points. Usually if it’s a huge company, nothing’s more important for them than their lunch breaks (we’ve met some exceptions as well, but they’re rare).

Will it scale?

The second step is finding out if the client can scale that product. This is slightly tricky, and sometimes even when people do everything right, things don’t work out. That is okay, it’s just the way it is. So the best you can do, is rate them on qualities you think founders / product managers should have and act accordingly. The most important property, is the ability to decide. It isn’t as common as you’d think, and more the number of founders, the slower this is. The best way to find this out is to get on a call with all the founders, ask them small questions which can be answered quickly (like we think that so and so feature [insert really small feature here] from your spec is useless, should we remove it). The point is to track how much time do they take to decide and WHO decides. That is the only person that you want to talk to from now on. If there isn’t one, things will be hard.

What stage are they in?

The third step is to find out how far out are they with the associated parts of the development process. This means that if the wireframes have been done, APIs are ready, content creation is in progress etc. This is really important because at the end of it you’re a services company. Your job is to build a great product quickly and help them get it to the market as soon as possible. You won’t get good feedback from them if the product doesn’t go live in the time that you promised, even if it was their fault. It’s your job to tell them what do they need to do. If the wireframes are not ready, it could take 4-16 weeks before you start development. Just tell them to come back later. If the wireframes are there, but they seem like a quick hack job, you should start discussions on wireframes, but ensure that you tell them clearly that this is just the preparation, you can’t start till it’s finalized and they’re looking for 2-4 weeks before start. Next, it's time to check the APIs. If the APIs haven’t been started, development is going to be a bitch, because you’ll have to struggle with not only your bugs, but also those in the API. If some of the APIs are there, you should push them to finish them before you commit on the timelines. You should also sit down and start testing each to the API calls to measure how stable they are. All in all, their attention to detail and level of preparation would shine through in the first week itself. So keep the option open to stop work after a week if you think that they’re not worth it.

There are a few other things as well, but this is more or less it. If I feel the client fits us on these levels, we introduce them to the team who try to evaluate if they feel that they might like to work with this client or not. If they don’t we make sure that we help the client find somebody else who can help them.

Wrapping up

All in all, spend as much time as you can in finding out more and thinking about the clients that you work with. These relationships will be the ones that help define your network and the kind and quality of work that you and your company will do in the later years. This is not something to be left to chance.