Building custom software for your business is a daunting task. If you don't possess the necessary skills and lack time to learn them, then hiring an expert in the field is your best approach.
Building software is a complex process, and hiring your 17-year old brother in law to build an interface to your accounting package is like handing a hammer to a 3-year old - they might hammer in a nail, or they might destroy your home.
Read on to learn how to find and evaluate software firms and freelance consultants.
Finding a company
Finding a company is one of the most difficult parts of the process. With so many firms offering software development services it's hard to sift the wheat from the chaff.
I recommend: Talk to other entrepreneurs or business acquaintances; it's very likely someone you know has experience with a software or web consulting firm and can make a recommendation.
Look for experts in the field by finding people who publish books and articles. For example, for ASP.NET development,
asp.netPRO magazine is a great source for knowledgeable consultants.
Keep in mind the wide variation in pricing; off-shore firms charge $15-60/hour, domestic freelancers charge $35-65/hour, experts in the field (people who publish articles and books) charge $75-150/hour, and most domestic firms charge $75-150/hour.
Remember that location may not matter if you are confident in your ability to communicate via email and telephone. Plenty of good software is built with no face to face contact.
Experience is crucial
With the abundance of firms offering their services it should be easy to find one that has done work in the past similar to what you want.
I recommend: Ask for links or samples of their work. If they've only built
desktop applications and you want an application that runs on the web, move along.
Ask for the specific experience of the team that will work on your project. A larger firm may have 50 employees, and one team's experience does not transfer to other teams.
Take a look at their website. If it looks hideous, perhaps they aren't the people you want building your software.
References are also key
Some companies build beautiful software, but you'll want to be sure you can get along with them and that they service their customers after the product is launched. Maintenance is critical to an application's success.
I recommend: Ask for references. If a company can't give you three solid email or telephone references of past clients, consider removing them from the list.
Perform a
Google search on the company or person's name to find out if there have been any problems in the past.
Certifications and publications show they're involved
There are many technical certification available. While certifications do not carry as much weight as experience, they do indicate that the person was dedicated enough to study and take the test, and that they have a basic understanding of the subject. Publications show that the person is involved in their community, communicates well, and has a mastery of the subject matter.
I recommend: Look for certifications and publications as added support of a developer's expertise in the field. For more information about Microsoft certifications and what they mean, click
here. For Java, click
here. For PHP, click
here.
Should you consider off-shore vendors?
Off-shoring has the potential to save you money. If you can specify your project to a high level of detail, in writing, then consider off-shoring; if your project is still a somewhat vague idea in your head, consider pursuing a domestic firm. Some things to be aware of are the significant time difference and potential language barriers. If you have trade secrets or store private customer data be sure to use a reputable off-shore firm.
I recommend: Use the same criteria listed above to evaluate off-shore vendors. Do not let low price fool you - you will have to live with your software for a long time and you will be much happier if you invest wisely up-front instead of having to do a re-write later on.
One final note:
Global intellectual property law is fuzzy, and according to some recent news, an off-shore firm could feasibly offer your software to your competitors without legal ramifications.
Don't use the cheapest vendor
There is a huge difference in the end result of someone who knows what they're doing and someone who talks like they know what they're doing. If you're not a programmer yourself it's likely you won't be able to tell the difference.
I recommend: Be cautious when using sites like
elance and
guru. You will find diamonds in the rough on these sites, but they are also heavily populated with students who are still learning the technologies. It's hard to tell the difference without in-depth technical knowledge so find someone to ask who's an expert in the field.
Making the decision
It's time to decide between the vendors you've evaluated.
I recommend: Find 2-3 vendors that fit the above criteria and go with the one you think you will enjoy working with the most. If you've stuck to the recommendations above it will be hard to go wrong with whomever you choose.
If you every need a second opinion feel free to contact me
here.