[Update: Jason has responded in the comments that he was not responsible for teaching or convincing me of the values of the software craftsmanship movement. If anyone in London is interested, I extend the invitation to come and talk about software craftsmanship with the rest of the alt.net community. Don’t hesitate to email me.]
There is a slight breeze coming from a corner of the software development world. The software craftsmanship community has released a manifesto.
I’m not signing it yet. I’ve read the mailing list, I’ve read the manifesto, I chatted with people on messenger, and I still can’t figure out what the objectives of the manifesto are. And the few questions I have or had have not been answered.
Mark was kind enough, on twitter, to explain to me that it was about creating awareness that there is a problem with the current state of software development. Of course I couldn’t agree more with that statement. After all, this is one of the things that the alt.net communities have been focusing on a lot lately (as in, in the last year).
But just like the post-agile thing I never really understood, I don’t understand how this has much relevance beyond making a statement. I value the craft, but I do not believe that my craft, which is of a different category from what some developers do for a living, is necessary all the time.
Then I have an issue with the word craft, because it is always being opposed to the word mass production. But there is no such split in the software world. Any historical effort to turn development in mass production has failed (4GLs, software factories, etc). It never happened and it never will, and as such I do not see it as a positive outcome to encourage people in making the distinction.
The other thing that I’m confused about is that, while London had a Software Craftsmanship conference organized by Jason Gorman, I have not heard about any of this till very recently, nearly by accident. A search on the alt.net mailing list has triggered no apparent results. I only heard talks about it from one ex-BBC at the alt.net Beers, once. Nothing at KaizenConf. So it comes a bit out of the blue. So I invited Jason Gorman to the alt.net beers a couple of times, without a response. Let me reformulate the invite once more on this blog. Jason, come and explain to us why Software Craftsmanship is important and why we should care about the manifesto. I’ll even give a theme to the evening so we can discuss it for the full hour.
Finally, there are scents of local optima in the air. What is the value of the craft beyond the value brought to the customer? What is the value of becoming better locally, in our approaches to software development, when the rest of the organizational structure is left to its own progression? Indeed, Markus Gaertner proposes the following on the mailing list:
While our highest priority is to satisfy the customer through early and
continuous delivery of valuable software, our second-highest priority is to
write well-crafted code to do so.
And that’s where I seem to differ with the current trend. I don’t believe in the value of changing the software practices as a separate priority from the one of satisfying the business in generating value.
We do software that is well designed and changeable because they let us react faster to the business changing needs, and minimize costs of maintenance in the process. And knowledge and practices only exist to support those needs.
Without the business needing us to help it generate profit, there is no value in our craft. None. Nada. Zip. And when you start decoupling our needs as craftsmen from the needs of the people relying on us, you risk falling in the trap of early optimization and local optima.
So if you have a better understanding of it all, and I missed the point, please explain, I’m a willing learner.