The Software Craftsmanship movement…accountabilty or elitism ?
I recently “attended” the virtual hack.summit() conference (https://hacksummit.org/). It was actually pretty great….an amazing assortment of speakers from all backgrounds (from the co-founder of Stack Overflow to the creator of Google Glasses to the creator of Ruby on Rails to the “big data” manager of Facebook and on and on). The sessions were very interactive “fireside chats” with each speaker, all of which were amazingly open and informal. One topic that came up in several was the notion of “software craftsmanship”. Maybe I have just been too “head down” in my own work over the years, but this was a new one on me (I think it really got started around 2011 anyways haha). Heard of it?
Well, one of the speakers was Robert Martin(https://en.wikipedia.org/wiki/Robert_Cecil_Martin)….also known as “Uncle Bob”…who was one of the creators of the “Agile Manifesto”…and later the “Software Craftsmanship Manifesto”. As I understand it, the idea of “software craftsmanship” was born out of what he and others saw happening in the Agile world. As he put it, when Agile began, it was a “programmers’ thing”….meant for developers. As Agile caught on, he saw where there were lots of people being certified as “Scrum Masters” who had absolutely no programming background…often project managers looking for a new role. This did not sit well with him as he thought “how can someone with no programming background really understand and appreciate Agile and its outcome….to produce great code”. So, he (and others) hit upon the idea of “software craftsmanship” (Manifesto for Software Craftsmanship) where the “craft” itself of programming/development is held to a higher level…..in an nutshell as they state “raising the bar of professional software development by practicing it and helping others learn the craft”. As Bob stated, when he started coding, it couldn’t kill you….today however, software can kill people or crash economies literally because of how dependent most all things in our world are on it….therefore, we must hold it’s creation to a higher level. Personally, I can see the merits of this on the one hand….don’t we all who develop software/apps/etc want to crank out good, well-written code? do not all of us hold ourselves to a certain level such that we create code we are proud of?…well sadly, the answer is “no”….so in that sense, I can see where they are going with this.
On the flip side of this was David Heinermeier’s (creator of Ruby on Rails) session. When asked his thoughts on “software craftsmanship”, he had a MUCH different view. He argued that those considering themselves “craftsman” get too caught up on the “beauty” of their work (and it becomes an ego thing) versus producing the functioning software intended. Furthermore, it lends itself to a kind of elitism among the programming world. For example, you might get those “craftsman” types considering themselves above/better than say some guy learning PHP that cranked out a great site because the “craftsman” might argue PHP is not a real language….but isn’t it still all programming? And that too is another point of contention for him…..he got into programming because it is so open and accepting. You do not have to be a trained programmer or software engineer to pick up programming and do it. All you need is an interest in it….and a passion for it and learning does not hurt either. (haha) Attempting to divide the already divided developer community (often wrongly segmented by degree/certification, development language, world region, age, etc.) by yet another “scale” is just more evil than good.
Feel free to Google arguments on both sides of this…there are lots out there (like I said up front, this was a new idea to me, so I spent a bit of time researching both sides as well). I am curious to hear your thoughts on it as well (and if you think it can/should be applied in our SAP world!). I think you can also still sign-up for the hack.summit() site (use promo code CODESCHOOL) and view all the recordings of the sessions.
(edit: you can find the recordings of the conference sessions on YouTube by searching “hack.summit() 2016” and/or looking for user “Ed Roman”).