Microsoft's technique for architecture and design
Process · Chapter 5
What it is
Section titled “What it is”Another systematic, iterative, step-by-step design method. It works both for designing the initial architecture and for refining it later. Five steps — Step 1 runs once, and each iteration restarts at Step 2.
The five steps
Section titled “The five steps”- Identify architecture objectives — Establish clear objectives so the design targets the right problems. The architectural drivers combine to form these objectives. Also consider who will consume the architecture (architects, developers, testers, ops, management) — their needs and experience levels — and any existing architecture (brownfield or prior iterations).
- Identify key scenarios — Here a scenario is a broader user interaction with the system, not a single use case. Key scenarios are the ones critical to success: an issue, an architecturally significant (business-critical, high-impact) use case, or an intersection of functional requirements and quality attributes. Account for quality-attribute trade-offs.
- Create the application overview — A picture of what the finished architecture looks like, connecting the design to real-world decisions. It involves:
- Application type — web, mobile, service, desktop, or a combination.
- Deployment constraints — org policies, mandated infrastructure/target environment; surface conflicts early.
- Architecture design styles (a.k.a. architecture patterns) — general solutions to common problems that promote reuse; pick the style(s) to use.
- Relevant technologies — chosen from the app type, styles, and key quality attributes (covering infrastructure, workflow, data access, database, dev tools, integration).
- Identify key issues — Pinpoint the risky areas where mistakes are likely. These typically map to quality attributes or cross-cutting concerns; analyze them closely and document the resulting decisions.
- Define candidate solutions — Create an initial architecture (first iteration) or refine the existing one with this iteration’s solutions, then review/evaluate it. If more work is needed, return to Step 2 to identify key scenarios for the next sprint.
Related concepts
Section titled “Related concepts”- Using a systematic approach to software architecture design
- Attribute-driven design (ADD)
- Software architecture patterns
- Cross-cutting concerns
Citations
Section titled “Citations”- Software Architect’s Handbook (Packt, 2018), Ch.5 “Microsoft’s technique for architecture and design”, pp. 348-357.