Over a million developers have joined DZone.

The System Design Canvas

DZone's Guide to

The System Design Canvas

Every personal or professional thing we do is part of a system or subsystem. Those systems have both success and failure patterns.

· Agile Zone
Free Resource

See how three solutions work together to help your teams have the tools they need to deliver quality software quickly. Brought to you in partnership with CA Technologies

In a previous post about productivity patterns, I wrote about how I tried countless systems to improve my productivity. I tried everything from having a Franklin planner to using GTD to personal Kanban and the Pomodoro Technique. I asked myself why some methods worked and some did not. Why did I abandon two systems when I knew so many others have been successful with them? Why has personal Kanban worked for me for the last seven years? I started listing common traits and saw relationships and discovered patterns. Not only are there three things I believe every system needs to work but I also see three things that are necessary to prevent you from abandoning that system.

Every personal or professional thing we do is part of a system or subsystem. Those systems have both success and failure patterns.

Success Patterns

For a system (defined as a set of principles or procedures to get something done or accomplished) to be successful, you always need ritual and habit.

  • Ritual: A series of actions or type of behavior regularly and invariably followed by someone.
  • Habit: A regular tendency or practice, especially one that is hard to give up. You need to be habitual with your rituals, as part of your system.

Failure Patterns

Early indicators that your system will fail include a lack of clarity, progress, or commitment. These are very similar to Mike Cottmeyer's "Why Agile Fails."

  • Lack of clarity creates confusion and waste. Each step of a system should be actionable and repeatable. In order to ensure certainty around your system steps, write them down.
  • If you lack progress, you will lose momentum. If you lose momentum, you will lose commitment to the system.
  • Lack of commitment to the system results in you no longer using the system. You move on to something new to get the results you seek.

System Design Canvas

After I identified the patterns, I wanted to present a useful model to visualize the indicators that will, in time, cause the system to fail. I decided to base my model on the Business Model Canvas by Alex Osterwalder. Below you will see the five areas that need to be considered. Once complete, if you notice one or more of the sections is ambiguous or short on details, you should view that as a warning.  

System Design Canvas Template

Scrum Framework Success Patterns

By using the Scrum framework as an example system, I completed my system design canvas. Upon completion of the worksheet below, I can see if there are any “gaps” in the system. As you may have guessed, there are no gaps if Scrum is properly implemented and followed. However, if it was modified without expert guidance, a gap will become visible and provide an indication that the system is at risk of failure.

Scrum System Design Canvas

Because you may have a large organization where you are dealing with different kinds of dependencies, you may need to create “sub” system design canvases to account for organizational complexity.  Scrum may not be enough. Don’t worry. The same rules apply.

If you're interested in testing your system or subsystems, there's you can check out the System Design Canvas and see if you are at risk of failure. Because I am providing this under a Creative Commons Attribution-Share Alike 3.0 Unported license, I welcome you to download it and modify it to meet your needs.

Discover how TDM Is Essential To Achieving Quality At Speed For Agile, DevOps, And Continuous Delivery. Brought to you in partnership with CA Technologies

agile methods ,agile ,productivity ,system design

Published at DZone with permission of Derek Huether, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}