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 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 good indicator of future results
when it comes to evaluating a developer. Certifications and degrees are good,
but only tell part of the story – 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 –
someone who can analyze your business, 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 most inexpensive 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 – 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.
Christopher Hawkins
is a 10-year veteran of the software development business, specializing in the
rescue of at-risk software projects. He leads the Software Development Services
team at the Torian Group, which provides a full range of Technology Consulting
services to local business, including computer services, networking and software
development. They can be reached at (559) 733-1940 or on the web at http://www.toriangroup.com