At Agile2008, in his banquet keynote, Uncle Bob proposed over execution" be added to the Agile Manifesto as the fifth value statement. I’ve blogged before about the lack of craftsmanship in software development and it continues to concern me.
While in Toronto I was reading Artful Making. The book bored me for the first few chapters but then it quickly became a compelling read. I recommend it. It contains many statements of wisdom. One passage, talking about a stage set designer, resonated with me:
“The designers movements were simple, free of tension. But the control that allowed this simplicity and freedom of movement was sophisticated and hard-won, a consequence of many iterations - individual rigor drawn from iterative experience yielding great precision.”
For me, the control that allowed this simplicity and freedom of movement was sophisticated and hard-won is called craftsmanship. As a worker practices the techniques for wielding his tools to work his material, he develops an individual rigor drawn from iterative experience yielding great precision. Repetitive mechanical application teaches disciplined handling of the tools and also creates recurring opportunity to learn more and gain experience. The practices governing how tools are used, once silently incanted, become inculcated. Contextual awareness develops and a deeper understanding of the principles underlying the techniques is acquired. Intuition develops providing internal guidance to a growing expertise in trade craft.
As I blogged previously, a craftsman’s mastery is borne out of his personal discipline when applying techniques to use his tools, his awareness of what’s going on around him, and his thought processes.
Martha Graham said “technique is the dancer’s freedom”. Well, technique is also the developer’s freedom.