ARCHITECTURE WITH PRODUCT
Products grow and change over time. When the architecture does not adapt to the changing needs of the product, friction arises. This friction is evident in longer and longer delivery cycles, difficulty testing on the development side, higher needs for coordination of work, and difficultly running product experiments. Combined, this all leads to less product innovation and higher cost of delivery.
We can do better.
This hands-on workshop is designed to help you more closely align your product with your architecture, grow and adapt both accordingly, and help you create an architecture road-map to get there.
Format
The workshop is available virtual as well as onsite. Both are hands-on. Attendees are given product examples and will be designing domain boundaries, data design, and communication strategies for these examples and justify their decisions. The product will then ‘iterate’ based on a market shift and attendees will revalidate their model, making according adjustments.
Virtual (20 hours content and hands on exercises, 2 hours of feedback time with instructor)
(5) 4-hour virtual sessions
The end of each session provides homework to do, applying the concepts inside their respective organization
30-minute follow-up with the instructor for feedback and to ask questions for each homework
Onsite (4 days)
3 days of content and hands-on exercises
1/2 day of large group applying concepts to the organization
1/2 day of one-on-one questions with the instructor
Topics
Architectural Concepts and Modeling
We introduce examples of architecture being constrained by product needs, and teach core visualization and communication techniques that will be used throughout the course. In particular, the focus will be on:
Principles of architecture, modeling
Architectural principles to support product growth (decoupling, ease of movement, supporting innovation)
Overlaying architectural concerns with Storymaps (product techniques)
C4 modeling; Architectural Decision Records
Change horizons; blending product and economic decisions
Leveraging Product Thinking for Appropriate Decoupling
Decisions that effect team design, planning, data design, communication patterns, and coupling. In particular:
Discovering product contextual boundaries across teams (Strategic DDD)
Event driven vs stateful architectures; trade-offs
Leveraging product context to minimize cross-team dependencies and shorten planning
Creating architectural tests with archUnit; running these in a pipeline
Context Mapping for creating the strategy for communication across product contexts, driving team autonomy
Service and Data Design with Product Thinking
Making appropriate service (API, events) and data (ownership models) in the context of the product. This applies both ‘within and across teams.’ In particular:
Events vs APIs - leveraging product to decide which approach when
Designing events and APIs in product context (instead of data context)
Using DDD to understand data in context
Minimizing risk and increasing resiliency with appropriate service and data design
Iterative architectural design and delivery
Who is This For?
This workshop is designed for team leads, architects, and leaders in charge of creating technical direction.