Design Patterns Thinking
Design patterns enable the emergent design that is needed in agile projects. Although patterns at one time were thought of as a “design up-front" technique, they are actually more powerful in agile projects to encapsulate variations that are discovered over time. For development organizations to thrive in an agile environment, where change is to be embraced, it is critical that the systems they create are not vulnerable to variable requirements, new business priorities and opportunities, innovations in technology, or competitive market pressures. Design patterns, properly understood and applied, address these concerns fundamentally.
This course addresses key questions in modern development such as how to design systems that have changeability as a fundamental quality without over-designing them. Also, it investigates how teams can communicate effectively when a design is in a constant state of change. It also examines a very powerful way to analyze a problem domain such that the appropriate patterns can be clearly revealed.
On this page you will find details regarding:
This course is intended for developers of every level, from junior to senior to technical leads. Testers who have experience in test automation will also benefit from attendance.
Patterns are examples of following the principles, practices, and wisdom that guides good design. They emphasize the importance of creating encapsulation and using delegation to separate concerns to protect from cascading change.
The course uses practical examples (case studies) to show what happens when this guidance is ignored or misunderstood vs. what happens when it is followed. The patterns are taught in this context, and each is delineated using real-world examples.
Participants learn to use patterns as part of a thought process that guides analysis and design, using “Pattern Orientated Development” as a way to understand an ever-changing problem domain. They also learn to consider patterns in the context of testability (specifically unit testing) and refactoring (or “just in time” design). By combining these techniques into an overall paradigm of development, developers and teams learn to respond confidently when business priorities shift.
In this course, we will show you:
Participants should be familiar with a modern programming language (C#, Java, etc…) and the basics of object-oriented development. No prior knowledge of design patterns is necessary. Those who do have such knowledge will find that their view of what patterns are and how to gain from them will be fundamentally changed by this experience.
Disciplined Agile (DA) is a process-decision tool kit that provides straightforward guidance to help people, teams, and organizations to streamline their processes in a context-sensitive manner.
DA provides a solid foundation for business agility by showing how the various activities such as Solution Delivery (software development), IT Operations, Enterprise Architecture, Portfolio Management, Security, Finance, Vendor Management and many others work together. DA also describes what these activities should address, provides a range of options for doing so, and describes the trade-offs associated with each option.
DA is architected into four views: