You have read the books. You are a clean coder. You know your language, your tools and libraries and you know exactly what matters: Well crafted software, steadily adding value, and of course you are part of a community of professionals. There was something about productive partnerships, too, but that was a bit hard do understand. Anyway, the Agile Manifesto made quite an impact by clearly stating its values, but the Software Craftsmanship Manifesto raised the bar again. (BINGO, right?)
Who would not want to be part of such a movement? – So now we are a community of professionals who value well-crafted software (BINGO again). And the first time after reading Robert Martins books you’ll have some clear impressions that tests are the one thing that make the difference. Everything else follows – eventually even the understanding what kind of tests the dear uncle is talking about.
The manifestos are referred to often enough, and I’m sure you are at least somewhat familiar with them. Still I want to repeat them again, but to not get boring, let me combine them to make it clear that one Manifesto is the extension of the other.
- We find working software more important than comprehensive documentation. In pursuit of this, we also practice crafting software well and and help others in doing so.
- We find individuals and interactions more important than processes and tools. In pursuit of this, we form a community of professionals and invite others joining in.
- We find customer collaboration more important than contract negotiation. In pursuit of this, we find productive partnerships indispensible.
- We find responding to change more important than following a plan. In pursuit of this, we strive for steadily adding value.
The Agile Manifesto and the Software Craftsmanship Manifesto are quite concise and carry a lot of values. Together they provide a high standard anyone involved in Software Development can adhere to. I find that many developers who follow the craftsmanship movement focus too tightly on the italic part.
It’s important to note that the Agile Manifesto gives priorities. It states that working software is valued higher than comprehensive documentation. However, the Software Craftsmanship manifesto is an addition. It reads “but also well-crafted software”. Where the Agile Manifesto used the word “over” to tie the right and the left side of the priorities together, the Software Craftsmanship Manifesto uses a “but also“. Well-crafted software means nothing if it is not the working software that the customer wants.
So remember, before you raise the bar, make sure you jumped over it at least once before.