Software Architecture Canvas – a brother of the business model canvas?

Have you ever heard of the business model canvas? If so, then you know that it is basically a board of basic elements which need to be evaluated in the process of creating a product and the business around it. Have you ever wondered if such a model could be created for a software design process?
I did and here are my thoughts on it. Obviously a detailed implementation cannot be touched by such a “bird’s eye architecture-cheat-sheet” but I think a general description with some design tips can be achieved.
So without further ado I bring to you: “The 11 blocks of software architecture”:

Canvas

The canvas has been filled with the sample data which is based purely on my knowledge and experience. I encourage you to update or completely replace the information inputted by me as I ensure you – in 6 to 8 months it will be partially outdated.
The important part is the structure and categories, not the content of the 11-blocks canvas itself. As I am sure you are aware of the pace the new technology gets replaced by a newer one, be sure as an architect to update your knowledge and your copy of the 11 blocks from time to time. Make sure the document contains tag-like bullet points instead of detailed summaries.

Canvas is not intended to be a knowledge base but instead, more of a brief but structured technology choices overview.

Structure

Now if the 11-blocks canvas is a map designed to help you find the right way to architect your solutions, below tables are the legend for this map which should help you understand its structure. Each block is a piece of particular “area of focus” each of which is color coded to help you intuitively locate blocks by their area of focus:

Area of focus

Performance

Development effort (Time)

Minimum

Moderate

Consuming

Performance

Slow

Average

Fast

Category Example

Dev-Consuming / Perf-Fast

 

Area of focus

Application Scale

App Scale

Internal

Internal-Complex

Enterprise

Category Example

Enterprise

 

Area of focus

Application Usage Focus

Performance

Performance  

Usability  

Usability-HighDemand

Category Example

Usability-HighDemand

 

Area of focus

Projected Application Growth

Requests per Minute at Peak

Tens -Hundreds

TensOfThousands 

HundredThousands +

Category Example

HundredThousands +

 

Area of focus

Other – Grouped Options to Consider

Category Example

Best practices & conventions

Use cases

board
The canvas file which you can download here be used in two ways:

  • You as an architect can use it to keep your knowledge (of those important areas of concern in the application design) up to date so basically revise and update your version of canvas every now and then, whenever you find a new better library / pattern / idea.
  • Another use case would be aiding the initial planning phase of more complex applications when your team is brainstorming on the ideas and ways to achieve the business goals. In this case I recommend printing out a version of canvas with only block names on it, just pin it on the board (or even draw it) and let the ideas flow. You will end up with a board filled with sticker notes representing your team’s idea of how the application should look like grouped in feature focused blocks.

Summary

This 11-blocks canvas has been tailored for use within the .Net world and libraries listed as examples/recommendations are mostly tight to the .Net and Visual Studio environment. However it can easily be replaced by any framework of choice. So if you are a PHP application architect or any other technology enthusiast for that matter, feel free to replace sample data with your research results. Hopefully this canvas will be as much of use for you as it is for me.

If you have any questions or remarks please leave your thoughts in the comments box below. Here are the download links for the 11 blocks canvas itself:

Editable Visio diagram: Canvas.vsdx

Pdf preview: Canvas.pdf

Tags: