January 16th, 2008 — Design Patterns in an Agile Environment — Alan Shalloway

Published: Tue 01 January 2008
By nwcpp

In 2008.


Building 41
One Microsoft Way
Redmond, Washington 98052

Design Patterns in an Agile Environment – The Object Pool An Example of Emergent Design

There runs a heated debate about how to build application architectures. Many practitioners believe you must design up front, others feel that doing so leads to over-design. Unfortunately, much of this debate is based on practices, not principles. Practices must change when one finds themselves in different contexts. Principles do not.

This talk presents a background of several useful principles which can help in building an application architecture dynamically. Many modern design practices suggest that code should be developed in a highly incremental way, with frequent opportunities for validation, refactoring, and that we should embrace change as an ally, rather than seeking to avoid it through heavy analysis. At the same time, the Design Patterns movement has opened up powerful new ways of thinking about Objects and their relationships, and how we can efficiently find our way to the best designs in a given context. Initially, these two points of view would seem to be at odds with one another. However, layered architectures suggested by the proper use of patterns leads to more flexible designs, designs that tolerate change better than traditional OO would, and patterns are a great enabler for an incremental approach. Furthermore, we have found that refactoring existing code, in the light of new and/or better-defined requirements, often leads to patterns, and that an understanding of this can make for a much more efficient development process overall. This talk integrates these ideas by presenting a project done by following the guidelines of Agile development, refactoring and design patterns.


  • What is Lean-Agile Software Development?
  • What is the Role of Architecture?
  • What are design patterns?
  • What is Refactoring?
  • Refactoring to the Open Closed
  • A case study in using the methods described


  • A different view of Agile development
  • What Emergent Design is
  • What the Object-Pool Pattern is
  • Why following principles and practices is more important than following rote doctrine
  • Synthesize the seemingly disparate views of test-driven-development and design patterns

This seminar is intended for those people who have some experience already with design patterns and agile methods. However, value should be great even without this background.

Seminar notes will be available at http://www.netobjectives.com/free-seminars-notes/ by January 10. Registration on the Net Objectives site will be required to get them.


Alan Shalloway is the founder and CEO of Net Objectives. With almost 40 years of experience, Alan is an industry thought leader, trainer and coach in the areas of Lean Software Development, The Lean-Agile Connection and using Design Patterns in agile environments. Alan has developed training and coaching methods for Lean-Agile that have helped his clients achieve long-term, sustainable productivity gains using the methods. He is a popular speaker at prestigious conferences worldwide as well as a trainer/coach. He is the primary author of Design Patterns Explained: A New Perspective on Object-Oriented Design and is currently writing Lean Anti-Patterns and What to do About Them. He is a SM-C Trainer and has a Masters in Computer Science from M.I.T.