Incremental Architecture: Building Domain-focused Systems that Welcome Change
YOW! Sydney 2024

Incremental Architecture: Building Domain-focused Systems that Welcome Change

Wednesday Dec 11
09:00 –
17:00
Cliftons Sydney, Lvl 13, 60 Margaret St, Sydney 2000 NSW
988.90 AUD

Register for this masterclass

Agility is impossible if your architecture makes even trivial changes insanely difficult, and the most flexible architectues are those designed to grow incrementally as a system evolves rather than being defined in one giant up-front phase. As we evolve, our architecture must remain coherent and easily withstand the stress of changing requirements. Incremental approaches are the most effective, lowest-cost, lowest-risk way to build a solid product that can easily adapt to customer needs.

In this hands-on workshop, you'll learn how to develop a coherent architecture that grows incrementally as we learn. You'll learn a complete process for designing incrementally, starting with user stories and ending with code. You'll come away with a solid understanding of how to build incremental-friendly architectures (and products).

In this hands-on workshop, you’ll learn to start from “-ilities” and incremental-friendly patterns. You’ll learn how to focus the architecture on customer needs through the user’s stories. You’ll get hands-on experience with practical techniques like Design by Coding (a way to design incrementally literally while you're coding) and Domain-Driven-Design/Event Storming (a way to implement complex reactive systems such as choreographed microservice systems that directly reflect the domain so easily adapt as the domain changes). You’ll also learn about ensemble (mob) programming, which we’ll use in the exercises, and Architectural TDD.

Part 1

  • Working incrementally
  • Integrating code and product development
  • The inspect-and-adapt loop.
  • Incremental-friendly architectural patterns.
    • Layered architecture
    • Hexagonal (MicroKernel) architecture
    • Component architecture
    • Event-driven architecture
  • Exercise: Selecting core architecture from patterns
  • Exercise: Realizing -ilities
  • Exercise: Creating Problem Statements
  • Exercise: Capturing the User’s Story

Part 2

  • Domain-Driven Design
  • Event-driven systems (recap)
  • Lightweight messaging systems
  • Exercise: Using Event Storming to create dynamic event-driven systems.