Skip to content

Instantly share code, notes, and snippets.

@johthor
Created November 18, 2023 22:36
Show Gist options
  • Save johthor/3233a8355c0ebf5b12ffc9057fe3e386 to your computer and use it in GitHub Desktop.
Save johthor/3233a8355c0ebf5b12ffc9057fe3e386 to your computer and use it in GitHub Desktop.
An AsciiDoc template for the Architecture Inception Canvas and Architecture Communication Canvas. The template produces HTML similar to the HTML seen on https://canvas.arc42.org/.

Architecture Canvases

.canvas div.sectionbody { display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 10px; height: 100%; } @media screen { .canvas div.sectionbody { width: 98vw; position: relative; left: calc(-49vw + 50%); } } .canvas div.sectionbody .openblock { padding: 20px; border-radius: 10px; color: #132c15; } .canvas div.sectionbody .openblock > .title { color: #111111; font-size: 1.5em; } .requirement { background-color: rgb(143, 228, 180); } .solution { background-color: rgb(148, 215, 239); } .problem { background-color: rgb(255, 199, 198); } .architecture-inception .business-case { grid-column: 1 / span 4; grid-row: 1 / span 2; } .architecture-inception .functional-overview { grid-column: 1; grid-row: 3 / span 3; } .architecture-inception .quality-goals { grid-column: 1; grid-row: 6 / span 3; } .architecture-inception .business-context { grid-column: 2 / span 2; grid-row: 3 / span 6; } .architecture-inception .organisational-constraints { grid-column: 4; grid-row: 3 / span 3; } .architecture-inception .technical-constraints { grid-column: 4; grid-row: 6 / span 3; } .architecture-inception .architecture-hypotheses { grid-column: 1 / span 2; grid-row: 9 / span 2; } .architecture-inception .technical-challenges { grid-column: 3 / span 2; grid-row: 9 / span 2; } .architecture-communication .value-proposition { grid-column: 1 / span 1; grid-row: 1 / span 2; } .architecture-communication .key-stakeholder { grid-column: 1 / span 1; grid-row: 3 / span 3; } .architecture-communication .core-functions { grid-column: 2; grid-row: 1 / span 3; } .architecture-communication .quality-requirements { grid-column: 2; grid-row: 4 / span 2; } .architecture-communication .business-context { grid-column: 1 / span 2; grid-row: 6 / span 4; } .architecture-communication .core-decisions { grid-column: 3; grid-row: 1 / span 5; } .architecture-communication .components { grid-column: 3 / span 2; grid-row: 6 / span 4; } .architecture-communication .technologies { grid-column: 4; grid-row: 1 / span 5; } .architecture-communication .risks { grid-column: 1 / span 4; grid-row: 10 / span 2; } @media print { @page { size: portrait; } @page rotated { page-orientation: rotate-left; } div { overflow: hidden; } .sect1.canvas { page: rotated; transform-origin: top left; transform: translateX(100vw) rotate(90deg); width: 100vh; height: 100vw; padding: 0 .9375em !important; } }

An Efficient and Collaborative Way to Define your Software Architecture Playground. For more details see Architecture Inception Canvas.

Architecture Inception Canvas

Business Case

Here is your WHY Brief description of the business case or economic driver behind the software system.

Functional Overview

This is your product box The most important functional requirements at a high level.

Quality Goals

The key drivers of architecture The three most important quality goals for the architecture, which have the highest priority for the most important stakeholder.

Business Context

Explore the context and get the scope Separate your system under construction as a black box from all its communication partners. Communication partners are neighbouring external systems and users.

Organisational Constraints

Your limitation of freedom Any organisational requirement that limits the software architects freedom of decision.

Technical Constraints

Your limitation of freedom Any technical requirement that limits the software architects freedom of decision.

Architecture Hypotheses

Create your first high-level architectural hypotheses based on your current knowledge Resulting architectural hypotheses and important, expensive, large-scale or risky decisions, including justifications.

Technical Challenges & Risks

What are the upcoming challenges and the resulting risks? Identified current known challenges and technical risks.

Explanations

Something important

Architecture Communication Canvas

Value Proposition

What is the core business case or economic driver?

Key Stakeholder
  • For whom are we creating value?

  • Who are the customers?

  • Who is paying?

  • Who is contributing?

Core Functions

Most important functions?
Supported processes or activities

Quality Requirements

Speed, scalability, reliability, usability, security, safety, capacity, flexibility or similar.

Business Context

Important external interfaces or neighbouring systems, including important actors or user roles

Core Decisions - Good or Bad

Which decisions lead to the current state?

Components/Modules

Major building blocks of the system, important subsystems, modules, services.

Technologies

Important technologies used for development and operation.

Risks and Missing Information
  • Potential problems and risks?

  • What information is missing or has gotten lost?

  • What is hindering the team from delivering better value faster?

Explanations

Something important

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment