A set of lightweight techniques using agile and Domain Driven Design (DDD) principles that help teams plan enough to start modernizing software systems
2 - 4 days if done end-to-end
Business stakeholders, architects, technical leads, developers
Event Storm the system, using language that business and technical people understand.
Conduct a Boris exercise that models the relationships between capabilities in a system. Conduct a SNAP that documents the technical capabilities identified during Boris in real time.
Identify thin slices of modernization.
Thin slices are short domain event flows. Vertical slices are identified by choosing short, domain event flows in the core domain and leveraging the services coming out of Boris to produce those events. Think of them as the architectural components required to produce those events. Thin slices are informed by Event Storming, Boris and SNAP activities.
Prioritize the thin slices, with an eye to balancing business value, technical risk, and effort. The goal is to incrementally move the system toward behaving “the way it wants to;” the implementation of each successive slice gets us that much closer to this goal.
The thin slices become actionable when captured in the backlog as MVPs (Minimum Viable Products) or collections of stories. In some cases, VMware Tanzu Labs will partner with the customer team to identify and prioritize the thin slices, with an eye to balancing business value, technical risk, and effort.
As you define the slices, leverage tactical implementation patterns like anti-corruption layer, Facade, Docket Based Choreography, and Strangler so that the newer or strangled services coexist together with the older legacy system
Create a backlog of prioritized user stories tied back to goals (practice coming soon) / OKRs. Map user stories to MVP or releases.
Start hands-on experimentation, feedback, and iterative progress.
A good facilitator should be able to drive out how a system should be designed based on supporting the business capabilities from a DDD perspective.
This notional architecture now represents a good first cut direction of the system. When used as a tool for modernizing existing systems, Boris reveals the likely target architecture. Other activities in the Swift Method help define how to get from Current State to Modernized.
Swift Method contains many activities, including:
Swift Method: Event Storming, Boris the Spider and Other Techniques (YouTube video) talk at ExploreDDD 2019 by Shaun Anderson