Glen Alleman from the
Herding Cats
blog offers
this
post on the subject. I want to agree with him.
I merely need to remind him that there is one key difference
in the two industries:
Estimation -
my experience with software development, and construction projects
(church, home) though small, informs me of a key difference.
In construction projects,
Once the required work is known,
it can be estimated with some reasonable accuracy, because the vast
majority of construction tasks have been done exactly the same way by
the people who are doing them. The tool set doesn't change
every 2-5 years. Carpenters still use nails to fasten wood
together. Wood still has the same physical properties that it
did in 1965. In software, there is a programming language
every 6 weeks, and every 10-20 years the nature of raw
materials change - assembler to procedural to functional to
4gl to object oriented, etc. The new raw materials and tools
require estimation to be redone from scratch. The other
factor in estimation is the difference in productivity
between master, journeyman, and apprentice
practitioners. In construction the difference between
resources can be a factor of 2 or 3, but years of stable estimates for
building 40 linear feet of stud wall, provide a rational basis for
scheduling. In the software industry, only the practitioner
who is doing the work can estimate his or her rate of completion, and
the difference between practitioners can be a factor of 10 or 20.