The 5 Laws of Choosing a Software Developer

By Christopher Hawkins •  Updated: 08/14/04 •  4 min read

This one is for all the businesses that need to hire out for some software development work but don’t have the necessary experience to reliably choose a winner.

So you have a software project in mind, and you are trying to choose the right developer to take on your project and bring it to life.  But how can you avoid hiring a rank amateur who merely talks a good game, or a pure programmer who understands how to write code, but doesn’t understand your business?  After all, it’s easy to claim to be a software developer; no licensing is required, and there are no public records of who has done good work or bad work for you to look up.  All one needs is a computer and some books, and a “programmer” is born.  This low barrier to entry makes life difficult for both the clients and the competent developers.  Luckily, you can save yourself a lot of trouble by demanding these 5 items of any software developer you hire.

1) Demand Experience.  Unlike the stock market, past performance is a great indicator of future results when it comes to evaluating a developer.  Certifications and degrees are good, but they only tell part of the story; it’s better to look for your prospective software developer to have at least 5 years of experience in positions of ever-increasing responsibility.  For most small business projects, you need someone who has done more than just write code; the ideal candidate will have experience successfully leading entire projects from start to finish.  A person who has worked as a programmer can write code, but an actual developer is a notch above that.  A developer someone who can analyze your business needs, design the project, write the code, implement the project and provide support afterward.

2) Demand References.  Ask your developer candidate for a list of references, and be sure to contact them.  In addition to asking about technical competency, ask questions about the developer’s approach to customer service – is the developer available by phone or eMail a reasonable amount of the time?  What kind of a response does the developer give when asked for emergency or non-emergency help?  Along with the references, you should ask to see samples of work the developer has produced that is similar to your project.  If the developer asks you to sign a non-disclosure agreement before showing you these samples, that is reasonable.

3) Demand Value.  You should never select the least expensive developer you can find; that virtually guarantees that you are hiring an amateur, and will get your project in trouble.  Instead, look for the best value – the place where price and results meet.  An exceptional developer might outperform a mediocre one by 10 to 1 in some cases, but cost only 1.5 or 2 times more; that means your total project cost could potentially be much lower than if you hire a less-skilled developer who lets your project get out of control.  Some developers will request that you pay a deposit at the outset of the project – this is reasonable, and is a common business practice.

4) Demand Communication Skills.  If you show me a person of average intellect with exceptional communication skills, I will show you a person who can be trained to be a better software developer than most of the introverted geniuses you hear about in this industry.  The best developers out there have taken the time to learn how to speak your language (the language of business) and will happily listen to your comments, opinions and concerns, then explain to you in plain English how their proposed solution is going to work, and how it is going to help you.  If you find you are unable to communicate effectively with each other, it’s best to move on to the next candidate.

5) Demand Availability.  Nobody expects a software developer to have only one client or project at a time; it’s just not realistic.  At the same time, you need to avoid hiring a candidate who is hopelessly over-committed.  The first thing to consider is: when can the developer schedule your project to begin and end?  What is the developer’s current workload?  What kind of a schedule can you expect your project to progress on?  How often can you expect milestones to be completed?  If you have a hard deadline, discuss it with your candidate; make sure the developer can commit to meeting it.