Sunday, July 19, 2009

Software Engineering: Dead?

Bookmark and Share

Over on Coding Horror, Jeff Atwood pointed us to a recent publication by Tom DeMarco titled, "Software Engineering: An Idea Whose Time Has Come and Gone?" As Jeff points out, DeMarco is someone who has shaped the thoughts and minds of the software world for a couple of decades, and when he unabashedly claims that "software engineering" is dead... well, that falls under the category of "things that make you go huh!?"

Jeff does a nice job of putting DeMarco's comments into perspective and gives us all some things to think about. In particular, he encourages the focus on the "craftsmanship" aspect of our profession. This "passion for the craft" of software development is something many of us are enthusiastic about and spend a great deal of energy fostering within our organizations and teams. Jeff wraps it up nicely, concluding, "The guys and gals who show up every day eager to hone their craft, who are passionate about building stuff that matters to them, and perhaps in some small way, to the rest of the world -- those are the people and projects that will ultimately succeed. Everything else is just noise."

I'm not one to abandon the engineering disciplines - and I'm pretty sure that's not exactly what Jeff or Tom are suggesting - but it's high time we all recognize that much of what we do is a "craft." Crafts are performed by people who care about what they do. When engineering attempts to take the place of heart and passion... we fail.

Check it out at Software Engineering: Dead?


2 comments:

Krish said...

DeMarco did not say "Software Engineering is dead". Here is the entire quote:

QUOTE: I’m gradually coming to the conclusion that software engineering is an idea whose time has come and gone. I still believe it makes excellent sense to engineer software. But that isn’t exactly what software engineering has come to mean.

tatman said...

I can see that too. If you look at the recent product developments microsoft has provided: WPF, WWF, WCF. Its really about assembling some components together; Do not dare try circumventing those components....so the job is really coming more and more about assembling some libraries together and calling it a solution.