Many organizations and architects struggle with architectural design and decisions within an agile environment. They understand the importance of avoiding intense design up front but are unsure of how much design up-front to do, so they opt for the other side of the spectrum – no initial design at all. Neither end of the spectrum is sustainable as both are inherently risky.

Letting your architecture emerge and implementing just what you actually need (versus what you think you might need) is a balancing act of deferring design decisions that don’t need to be made early and addressing aspects of the system that will have a long-lasting impact on a project. This balancing act requires architects and designers to demonstrate technical leadership, finding the right middle ground and mitigating the risk involved with either too much or too little design.

In this highly-interactive workshop participants will examine the roles, responsibilities and practices of architects working in an agile environment as well as gain an understanding of the architecture and design effort required at the enterprise, domain, solution and software architecture level. Attendees will also explore the practices and techniques for effectively defining, refining and evolving architecture that supports agile values and the principles of good architecture and design.

Audience: Architects, designers and senior developers looking to understand their role and practices in an agile environment, as well as iteration managers, project managers and Scrum masters wanting to understand how the technical requirements underpin an Agile project.
Course Duration: 3 Days
Prerequisites:

Participants should complete Certified Agile Practitioner – Agile Foundations prior to taking this course or possess equivalent knowledge. Attendees should have some familiarity with software development and architecture.

Course Objectives:
  • Develop an understanding of what architecture is and is not
  • Understand the roles and responsibilities of architects in an agile environment
  • Learn how to apply the values and principles of agile architecture
  • Understand the difference between agile architecture and traditional software architecture
  • Apply techniques for planning and aligning architecture activities throughout the enterprise
  • Learn to communicate the architecture approach and required decisions to diverse stakeholders
  • Gain practices and techniques for keeping architecture documentation light
  • Recognize and manage technical debt
Course Outline:
  • Course Introductions and Agile Review
    • Definition of Business Agility
    • The Challenge of Organizational Silos
    • Agile Manifesto and Principles
  • What is Software Architecture?
    • Types of Architecture
    • Design versus Architecture
    • Difference Between Traditional and Agile Architecture
    • Agile Architecture Values
    • Agile Architecture Principles
  • Architect Roles and Responsibilities
    • Technical Leadership
    • The Architect and the Agile Team
    • Defining Your Role to Add Value
  • Integration – Service Oriented Architecture (SOA)
    • Historic Context for SOA
    • Programmable Interfaces
    • Declarative Programming
    • Service as APIs
    • Enterprise Service Bus
    • Loose Coupling
  • Enterprise and Domain Architecture in an Agile Environment
    • Governance – The Business Agility Enabler
    • Maintaining the Big Picture
    • Paving the Architectural Runway
    • Identifying and Managing Architectural Risks
  • Software Architecture in an Agile Environment
    • The Need for Architecture on Agile Projects
    • Team Responsibilities
    • Avoiding Heavy Upfront Architecture
    • Minimum Viable Architecture
    • Scaling Agile and Architecture
    • Practices and Principles for Good Architecture and Design
      • Analysis and Design – OO versus Procedural Design Principles
      • XP versus Sound Design
    • Managing Technical and Architecture Debt
  • GETTING REST Right
    • REST versus Web Services
    • REST Based SOA Pros and Cons
    • REST Based Business Process Management
  • Move to Cloud
    • Architecting for the Cloud
    • The CAP Theorem
    • ACID and BASE
    • Data Consistency
    • DevOps
    • Cloud-Oriented Architecture
  • Data, Big Data and Agile Architecture
    • Schemalessness in a Structured World
    • Semantic Interoperability
    • Multiversion Concurrency Control (MVCC)
    • Big Data and Agile Architecture
  • Agile Architecture in Practice
    • Rethinking Integration
    • Capabilities versus Affordances
    • Alignment of Architecture with BPM
    • Coding at Meta Level
    • Dynamic Schemas, Coupling and Extreme Late Binding
  • Agile Enterprise Architecture
    • Enterprise Architecture and Frameworks
    • Continuous Business Transformations
    • Governance and Agile Architecture Roadmap
  • Common Architectural Issues (Smells) to Guard Against
  • Conclusion and Next Steps