The path to software Craftsmanship
by tsk
I really liked the article on Jurgen Appelo’s blog when he tried to define craftsmanship. I also made a comment which was marked as a good one by the author. But what was that all about: Craftsmanship, the new hype at that time in the Agile world. The craftsmanship movement is important and I also consider it a step forward, something that is Agile, evolved.
In Jurgen’s opinion Skill * Discipline = Craftsmanship. I said, a more general formula would be Skill * Discipline = Excellence. And this is true in many areas, including sport, art and any other activity. If you aim for excellence you gotta pursuit both skill and discipline. Using my management experience I’ve noticed that people have a natural ability for only one: either skill or discipline. For some people gathering skill comes more naturally and easily and they make efforts (or not) to keep up with discipline, while for others it becomes handy to be disciplined but are always lacking in improving skill. Of course, to reach excellence you need both at highest rate possible. Rarely people are aware that it is more important to keep a fair balance between skill and discipline rather than increase the natural one. Probably because it’s a harder way to develop.
But what’s the connection between craftsmanship and project management approaches? In the traditional Waterfall style, Skill was assumed and Discipline enforced (or pushed). The human resources department was in charge of finding Skilled people ready to receive enforced Discipline and deliver projects. Due to the coercive techniques, the Waterfall project management begins to fail. That’s because enforcing discipline creates short term results, but quickly exhausts enthusiasm. And the enthusiasm restored by a salary raise will quickly be burned by frustrations.
After that, the bright minded came out with Agile. It was new, hyped and had many win-win situations. Working iteratively and in short stages was not only good for the business but also for people. The enthusiasm regained with every new sprint and the feeling of fulfillment and increased self-esteem after a good sprint delivery could easily substitute a salary raise. Self-organizing is the magic word and people control the processes, not vice-versa. Agile is great, but it assumes both the skill and the discipline necessary to get into a self-organizing and productive state. That’s why, in my opinion, it’s two times harder to implement than Waterfall.
Agile it’s not about “push”, it’s a “pull” system. Team members need to pull stories, make commitments and sometimes pull (or drag) other team colleagues to finish their commitment. And in many cases the quality level when pulling is linked to the discipline factor, which is transformed in Agile into self-discipline.
Now, from the team leader’s perspective, one of the biggest challenges in switching from Waterfall to Agile is to replace “push” with “pull”. Actually it’s more difficult, because team leaders need to create an effective “pull” culture, a self-discipline culture that needs to be embraced by all team members. That’s hard, and probably one of the most important aspects is personal example. The personal example of self-discipline combined with a good sense of leadership will help a team understand and embrace an effective pull system.
Even though a pull-only mechanism would be really nice, sometimes efficient management needs to use both push and pull. In my opinion, what I see in the new craftsmanship movement seems quite right as it looks like pushing for Skill and developing (or growing) Discipline or self-organization. A good individual self-organization emerges into a efficient team self-organization and powered by a push (yeah, sometimes assuming it’s not enough) it can create extraordinary results.
And what we end up with is a reversed Waterfall, where push was exercised over Discipline not over Skill. But you always need to take into consideration that both the skill improving and the discipline abilities are different for each individual. Growing and developing each team member carefully creates the strong team of software craftsman.
Comments
learned a lot