You have the next great technology idea and you need a programmer but don’t have a programming background. What should you do? The ideal candidate will be able to produce exactly what you are looking for, on time, on budget and keep your application supported in the long run. A lot of start up companies look at hiring in house or even outsourcing over seas instead of approaching a software development company.
There are many reasons why the overseas option is not desirable. Usually overseas developers come with a plethora of complications. Complications such as a the language and time zone barrier are at the top of the list. Usually these companies disappear before the project is completed or immediately afterwards. If the costs were kept really low during the project the savings are quickly burned up when trying to support an application with no documentation and no programmer. The worst case is when the programmers that you hire take your project and use it or resell it to others to maximize their ROI. In my opinion you want to stay away from outsourcing projects over seas.
The next approach is to hire an in-house programmer. There are many advantages to having a programming team in-house. Some of the advantages are that you directly control the project as it unfurls and have an accountable employee in the office that can respond to challenges as they arise. Disadvantages include the increased cost of having to support another FTE (or team); the cost of a full time employee is usually double the cost of hiring a software development company. Also, it is often difficult to hire good, experienced programmers in house that can produce the results your desire at the rate that you are willing to pay.
I have seen many startup companies requesting programmers to work on their project pro bono for a percentage of the company or a hope of future profits. In my opinion that is just ugly and as a professional programmer I would much rather get paid for my services as I am producing results. The best programmers are quite picky when it comes to their projects and usually tend to stick to the development environment that is the most comfortable for them. The bottom line is that the best people to do the job in an efficient manner usually cost a little bit more and you will get mixed results at the end of the project depending on how much they stand behind their code.
It is important to establish a good working relationship with your programmers so that you get all of the bases covered with the least amount of impact to your company. One approach that has worked well for us in the past is to receive a direct percentage of the (long term) company profits to develop at a reduced rate and in return fully support the software product when it is completed. Another approach is to provide excellent documentation so that a third party developer can step in, if needed, and rapidly remedy your situation. Regardless of the approach that you choose, these tips should help you find the right candidate.
#1 – Ask for the programmers approach
When you are selecting your programmer candidate you should always ask them how they will solve your particular problem. Find out what technology will they use and why. This will help you understand how the project will be structured, what sorts of external costs will be required and give you an understanding of how long it will take.
#2 – Develop a support plan at the beginning
Before going down the path of development it is important to understand what sort of ongoing effort will be required to support the application. Find out how far the candidate will stand behind their service and above all make sure you know how things will be fixed when they go wrong.
#3 – Review their portfolio/resume
Give yourself an understanding of what your final product will look like and how it will feel. It is important to see how much experience they are bringing to the table which ultimately will decide how much value the candidate has.
#4 – Don’t get stuck on the design
When reviewing the portfolio, you may notice that the design isn’t what you would prefer. You have to remember that you are looking for a programmer and not necessarily a designer. Often you can find a candidate that is proficient in both areas but my experience has been that the best programmers are horrible designers and vice versa. What you should be evaluating is how the code works. Look to see if it crashes or how well it scales when under a large load. If they accomplished the task at hand successfully, then it is likely that they will accomplish your task as well.
#5 – Compare their rates to others
Like any sort of service, get quotes. Before hiring somebody, find out how much it will cost to have the project completed with support from at least 3 different sources. It can be a time consuming task but it is well worth it and you can use these tips during the evaluation process.
#6 – Know what you want
It can be incredibly frustrating for a programmer to try and guess exactly what their client wants. Most clients have an idea of what they would like to accomplish but haven’t really thought about all of the complexities behind the idea. For example your project may incorporate some sort of shipping model. I choose shipping because it is often one of the most complex components of any eCommerce model. Many factors come into play such as flat/calculated rates, different carriers, tracking codes, order cancellation, country restrictions, package sizes, multiple items within an order etc. The bottom line is that you should truly understand what it is you expect to happen when the end user presses that button. Knowing what you want will allow you to truly convey your project to your programmer and keep your costs down.
#7 – Get it in writing
Before proceeding with a project; both parties need to come to an agreement on how they will deal with payments and a clear understanding of what is included and what is not included. Consider outlining your project even if you are looking at hiring a full time employee so that you and your candidate have a good understanding of what the project milestones are.
#8 – Ask for a demo
Most programmers will be able to demonstrate software that they have already written. This will give you an idea of what to expect when making your final decision.
#9 – Determine other areas of expertise
Find out if your programmer has other skills and services that could prove useful. Perhaps your project requires hosting or computer support. The programmer, or team, can provide value in areas that you didn’t anticipate. Hey, it doesn’t hurt to ask.
#10 – Have a budget before you start
Before you set out into the world looking for quotes and programmers; make sure you know how your project will be funded. You don’t have to disclose your budget to your candidate but it is important to know so that you can set your expectations accordingly.
I know it goes without saying, but it would be a bad move to not knock on the door of the 1MB Corporation [www.1mb.ca]. It is, after all, the best way to ensure your project gets done on time and without hidden surprises.