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.
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.
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.
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.
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.
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.
Making the decision
It's time to decide between the vendors you've evaluated.
If you every need a second opinion feel free to contact me here.
- Smaller firms will likely give you more one on one attention than larger firms.
- Developers with "public" faces, such as bloggers and those who publish books and articles have more accountability since they are in the public eye.