Structure of the Architecture Communication Canvas (ACC)

Click on an element to see a more detailed description, or just scroll down.

Requirements: What should the system do?
Solution: How is it done? How does it work?
What are known problems and risks?

Value Proposition

Answer at least on of the following questions:

  • What are the systems’ major objectives?
  • What value does the system deliver to the customer?
  • What are the major business goals of the system?
  • Why is the system build and operated?
  • What is its core responsibility?

Back to Top ↑

Key Stakeholder

Identify the most important stakeholders of the system:

  • For whom are we creating value?
  • Who is paying for development?
  • Who is paying for operations?
  • Who are our most important customers?
  • Who are our most important contributors?

Back to Top ↑

Core Functions

  • What are the most important functions, features or use-cases of the system?
  • What activities or processes does it offer?
  • What is the major use-case?
  • Which of the functions generates high value for stakeholders?
  • Which functions are risky, dangerous or critical?

Back to Top ↑

Quality Requirements

What are the important quality goals and requirements, like speed, scalability, reliability, usability, security, safety, capacity or similar.

See the companion site on quality, where you find detailed descriptions of more than 130 quality attributes, plus numerous examples of specific quality requirements.

Back to Top ↑

Business Context

Which external systems, interfaces or neighbouring systems…

  • are the most important data sources?
  • are the most important data sinks?
  • determine our reliability, availability, performance or other critical quality requirements?
  • are highly volatile or risky?
  • have high operational cost (e.g. pay-per-use)?
  • are difficult to implement, operate or monitor?

Back to Top ↑

Core Decisions - Good or Bad

Which decisions…

  • lead to the current state of the system?
  • are you especially proud of?
  • turned out to be dubious, wrong or painful?
  • can’t you understand from todays’ perspective?

Back to Top ↑

Components / Modules

What are the major building blocks of the system (e.g. modules, subsystems, packages, components, services)?

Back to Top ↑

Technologies

What are the most important technologies used for development and operation of the system?

For example:

  • programming languages and technologies
  • frameworks (like SpringBoot, .NET, Flask, Django)
  • database or middleware
  • technical infrastructure like physical hardware, server, datacenter, cloud provider, hyperscaler or similer
  • operating technologies and environment
  • monitoring and administration technologies and environment

See the companion Technology Stack Canvas.

Back to Top ↑

Risks and Missing Information

  • What are known problems?
  • Which parts of the system are known to cause problems during implementation, test or operation?
  • Which processes (requirements, architecture/implementation, test, rollout, administration, operation) cause problems?
  • What hinders development or value-generation?
  • What would you like to know about the system, but cannot currently find out?
  • What is hindering the team from delivering better value faster?

Back to Top ↑

Download

Visit the downloads-page for downloading the ACC Canvas.