The idea for this book was first hatched when Stickyminds.com asked Dave to write a column about Software Craftsmanship in early 2005. Since Dave considered himself an (experienced) apprentice at the time, the only topic he felt comfortable writing about was apprenticeship. This got him thinking about what he would want to write on the topic. Around that time, Dave read a blog post by software developer Chris Morris that quoted guitarist Pat Metheny, and the seed for the pattern language was planted with the concept of “being the worst.” The seed quickly grew from Dave’s blog to a private wiki that Dave used to organize the initial patterns. The initial patterns were extracted from Dave’s career up to that point (2000–2005).
Understanding that these so-called patterns could not really be called patterns unless they were actually common solutions to common problems, Dave began seeking feedback from colleagues in three forms. First, he began publishing the patterns publicly on his website, soliciting feedback with public comment forms. Second, he began interviewing (mostly via email) thought leaders in the field of software development and getting their opinions on the initial patterns. Third, and most important, Dave began interviewing less-experienced practitioners to test the patterns against their recent experiences. The stories told by the less-experienced practitioners also introduced Dave to new patterns that he hadn’t yet encountered, or hadn’t recognized in his own experiences. It was during these apprenticeship interviews that Dave interviewed Ade, and by mutual agreement, Ade joined the project as a coauthor.
We (Dave and Ade) interviewed people who live and work in places ranging from Australia to India to Sweden. The settings for our discussions were just as diverse, ranging from comments on LiveJournal to an interview in a beautiful bomb-damaged church in the heart of London’s financial district.
At the same time, people like Laurent Bossavit, Daragh Farrell, and Kraig Parkinson were brave enough to try out the material in a variety of coding dojos, workshops, and boot camps. They then passed on the feedback they received and we (Dave and Ade) tried our best to incorporate it into our notes.
Later in 2005, we ran a focus group on our patterns at the Pattern Languages of Programs workshop. At PLoP, we were able to present our work to seasoned pattern authors (also known as shepherds) who gave us feedback on the format of our patterns and tested their own experiences as programmers against our assertions.
Around the same time, Mary Treseler of O’Reilly Media contacted us about publishing the patterns and encouraged us to keep writing. She helped us out by doing some editing, and two years later we had an agreement to publish the book. During that time we have spoken with countless colleagues via email, in user groups and conference sessions, or just over lunch about the patterns, and we continue to solicit feedback from the community online at http://apprenticeship.oreilly.com.
The end result is in your hands. It is a work grounded in dozens of interviews with practitioners as well as extensive research into the existing literature on learning, the psychology of optimal performance, and anything we could find on the topic of mastery. As you read further, you will see us cite surgeons, choreographers, and philosophers as well as the usual software luminaries. We believe that there is a lot to be learned from studying high performers in all disciplines.