Anyone who has built or remodeled a house and has developed or enhanced software must have noticed the similarity of these activities. I have learned some lessons about requirements engineering while being a customer in a house building and two house remodelings. The biggest problem is to avoid very expensive requirements creep. The main lesson is the importance of the customer insisting on following a full requirements engineering process, including goal identification, requirements elicitation, analysis, and specification, and validation of the specification. A secondary lesson is that a customer has an important role in requirements engineering and he or she sometimes needs to learn that role.
These lessons are reported in two publications:
Berry, D.M., ``Software and House Requirements Engineering: Lessons Learned in Combatting Requirements Creep,'' Requirements Engineering Journal, 3:3&4, pp. 242--244, 1999 PDF preprint
Berry, D.M., ``More Requirements Engineering Adventures with Building Contractors,'' Requirements Engineering Journal, to appear 2003 PDF preprint
I am not the only one who has learned RE lessons from house building.
Roel Wieringa has published his findings:
Wieringa, R., ``Software Requirements Engineering: the Need for Systems Engineering and Literacy'', Requirements Engineering Journal 6:2, 132--134, 2001.
I give a dynamite talk titled ``Requirements Engineering Lessons from House Building'' on these lessons learned.