All Software Architecture, All the Time
June 10-13, 2019
San Jose, CA
Please log in

Agile architecture: Building systems that grow incrementally to accommodate change

Allen Holub (Holub Associates)
Monday, June 10 & Tuesday, June 11,
9:00am - 5:00pm
Location: 211 C
Average rating: *****
(5.00, 1 rating)

Participants should plan to attend both days of training course. Note: to attend training courses, you must be registered for a Platinum or Training pass; does not include access to tutorials on Tuesday.

Agility is impossible if you're fighting your code to make small changes. Agile-friendly architectures are designed to evolve incrementally; you can't be truly Agile if you're not using them. Join Allen Holub to learn how to create systems that are incremental, flexible, and business focused and that easily evolve as you accommodate new requirements—architecture that is ideal for microservices.

What you'll learn, and how you can apply it

By the end of this two-day training course, you'll understand:

  • How architecture aligns with company structure and processes
  • How to define effective user stories
  • How to refine those stories and narrow them into small increments
  • How to develop a domain model and a system metaphor from those stories
  • How to turn that into an architecture that evolves incrementally in a way that maintains system coherence
  • How to design incrementally as you’re actually implementing

And you'll be able to:

  • Create an architecture in incremental steps as you discover new requirements rather than as a single up-front process
  • Optimize that architecture so that it can evolve over time to accommodate changing requirements
  • Create and size high-quality user stories and build an architecture around these stories
  • Use mob programming and TDD to develop code in an Agile way

This training is for you because...

  • You're a developer, architect, product owner, or Scrum Master.

Prerequisites:

  • Programming experience (useful but not required)

Agility is impossible if you’re fighting your code to make small changes. Agile-friendly architectures are designed to evolve incrementally; you can’t be truly Agile if you’re not using them. In this hands-on workshop, learn how to create systems that are incremental, flexible, and business focused and that easily evolve as you accommodate new requirements. These architectures are essential if you’re doing any sort of Agile development and are ideal for implementing microservices.

Using a hands-on approach, Allen Holub walks you through designing a system that can handle incremental development and then evolving it. You’ll start with a real-world problem provided by either you or your classmates and will end up with a flexible (Agile), domain-based architecture that can grow as the system evolves. The techniques you’ll learn are essential when building effective microservice APIs and in any development shop where requirements change as you’re working.

Outline

Characteristics of an Agile architecture

Conway’s law: How agility and architecture interact

Modeling the domain

  • DDD basics: Bounded contexts, aggregates, entities
  • Agents (UI)

Working with stories

  • User goals
  • The system metaphor
  • Creating stories
  • Narrowing/splitting
  • Hands-on exercise: Problem statements and story creation

Orchestrated (declarative) systems

Design by coding

  • TDD
  • BDD: Given, when, then
  • DbC: Demo
  • Hands-on exercise: Creating declarative APIs with DbC
  • A quick introduction to mob programming

Choreographed systems: Reactive architectures

Event storming

  • Demo
  • Hands-on exercise: Creating orchestrated/reactive systems

Agile architectural patterns

  • Structured monolith: The “layered” anti-pattern
  • Microservices
  • Microkernel
  • Message based
  • Reactive systems

About your instructor

Photo of Allen Holub

Allen Holub is one of the country’s foremost software architects and Agile-transformation consultants. Allen speaks internationally about all things Agile and software architecture and provides in-house training and consulting in those areas. He’s also an expert-level programmer, specializing in Swift, Java, and Web 2.0 applications and microservices. Allen can build highly dynamic websites (along the lines of Gmail) from front to back: both the frontend code—JavaScript, JQuery, Angular, HTML5, and CSS3—that runs in the browser and the backend code—Java, PHP, MySQL, Ruby, Mongo, C++, ZeroMQ, and EC2—that runs either on your server or in the cloud. Allen is widely published. His works include 10 books, hundreds of articles in publications ranging from Dr. Dobb’s Journal to IBM DeveloperWorks, and video classes for Agilitry.com (Agility with Allen), Pluralsight (Swift in Depth, Picturing Architecture, Object-Oriented Design), O’Reilly (Design Patterns in the Real World), and Lynda/LinkedIn.

Twitter for allenholub

Conference registration

Get the Platinum pass or the Training pass to add this course to your package.