Agile Session Types | Agile Architecture
Architectural envisioning is the initial, lightweight architecture work done at the beginning of a project. Just enough to establish the technical direction without over-designing.
The goal: identify the major architectural decisions that need to be made early and make them â while explicitly deferring everything that can wait until you know more.
What to figure out during architectural envisioning:
- Technology stack â programming language, frameworks, database, deployment platform. These are expensive to change later.
- High-level structure â monolith vs. microservices, major system components, key integration points.
- Quality attributes â how will you achieve the required performance, security, scalability, and reliability?
- Constraints â regulatory requirements, organizational standards, existing systems that must be integrated.
- Risk areas â where are the technical unknowns? What needs spike/prototype work to validate?
How to do it:
- Collaborative session with the technical team (and ideally a business representative)
- Use simple diagrams: component diagrams, deployment diagrams, sequence diagrams for critical flows
- Document decisions and their rationale â why you chose this approach, not just what you chose
- Plan architectural spikes for high-risk areas
How long: typically a few days. For a small project, maybe half a day. For a large enterprise system, maybe a week. Never months.
The principle: youâre not designing the whole building. Youâre laying the foundation and framing the walls. The interior design happens iteratively as you build.
Related: Requirements Envisioning, Sprint Modeling