I have worked for some large (very large) companies that have engaged with a small to medium software companies and the relationships have been far from optimal: Poor delivery of software, incomplete functionality and occasionally a complete breakdown in the professional relationship. So how (and why) does happen? And what can you do to prevent it? Here, I present some thoughts:
1. It is almost impossible to have enough documentation at the requirements and design phase
2. Make sure that both sides of the relationship are involved in and have ownership of those documents
3. For goodness sake, keep the requirements and design documents live
This is just basic stuff and should be nothing new. What comes next is a bit more controversial:
4. As a client do not suppose that you know more about your business than the software vendor. As a software vendor do not suppose you know less about the intellectual process behind your software product than the client.
The justification for this statement is two-fold:
i. At an Oracle presentation in 2001 (oh how I wish I could actually find this stat) the presenter stated that Oracle had recently completed a survey to gauge satisfaction with one of their ERP style applications: Of the companies that had modified the system to match their business process there was a 20% satisfaction. Of the companies that had modified their business process to match the system there was an 80% satisfaction.
Now, yes this was provided by a software vendor, so you can expect more than a bit of self congratulation. And on its own it might not have stood up were it not for the following:
ii. Just because you work for a large company, does not necessarily make you smarter or your processes better than the ones provided by the software vendor. Of course, your processes may be better, but chances are that the software vendor has studied many many organisations to design their system- if you have been working at the same large company for a long time, you have studied precisely one organisation.
Hidden in that paragraph is a little dig at workers at large companies and a compliment to workers at the software houses: It is really tough for a small company to dictate to a really large company (who may be offering a contract big enough to keep you in clover for a year) but as a software vendor you have to have faith in your own product. Because if you don’t then the client will try to impose their thought processes (which may be wrong) on your product.
Trust me, I know. I’ve seen it done and been unable to stop it