This is an agenda I used recently in a 2-day workshop on a future architecture with lots of existing system and Code legacy („brownfield project“):
- What is the Business Vision?
- What is the current Architecture?
- What drives the future Architecture?
- How could an ideal system look like?
- How do we get there?
- What to buy vs What components/interfaces to build?
We started with the business vision and management priorities and the current architecture situation. From there we elaborated an ideal system with potential strategies to get there.
- From the business vision, derive influencers on the architecture
- What makes us cringe?
- What makes us no worry?
- Collect Functional and Nonfunctional items
- pain points
- user activities
- top 5 use cases that drive the architecture
- Create different models (Yes, many) of the architecture to share understanding
- What is slowing us down?
- How long are the feedback cycles of work in the teams?
- How can we enable Continuous Delivery?
What is the ideal system? How does it look like?
Where do we predict changes to happen in the future?
- Work in smaller groups and capture ideas
- Capture different approaches and compare
- Data flow, security, user interaction
- Use Event Storming to find user interaction points
Gather and merge ideas into architecture model(s)
- What is the ideal architecture?
- Use C4 Context and Component Diagrams
- How can we minimize the blast radius of issues and incidents? –> How can we create autonomy in teams?
- Collect Glossary with common terms for shared understanding
How to get there?
- What next?
- Collect baby steps to get there
- Collect big bang to get there
- Buy or Build? Sub systems?
- Brainstorm activities and trade offs
- Create a backlog of work
There are lots of points we address in the training or by running the workshop with your real operational systems architecture, like:
- How do we know “Enough modeling is enough”?
- When should we take which decision?
- When do we start to digitize the models? (Why should we?)
- Which notation makes sense?
- What is a great architecture?
Tools we ❤
Here some tools we use in this Architecture workshop
- Our brains
- Clear communication and common understanding
- C4 Models
- Clean Architecture
- Wardley Mapping
- Impact Mapping
- Domain Driven Design
- Event Storming
- User Story Mapping
- Ports and Adapters or also known as Hexagonal Architecture (by Alistair Cockburn)
- The Universal Architecture (Concept by JB Rainsberger)
- Pen, Paper, Post-Its
What does an Architect do? (Yes, the role)