I'm a journeyman and software test automation developer working in Paderborn, Germany. During 2008 I focussed on test-driven development, refactoring, OO design and Agile methodologies (XP, Scrum, Crystal, Lean). My team switched during 2008 from a legacy script-based test automation framework to a framework around FIT while introducing principles such as test-driven development, refactoring and design patterns. We managed to switch from previously interface-sensitive tests to business-facing tests, that even our customer is now able to read and understand as they pass.
What Does Software Craftsmanship Mean To Me?
For me Software Craftsmanship is the combination of practices, principles and values.
- On the apprentice level one gets to know practices to follow in order to get introduced into the craft.
- On the journeyman level you realise the principles behind the practices learned as an apprentice.
- On the master level you identify the values behind all the previous levels.
For me there are dense parallels between Agile methodologies and theirs practices, principles and values combination to Software Craftsmanship. The bridge between Agile and Craftsmanship is formed by ShuHaRi, since practices are taught on the Shu level of the apprentice, principles are realised on the Ha level of the journeyman and values are identified on the Ri level of the Master.
Like there is Shu on Ha and Shu and Ha on the Ri level, there also is some apprenticeship on the journeyman level and there is apprenticeship and 'journeyman-ship' on the master level. Agile and ShuHaRi together with Software Craftsmanship form therefore a symbiosis for me.