The single most important decision you make now is selecting the person that converts your idea into actual software.
Everything you say or show your developer will be filtered through their own experience, preferences and expectations of how software should behave, so you need to find a good one right from the start.
Unfortunately, and as with most service industries like lawyers or accountants, you often don’t realize you’ve made a bad choice until something goes wrong – and that could be years down the track.
The key to mitigating this is to ask the right questions and look for clues early in the relationship.
If your website goes down in the middle of the night, or a client has an urgent feature request, you need your developer to be ready and available.
Now, I’m not talking about when they go on holiday or are away sick – these are predictable and part of life. I’m talking about the times when they already have a 12-hour day behind them and your site goes down as they’re walking out the door.
Promptness and availability are the type of thing that is best observed over time, and by then it’s too late to change (cheaply).
But there are still some helpful things to look for early on:
- when you ask for your initial meeting request, are they quick to get back to you?
- if they are late on something, do they advise you early or simply fail to deliver?
- are you able to get their mobile number or just an office number?
By virtue of them being the gatekeeper between you and your product, your developer should understand that being highly available is simply part of the job.
But don’t abuse their generosity. If you’re pulling them out of family dinners with something you’d like to have – or worse, something that is urgent but late because you were disorganized – then you might be looking for a replacement soon.
As I mentioned earlier, every idea you have for your product will be filtered through your developer, so it is imperative that you can communicate well with them.
Communication is much more than simply conveying an idea.
A good developer won’t just listen to what you’re saying – they will also listen to what you’re trying to say and incorporate this into your planning. You won’t need to speak geek because they’ll interpret your non-geek requirements accordingly. For example, they may recognize that two of your requirements are competing with each other, or that two could be rolled into one to save money.
Ideally your developer will also have an appreciation of the non-technical parts of your business, such as sales, and advise on how your product can be built to complement these. Remember that they’ve been building software for a long time and have seen a lot of successes and failures so their experience is a valuable resource. Make sure you listen when they speak up – good communication is a two-way street.
Finally, it helps if you have a personal rapport with the developer. It’s really important that you remain partners in the project and don’t devolve into adversaries. Clear and open communication is key to this.
The best way I know to establish a developer’s communication level is to… communicate with them! Organize a face-to-face meeting and make sure you have a chat about non-technical things too.
Exchange rate differences between countries can save you a great deal of money when purchasing products or services, and this includes software development. For this reason, many western companies outsource their software development to places in Asia such as China or India.
The price offered by these offshore companies can be very appealing – I often see quotes at 30% of their western counterparts – however you must remember that this only represents value if the product is delivered to an equivalent level of quality and timeliness.
It is my experience that this is rarely the case. Specifically, communication becomes a major problem when dealing with offshore companies:
- the client and developers are usually in different time zones, so turnaround time on communication is massively slowed
- the developers do not always speak the same language as the client – certainly not to a comfortable conversational level. Many times the offshore company does have a fully conversant project manager, but this puts you a level removed from the developers themselves
To mitigate this, you must be prepared to write extremely detailed instructions in a manner that the developers can understand, which ironically requires a skill level akin to the developers themselves. This is why the companies that get the most value out of offshore development are other development companies that can out-source parts of their development process.
My recommendation is to start with a local developer until you get an understanding of the development process and then slowly out-source parts of the project as you grow.
Word of mouth
As with most service industries, sometimes the best indicator of a reliable supplier is a good reference from a friend or colleague that you trust. If you don’t know anybody with the first-hand experience that you need, it’s perfectly reasonable to ask prospective developers for examples of previous work or references from other clients.
Keep in mind though that different software projects require different types of developers. If a friend has recommended somebody, you still have to make sure they are suited to the type of software you are building.
Another good place to get a reference is from other developers. Just as a builder can usually recommend a plumber or an electrician, developers usually have a network of people and companies they trust. If they are not suited to your job, perhaps they know somebody who is.
The price of your developer is one of the first and most tangible things you can ascertain about them. Obviously you want to keep your costs low, but here’s a few things to keep in mind:
- a low hourly rate means nothing if they take twice as long to complete the project
- a higher hourly rate generally means the developer is more experienced, which means they are better equipped to handle that one in a hundred disaster that could tie up a junior for days
- your choice of platform will be a large influence on price. Platforms with high licensing fees or development tools tend to have their costs passed on to you (don’t worry, I talk more about platform choice later)
- don’t overlook the value of personality and communication. Be happy to pay a bit more for someone you can enjoy working with
Finally, people often concern themselves too much with the up-front and short-term costs of a software developer. Trust me – a talented and reliable developer, who prices themselves accordingly, will save you money in the long run with an extensible architecture and software that your customers love.
Ben Liebert is the owner of Blackball Software, a software development & consultancy company specializing in the .Net platform. Blackball was established in Auckland, New Zealand in 2004 and has worked with a variety of different firms to help bring their unique software requirements to reality. Ben is also the author of How to know if your software developer is trying to kill you