Enrique Comba-Riepenhausen set up The Wandering Book over a year ago in order to capture the Zeitgeist of the Software Craftsmanship movement. It took me some time to realize what this book is going to be about, so that I finally signed up for the Wandering Book on the end of July 2009. After more than one year waiting for the book to arrive here, I played with my thoughts on what to write into it. During the last week the book arrived, and here are my thoughts, that I wrote in there.
Software Craftsmanship is about code. Code is about a working product. A working product is about making our customers happy. While one of them seems to be a means to another one’s end, and vice versa, the one thing we have to keep in mind is that basically everything is connected to everything else.
By this I mean that we can not and must not forget about the things that help us produce software in a better way. If we leave out one or the other in this formula, we are likely to upset ourselves in the short- or maybe just in the long-run.
As of this writing the Agile manifesto has been around for nearly a decade. Nearly a decade of insights into one focus or the other based upon methodologies like eXtreme Programming, Scrum, Lean, Kanban have shown one thing to me: If we leave out one variable to the equation, we don’t get the results that we’re striving for.
eXtreme Programming was programmer centered. This lead to an uprise of Agile methodologies from the trenches. Programmers demanded more responsibility, programmers asked for more freedom. But the business side of the game did not buy into their programmers, and feared the rising of the pizza-eating, long-haired tribe. Thereby eXtreme Programming was set up for a decline in the business world, while still being praised from the programming side.
Scrum on the other hand welcomed the business aspects of software development. By issuing certification programs to bring a meaningful piece of paper back from the courses aspiring ScrumMasters had visited, the business side immediately bought into this concept. On the other hand, programmers were left out of the game, since Daily Stand-Ups and tree-hugging retrospectives are merely what a programmer is seeking at work.
To me, Software Craftsmanship brings together these two worlds. Programmers as well as testers – let’s call them developers once and for all – know how to technically excel their products. They even know how to work together with the business to not only give them the products they asked for, but to delight them from delivery to delivery. Well-crafted code that adapts to feature needs of our customer, close collaboration, life-long learning are the means be which we ensure how software is developed, and pass that knowledge on to the next generations. That is what I strive for. That is what I think Software Craftsmanship should strive for. That is what we manifested in the Software Craftsmanship movement.