Design Patterns in an Agile (even XP) Environment – The Object Pool
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 object orientation 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.
Learn:
- 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.