This is my Software Craftsmanship Pecha Kucha from the XP Days Germany 2009. Since a Pecha Kucha simply consists of 20 pictures and some text in 20 seconds, I decided to put the pictures up here directly. Additionally I translated the text from German to English (via Google Translate)
Software Craftsmanship stands for responsibility, practicing, learning and sharing of knowledge. Your company can survive times of crisis with it.
This is Erwin, Erwin Entwickler (German for Developer). Erwin is a Software Craftsman. Over many years, Erwin has learned, what it means to develop software. Erwin knows the nuts and bolts of software development and is constantly working on his expertise.
Erwin’s boss is also a Software Craftsman. Erwin’s boss at his company uses software Craftsmanship to train its employees. The employees exchange their knowledge continuously among themselves.
Erwin takes the problems of his customers as seriously as his own problems. Erwin writes readable and adaptable programs so that he can react on the changes of its customers tomorrow.
Erwin writes his programs very responsibly. He writes clean code that is driven by tests. So that he can respond easily to changes from his customers. The code is to kept flexible enough to stand with ongoing changes in the business.
Erwin understands that the software he writes, is the capital of his boss. Therefore Erwin writes clean code to keep his company competivite. The changes of its customers are competitive advantage for Erwin’s boss.
The company in which Erwin works has built an excellent reputation for its programs. Erwin’s boss looks back on a number of successful software projects that help him to getting new customers today, thereby securing the long term durance of the company.
Erwin regularly practices his skills. Periodically, he’s planning time for this to improve his skills. Just like an athlete or musician Erwin coached his programming skills at small sample problems.
Erwin’s boss calls these “Code Kata” and “Coding Dojos. Here, he solves using test-driven development solutions to problems such as Minesweeper, Langston’s Ant or the conversion of Roman numerals. By varying the solutions Erwin trains his programming skills.
Erwin practices, so that he develops his code even under stress using TDD. Thus his minimizes his Technical Debt. In Coding Dojos he trains his pair programming skills along with a colleague.
Erwin and his colleagues are able not only extend their software to the advantage of their customers, but exceed the expectations of customers.
Additionally Erwin introduces himself continuously to new topics of software development. Using books, mailing lists and blogs Erwin is working to extend his personal knowledge.
Erwin shares his insights with his colleagues. As Erwin’s colleagues are also constantly learning new things, the knowledge is spread in Erwin’s company just like the snowball effect.
Erwin and his colleagues meet regularly to learn from each other and gain new inspiration and ideas for their daily work. Erwin’s boss calls these meetings “Lunch & Learn” or “Brown Bags”.
Experienced developers like Erwin are working day in and day out in his company together with apprentices. Not only do these new apprentices learn the approaches of the more experienced developers, but also the more experienced developers learn new things from their apprentices.
Erwin was also once an apprentice. Over the years, Erwin has worked with many colleagues in many projects, and thereby learned new things every day about software development.
Over time, the apprentices are then able to teach himself to an apprentice. In Erwin’s Company there are continuously new apprentices trained. Some of them left after the first training, and even come back in a few years with new experiences and new knowledge to share with their former colleagues.
Erwin’s boss has used Software Craftsmanship as a long-term investment in professional software development. Erwin and his colleagues like to work for Erwin’s boss. The partnership relationship through constant cooperation promotes the work atmosphere.
With a sense of responsibility, continously learning and practicing and sharing acquired knowledge to to apprentices and colleagues Erwin’s company is able to survive times of crisis.
Thus Software Craftsmanship makes Erwin’s boss satisfied, Erwin and his colleagues are satisfied. The working atmosphere through constantly learning and working together promotes the readiness for action of Erwin and his colleagues, because they know what for it is worth their effort.
Software Craftsmanship also makes Erwin’s customers happy. Through customer satisfaction Erwin’s company has secured a long-term stable order situation. Erwin’s company can survive long term, even times of crisis.