Cutter Fellow Tom DeMarco‘s IEEE Software Computing Now magazine editorial Software Engineering: An Idea Whose Time Has Come and Gone? has caused quite a stir.
Tom’s article has spread like wildfire through the Twitterverse (beginning with @yourdon), and has inspired many surprised (and insightful) blog posts. Johannes Ernst finds Tom’s statement that he’s “gradually coming to the conclusion that software engineering is an idea whose time has come and gone” as shocking as “the pope declaring that perhaps god doesn’t exist.” Coding Horror‘s Jeff Atwood went further, stating “If your head just exploded, don’t be alarmed. Mine did too.”
In the piece, Tom re-evaluates his trademark focus on metrics and control (including his oft-quoted “You can’t control what you can’t measure”), and examines scenarios where control and planning can actually impede the progress of amazing advances (he cites Google Earth and Wikipedia as examples).
“Consistency and predictability are still desirable, but they haven’t ever been the most important things. For the past 40 years, for example, we’ve tortured ourselves over our inability to finish a software project on time and on budget. But as I hinted earlier, this never should have been the supreme goal. The more important goal is transformation, creating software that changes the world or that transforms a company or how it does business.
We’ve been rather successful at transformation, often while operating outside our control envelope. Software development is and always will be somewhat experimental. The actual software construction isn’t necessarily experimental, but its conception is. And this is where our focus ought to be. It’s where our focus always ought to have been.”
Clearly, when a guru of Tom’s stature reopens a long-accepted position it creates quite an opportunity for discussion. What are your thoughts on “engineering software” that transforms, rather than continuing along using the full set of disciplines that “software engineering” has come to include? Read the article, then chime in.