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 drive a future Architecture?
- How could an ideal system look like?
- How do we get there? (Buy vs Build)
We started with the business vision and the 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 model(s) 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 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
- 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)