February 25, 2010 6:23 PM GMT
How often have you heard the "building a house" analogy when debating scope, architecture and design in an OSS project. There must be lessons software projects can learn from the construction industry.
Why does the construction industry seem, on the face of it at least, to deliver projects more reliably than software projects? Whether skyscrapers, bridges, ships - to an outsider, delivery seems to be on time, maybe slightly over budget, or slightly delayed but the building goes up and the ship floats. (I am conveniently ignoring self managed house developments :) )
I am sure there are many reasons – but a couple spring to my mind.
Firstly, a building doesn’t normally have changes made to its foundations made after work has started.
Second, one reason might be that in Construction, there isn’t really any testing done. Or rather, after the implementation is completed no testing is really done – except perhaps minimal acceptance that the carpets are finished nicely. Why? Because in fact there has been an immense amount of testing leading up to the construction project – centuries of human development in working with different materials; science and engineering research into what can and can’t be done. The whole construction project consists of implementing a design that only uses tried and tested components, or integrations that are tried and tested, using tried and tested components. Is this "Open Source" engineering!?
Is there a software project parallel to this? (other than COTS products or testing led development methodologies). What lessons can be learned from other industries project management?
Or maybe all projects in every industry in reality suffer the same problems?