# Guides > Step-by-step guides for starting a software architecture. ## Guides - [What is software architecture?](https://arc.fuet.ch/guides/what-is-architecture.md): Explain in plain language what architecture is, why it matters, and what an architect does. No prior knowledge. - [Before you start: what should already exist](https://arc.fuet.ch/guides/before-you-start.md): List each prerequisite (see `prerequisites` below). For each one say what it is, why architecture needs it, who usually provides it, what a minimal good-enough version looks like, and what to do if it is missing. - [Step 1: Understand the goals and the stakeholders](https://arc.fuet.ch/guides/s01-goals-stakeholders.md): Write down the vision, the business goals, the stakeholders and their concerns. - [Step 2: Define scope and context](https://arc.fuet.ch/guides/s02-scope-context.md): Decide what is inside and outside the system. Draw the context with all external actors and systems. - [Step 3: Capture the key functional requirements](https://arc.fuet.ch/guides/s03-functional-requirements.md): Find the use cases or user stories that matter most for the architecture. - [Step 4: Make quality requirements concrete](https://arc.fuet.ch/guides/s04-quality-requirements.md): Choose the top quality goals and write them as measurable quality scenarios. Build a quality tree. - [Step 5: Collect constraints and forces](https://arc.fuet.ch/guides/s05-constraints.md): List the constraints you cannot change and the forces that pull the design in different directions. - [Step 6: Understand and structure the domain](https://arc.fuet.ch/guides/s06-domain.md): Build a shared language and split the domain into bounded contexts. Sketch the important data. - [Step 7: Choose a solution strategy](https://arc.fuet.ch/guides/s07-solution-strategy.md): Choose principles, an architecture style and tactics that serve the top quality goals. - [Step 8: Design integration and data](https://arc.fuet.ch/guides/s08-integration-data.md): Decide how parts and external systems communicate and where data lives. - [Step 9: Make and record decisions](https://arc.fuet.ch/guides/s09-decisions.md): Make the important decisions explicit and record them with context, options and consequences. - [Step 10: Model and document](https://arc.fuet.ch/guides/s10-document.md): Write the architecture down for its readers with arc42, C4, UML and BPMN. - [Step 11: Evaluate the architecture](https://arc.fuet.ch/guides/s11-evaluate.md): Check the architecture against the quality scenarios. Find risks, sensitivity points and trade-offs. - [Step 12: Keep the architecture alive](https://arc.fuet.ch/guides/s12-evolve.md): Keep decisions, documentation and the code structure in line as the system changes. - [Joining a project without architecture documentation](https://arc.fuet.ch/guides/recovery.md): How to recover the missing information in an existing project, in a sensible order, and what to write down first.