Requirements Engineering Lessons from House Building

Daniel M. Berry

Cheriton School of Computer Science
University of Waterloo
Waterloo, ON, Canada


Anyone who has built or remodeled a house and has developed or enhanced SW must have noticed the similarity of these activities. This talk describes some lessons about requirements engineering I learned 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.