Design Patterns Thinking with Scott Bain
What You Will Learn
Upon completion of this training, learners will be able to:
- Design software that is resilient, scalable, and extensible without over-design.
- Analyze requirements to ensure alignment of development with business value.
- Collaborate and communicate with other developers and teams effectively.
Description
Design patterns enable the emergent design that is needed on agile projects. Although patterns at one time were thought of as a “design up-front" technique, they can be used in agile projects to encapsulate variations that are discovered over time. For development organizations to thrive in an agile environment, it is critical that the systems they create are not vulnerable to changing requirements, business priorities, technologies, or market pressures.
This training explores key questions in modern development, such as how to design systems that have changeability as a fundamental quality and how teams can communicate effectively when a design is in a constant state of change.
The instructor brings hands-on practical experience with applying lean thinking to the delivery of software technology solutions. The approach is to show how lean applies to an incremental realization of software features and systems and how to apply practices that improve the team’s ability to deliver.
Prework
AGENDA
-
Day 1: Theory
- Examination of typical causes of project failure
- Example of a failed design
- Qualities of changeable code
- Testability as a first principle in development
- The principles and practices of professional development: The Strategy Pattern
- Wisdom from the field
-
Day 2: Application
- Commonality-Variability Analysis (CVA)
- The Template Method as an example of CVA
- Using CVA to derive the Bridge Pattern
- Patterns in context: Adapter and Facade Patterns
- Resolving the problem from Day 1 in a new, better way
- Emergence through encapsulation and patterns: Refactoring to the Open-Closed
- Group design exercise, Part 1
-
Day 3: Expansion
- Group design exercise, Part 2
- Aspects of flexibility
- The Analysis Matrix and the Abstract Factory
- Separation of use and creation
- Encapsulating construction
- The Singleton Pattern
- The Proxy Pattern
- The Decorator Pattern
- The Chain of Responsibility Pattern
PDU Allocation Table
Ways of Working | Power Skills | Business Acumen | Total | |
---|---|---|---|---|
CAPM® / PMI-CP™ / PMP® / PgMP® | 9 | 12 | 0 | 21.00 |
PMI-ACP® / Agile* | 9 | 12 | 0 | 21.00 |
PMI-SP® | 0 | 12 | 0 | 12.00 |
PMI-RMP® | 0 | 12 | 0 | 12.00 |
PfMP® | 0 | 12 | 0 | 12.00 |
PMI-PBA® | 0 | 12 | 0 | 12.00 |
| | | |
Instructor(s)
