Why can't engineering good software be like building a house?

Stephen E. Cross, Ph.D.

Georgia Institute of Technology, Georgia Tech Research Institute

It can! Our management, customers, and even our fellow engineers believe that the engineering of software intensive systems is different and hard. I've exploited this false perception for years. After 30 plus years of building software and supervising software projects, two things now seem obvious in hind sight. First, designing and building great software is not really that much different than designing and building a good house. Both have architectures, both leverage building codes and standards, both benefit from new approaches such as re-use, and both are fundamentally dependent on the skills of the designers and builders and the disciplined processes upon which they base their work. Second, we live in society that expects good houses, but routinely accepts bad software. In this (hopefully) humorous lunch time talk, I hope to enlist you in joining me to convince our stakeholder communities that engineering software is no different than the engineering of other artifacts. And I also hope to enlist your help in convincing the marketplace that they should demand and expect high quality software just like they demand and expect such of other engineered artifacts.