Skip to content

Software engineering: mea culpa time?

Jeff Atwood had a gestalt on reading a paper by Tom deMarco.

I can publicly acknowledge what I’ve slowly, gradually realized over the last 5 to 10 years of my career as a software developer: what we do is craftsmanship, not engineering. And I can say this proudly, unashamedly, with nary a shred of self-doubt.

There has been this thing about trying to make the creation of the code required to make a computer do something a science or an engineering effort. It never quite fit. Proper “computer science” is really just a branch of mathematics. “Software engineering” is more of a management job that a software development activity – and management is not engineering.

Still, adding “science” or “engineering” to something has an appeal. But that doesn’t make it right.

With this paradigm shift from looking at software development as engineering to the craftsmanship point of view, many things make a bit more sense. One is the fact that some coders are orders of magnitude more productive than others. Another is the fact that some produce a much higher quality of work than others. Another is the fact that rank amateurs and self taught coders can create usable product. An engineer is trained but a craftsman develops skills via apprenticeship.

This idea has implications for the formation of teams and for the supervision and management of human resources. It could be worthwhile to think of software development as an effort of craftsmen and not as software engineering.

Post a Comment

You must be logged in to post a comment.