Monday, February 3, 2014

Software Craftsmanship

The first thought I had when I read the first two sentences of the Wikipedia article on Software Craftsmanship was "Agile!". And, sure enough, three sentences later, the article mentions the Agile Manifesto. Clearly, based on this article, developers have started to favor an approach to software that is more people-oriented and flexible (like Agile) and have even begun viewing software creation as a "craft", much like in a medieval guild.

To me, the term "craftsman" describes someone who creates things (anything from software to buildings) and takes pride in producing a product that is high quality. In this sense, I think any engineer, not just software engineers, are craftsmen. Engineers build or create things that help better the world (or at least a small piece of it) and any good engineer will take pride in producing a quality product. However, the Wiki article seems to imply that engineering (though not necessarily software engineering) is not a craft because it has a more mathematical and analytical (read, "stricter and more rigid") approach that requires licensing and certification.

I am somewhat torn about this view. On one hand, I can see how regulation and inflexibility can remove the person from the equation, thus removing the essence of "craftsmanship." On the other hand, just because there is licensing and regulation does not mean that engineering is not a craft. Medieval guilds were essentially a form of licensing--i.e. if you were a member, you had been trained in that guild's craft and were expected to follow certain rules. The article seems to imply that because software engineering does not have these restrictions, then it can be considered a craft while engineering in general cannot. I certainly think that the greater flexibility and few restrictions in software engineering mean that it is easier to pass on knowledge, but as far as skilled crafts go, software engineering is not the only engineering discipline that requires skill, practice, and some amount of pride to perform well in.

No comments:

Post a Comment