Chapter 83. Testing Is the Engineering Rigor of Software Development
DEVELOPERS LOVE TO USE TORTURED METAPHORS when trying to explain what it is they do to family members, spouses, and other nontechies. We frequently resort to bridge building and other âhardâ engineering disciplines. All these metaphors fall down quickly, though, when you start trying to push them too hard. It turns out that software development is not like many of the âhardâ engineering disciplines in lots of important ways.
Compared to âhardâ engineering, the software development world is at about the same place the bridge builders were when the common strategy was to build a bridge and then roll something heavy over it. If it stayed up, it was a good bridge. If not, well, time to go back to the drawing board. Over the past few thousand years, engineers have developed mathematics and physics they can use for a structural solution without having to build it to see what it does. We donât have anything like that in software, and perhaps never will because software is in fact very different. For a deep-dive exploration of the comparison between software âengineeringâ and regular engineering, "What is Software Design?â, written by Jack Reeves in C++ Journal in 1992, is a classic.[10] Even though it was written almost two decades ago, it is still remarkably accurate. Reeves painted a gloomy ...
Get 97 Things Every Programmer Should Know now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.