This talk is for people who are having difficulty creating and maintaining application architectures. While test-driven development, automated testing and continuous integration are great practices to facilitate local design and making changes without risk, the architecture within which these changes take place will have a large impact on the effort required.
The Agile community is recognizing the need to address the challenges of Architecture at Scale. While many people recognize the importance of patterns, they tend to focus on patterns as a set of solutions. This often leads people to try to develop by combining patterns. This is actually the anti-thesis of the true intention of design patterns. In reality, patterns are a way of thinking – the patterns themselves are a result of this thinking. Attendees to this session will learn how to scale up their application of design patterns to larger systems, resulting in the longer lived, more robust designs we all strive for.
This seminar has three parts to it:
- A quick introduction to Design Patterns Thinking
- Simplifying complex models with commonality-variability analysis
- Using design patterns thinking and a model of issues in a problem domain to create and maintain an application architecture
- Understanding that patterns are more than mere "solutions to recurring problems in a context"
- Understanding the thought process behind what makes patterns good solutions
- Learn how to identify the issues in your problem domain you are trying to solve
- Reduce the complexity of these forces by making a distinction between the issue and potential implementations
- Learn how to ceate a simplified model of the issues to be managed in the application – in particular those issues that tend to vary
- While design patterns live at the code level, these concepts live from code to high level design. The trick is to create a way of applying these technique at much greater scales. Fortunately, this technique already exists – commonality-variability analysis – introduced by James Coplien and extended with the analysis matrix by Al Shalloway. Using CVA, one can takek these concepts up to any scale.