Wednesday, December 29, 2010

Choosing a Vendor

This is another short article on the Cliffs Notes of Software Development series.  In this post, I'll offer some tips on how to make a good choice for your custom software vendor.  This article doesn't discuss the decision of whether you should build or buy; it assumes you're already down the path of building something - whether it's a completely custom solution, or customizing packaged software.

In no particular order, here are some things you can do that will keep you headed down the right path:
  • Get assistance from an experienced and trusted guide.
    If you don't speak the language and know the turf yourself, find someone that does.  For any project that matters, it's far cheaper to get good, unbiased advice up front.  Maybe one day you'll be able to rely on your vendor as that trusted advisor, but until they've proven themselves, use caution.  It doesn't have to be a long-term engagement; it can be a quick "am I headed down the right path?" few hour session at critical milestones. 
  • Ensure they can communicate technical concepts clearly.
    Don't trust a geek that can't clearly translate techno-babble.  Our tribe is notoriously bad at glomming onto the latest technical trends regardless of their merit to the business.  It's an extremely rare breed of technical advisor that has the experience and wisdom to know when something is a genuine improvement, and not just another revision of a failed idea that a vendor is relying on for their revenue (e.g. Portals, EJBs, ESBs)
  • Identify and interview the implementation team.
    The software industry is still immature by trade standards, and the construction of most new projects requires a lot of experience and mindful improvisation.  i.e. The people building the software (not just designing it) can not be commoditized yet (if ever).  Most software vendors (especially the bigger ones) will have a mixed bag of staff.  You or your trusted guide should hand-pick the people on your project to make sure they're both technically qualified and a good cultural fit.  Be suspicious of any vendor that objects to this. 
  • Favor those that have done something like this before.
    Sometimes what you're trying to do is truly novel or revolutionary, in which case you should hire a company that specializes on making revolutionary software.  For the other 99% of the projects out there, it's already been done before, and those people that have already done it have learned from their mistakes.  It usually takes a few tries to build any software right, and if this is the first time your vendor is building something for you, be prepared for it to be wrong the first couple of times.  It's just a current fact of life - customers aren't able to specify exactly what it is they want the first time, and builders aren't able to build things exactly right the first time.

Good luck!