I guess many business owners in the software construction field already knows this and put this into practice. But for me who is relatively new in this business (2.5 years), this is an important revelation. And it comes down to this: there’s remarkable similarity in marketing approach, human resource management, subcontracting management, and quality assurance between building construction business and software construction business.
- Marketing approach. Any respectably large construction company (think ABB, etc) can practically take on any building project of any size (from small house to Olympic stadium complex, to gigantic dam), including the kinds never attempted before by anyone else (eg constructing the tallest building in the world). The same fact applies also to any large IT consulting company (think Accenture, Delloite Consulting, IBM Global Service, etc). They can practically take on any software project of any size (from small parking lot software to single ERP instance controlling a truly multinational company), including the kinds never attempted before (eg first software that allows sender to monitor where his/her package is currently located in the global distribution network of a global courier, all from the simplicity of the person’s own bedroom computer). But it makes no sense for large construction company to be calling person by person, company by company, government by government, telling them, “We can construct anything. Do you need anything constructed?” That would be great waste of time and money. So it is with large IT consulting company. What they can do is publish the wide array of wonderful services they have provided so far through as many media as possible, repeat that as often as possible so the brand sticks, and hope that if anybody needs any construction of any kind, they will remember the advertisement and give the company a call.
- Human resources management. Construction business requires many people with different and highly technical skills. They need architects, civil engineers, project managers, people who’s good with concrete, others who’s good with steel, yet others with heavy equipment, welding, landscaping, etc. Each skill requires years for a person to master. Because of this, in the market there’s very few who can be good at many of these skills at the same time. It is a lot more frequent to encounter people with developed skill in one or two areas only. However, not all construction projects require every single one of those skills. Some projects don’t need welding, some don’t need landscaping. Because of this, it is financially unwise for construction company to maintain human resources pool that cover all possible required skills. The better approach would be to maintain labour pool for few skills that have rather constant demand, and obtain the rest of the skills on project by project manner (ie contract based). The same holds for IT consulting company. Here, multiple distinct, highly technical skills are available; solution architect, project manager, network administrator, system administrator, database administrator, Java programmer, C programmer, Visual Basic programmer, PHP programmer, and so on. Again, each of these requires years for a person to master (as opposed to simply knowing something about it). And again, not all software projects require all of these skills. Here too, it’s financially imprudent to maintain labour pool to cover all these skills. Maintain few with constant demand, and get the rest on project by project basis.
- Subcontracting management. Almost all fields of business utilise subcontracting as a manner to overcome sudden surge in demand. But in construction business, subcontracting has to be used almost all the time. This is somehow related to the second point above regarding human resources management. Realising that it’s bad financial move to maintain large labour pool with diverse technical skills, subcontracting businesses flourish in field of construction. Any large construction company handling huge project such as Olympic stadium complex may have more than a hundred subcontractors in total, a result of subcontractor subcontracting works to few other subcontractors. Same thing holds for IT consulting business. It is widely known in the field that majority of projects involve subcontractor(s). Yes, even the large software projects by large IT consulting companies use subcontractors.
- Quality assurance. This is a rather important aspect, since it’s complicated to maintain good quality of work when you don’t have the same set of people from delivery to delivery of projects. In manufacturing companies where factory workers stay around for a while, it is already a hard job trying to maintain consistently high quality. Imagine doing that with different sets of people doing the job at each project. How are construction businesses seemingly able to maintain quality although they use different people at different project? I think this is done by monitoring reputation of people or subcontractors. People or subcontractors who did good job will have good reputation and will find themselves more favorable to main contractors. The one who did sloppy job will be haunted by the fact until they start fixing it some time in the future. I think same thing can be applied to IT consulting business. Reputation also matters here. Good programmers or IT subcontractors will slowly make name for themselves and find it easier to get projects. Programmers or IT subcontractors who do sloppy jobs, and I can easily name a few, will in time fade into obscurity. Using this, good IT consulting company can maintain high quality of its works.