Contractors and Consultants

Contractors and consultants should not run your project for two simple reasons. First, a contractor has to learn about your business in order to start accomplishing anything. Once they do there is a good chance that they will leave before the project is completely finished – and once the project is finished they will definitely leave. Each time someone leaves, the investment made in learning your solution leaves with them. You, the client, will end up paying for retraining their replacement. Second, the consulting model does not reward the correct behaviour. It rewards getting the solution up and running in the quickest time with the lowest possible budget. It does not account for the long term cost of ownership, which can be 5 times[2] or more of the initial project cost.

Consider:

  1. It takes at least 1-2 months for a development team to ‘gel’ and start producing. Team cohesion can impact the cost and time of development by a factor of 3 to 5 times.[3]
  2. There is an absolute minimum time required for any software project. No matter how many people you assign to the project, it CANNOT go any faster. In fact, with too many people it will go slower. This was popularized by the book “The Mythical Man-Month” published in 1975. The key reason for this constraint is communication. The more people, the more communication. At some point adding more people costs more then it gains.
  3. Each software application has a ‘documented memory’ – the documentation, operation and source code of the application, and an ‘undocumented memory’ – the memory of the team members about how everything fits together and why it was done that way. The ‘undocumented memory’ is a key factor in avoiding making the same mistake or bad assumption you made previously.
  4. In IT, especially in consulting, job mobility is very high. It is likely that many of the people involved in the initial project will not be with the same company when you need them later. And it’s very likely that they will be busy on other projects – especially if they are good.
  5. Maintenance fees for business applications average 5 times the initial cost over the life of the application. Since most applications are not built to be maintained anyway, most organizations just give up and the application slowly gets harder to use – costing the organization time and money – until it’s replaced by another stop-gap solution well before it’s time.

Given these observations we find it amazing that people try to apply the ‘consulting’ model to building solutions at all. In the consulting model you bring together a team for ‘version 1.0′. They organize themselves, learn how to communicate with each other, refresh their minds on the tools, learn the ins and outs of your business, then eventually get some development done and get version 1.0 out the door. The team then disperses. Because the timelines are tight and the budget slim the software is built only to work, not to be understood or maintainable over the life of the application.

When your business changes and the software needs to adapted to fit, you have to go through the whole process again. But this time the team also has to labour to understand how version 1.0 was built, since the first team didn’t necessarily have the time and knowledge to build it in a maintainable manner.

This is why consultants and contractors should not run your project. Not because they are not smart people – consultants are often the most intelligent and knowledgeable people in the business. It is because the business model, and their bottom-line source of motivation, is against them.