Addison Wesley is going to celebrate the 20 year anniversary of the Design Patterns a.k.a. Gang-of-Four book. For this, they reached out to the community and asked for contributions. Here are the questions they asked, suggesting we ask (and answer) our own ones as well:
- How has Design Patterns affected you and your career?
- How has it changed how you think about software development?
- Do you have specific recollections of the book’s release?
- How do you use design patterns today?
- Which Patterns should be retired?
- Which new Patterns should be added?
I’ll provide my answers to questions 1-4 here and I’ll answer questions 5-6 in separate follow-on posts later.
How has Design Patterns affected you and your career?
I was a lucky reviewer of the original book (you can find my name in the acknowledgements) and I am the translator of the German version. The Design Patterns book gave birth to the Pattern Languages of Programming conference series and I contributed at least one chapter to each of the five books that came out of the conferences [1, 2, 3, 4, 5, 6]. I helped organize EuroPLoP early on and I got to meet many leading researchers and practitioners when other aspiring professionals were only looking. So, the book and more so being given a chance to grow in its community was a wonderful empowering experience that boosted my career in many ways. I’ll be forever grateful to have received that opportunity.
It isn’t over by far. The book is still in use and going strong and will continue for the foreseeable future. As the translator of the German version, Addison Wesley recently returned the copyright of the content (not the German title) to me, and I can use this content as I please. I will make it available on the web at http://musterwiki.de and I believe we have a realistic plan on how this could be a community-edited spam-robust wiki.
How has it changed how you think about software development?
When the book came out I had just finished my German Diplom in computer science, which is something between a Bachelor and Masters degree. At the age of 25, I had had some software design experience but of course was far from being a seasoned professional. The book’s content was a revelation and showed me a level of abstraction of how to think about software design that is hard to get to without guidance. By working with patterns, I slowly climbed to that level over the next years, eventually acquiring the ability to reason about and design software on the level of object collaborations and larger class structures that I’d consider an important ability of a professional software architect. My dissertation about object collaboration structures had strongly been informed by the Design Patterns book and is with me today still.
Do you have specific recollections of the book’s release?
Ah, good ol’ reminiscing. I ran to the Addison Wesley booth after the keynote as soon as the exhibitor’s hall at OOPSLA ’95 opened (or was it 1994?). I quickly got my autographs in the book from the Gang of Four that same day, if I remember correctly. The book sold out quickly. Lots of events and dinners hosted by Addison Wesley and others followed over the next few years, as the patterns book market took form (and eventually dissolved into the agile methods movement).
How do you use design patterns today?
It is amazingly simple. Patterns have become a basic building block of my professional vocabulary. The vocabulary itself has diversified, domains and growing expertise have added to it, more variations of patterns have entered it. The basics haven’t changed, however. Patterns, like most languages, primarily serve informal communications like design discussions on a whiteboard. In addition, they are used in specification and documentation. I have yet to use them for code-generation.
To be continued…