Duration: 1 day.
Recommended Class Size: 20 to 30
Prerequisites: The need for more reliable practices.

Being Agile, with its attention to extensive testing, frequent integration, and focusing on important product features, has proven invaluable to many software teams. When building complex systems, it can be all too easy to primarily focus on features and overlook software qualities, specifically those related to the architecture. Some believe that by simply following Agile practices—starting as fast as possible, keeping code clean, and having lots of tests—a good architecture will magically emerge. While an architecture will emerge, if there is not enough attention paid to it and the code, technical debt and design problems will creep in until it becomes muddy, making it hard to deliver new features quickly and reliably.

It is essential to have a sustainable architecture that can evolve through the project lifecycle. Sustainable architecture requires ongoing attention, especially when there are evolving priorities, a lot of technical risk, and many dependencies. This workshop presents a set of patterns that focus on practices for creating and evolving a software architecture while being Agile. These practices include a set of tools that allow teams to define “enough” architecture in the beginning of the project and to manage the state and the evolution of the architecture as the project evolves..

You will get hands-on experience briefly practicing some of these techniques and will learn options for coordinating work among teams and be exposed to techniques and practices that support the incremental definition and delivery of architecture including important system qualities along with system functionality and weaving quality-related work into your projects and programs.

I have been innovating, collecting and writing on the best practices and patterns on this topic over the last several years. During this time I have given presentations, workshops, and keynotes at various conferences and in an industrial setting and published (and continuing writing and collecting) over two dozen patterns on this topic. I have recently worked with organizations on the best practices for Agile Quality Assurance and also shepherded Agile Experience reports on the subject. I received the New Directions award with a colleague at Saturn, given to the presentation that best describes innovative new approaches and thought leadership in the application of architecture-centric practices for the topic "QA to AQ: Shifting from Quality Assurance to Agile Quality".

Course Objectives:

  • How to overcome barriers between various parts of the teams?
  • How to structure Teams keeping the focus on architecture and quality?
  • When and how to focus on important architectural qualities of your organization?
  • Ways to prioritize and measure progress for architecture and quality attributes.
  • How to incorporate practices for prioritizing and dealing with architecture.

This course is adaptable based on the needs of the client and can accommodate up to thirty people, some parts of it are intended to get the team working collaboratively. This can be followed up with a few days of mentoring/consulting working with teams so they can start integrating these ideas into their systems.