Consistency in Design with Checklists Everywhere

Consistency is the hallmark of a quality design. It means that each time a series of tasks are performed, the same results can be expected. This is commonly done via automation: each task is defined for a series of inputs and outputs, chained together, and run by a computer system. And that is a good thing! It was the major reason I started the “vSphere Lab Config” project that ultimately became Vester.

Thus, it is confusing to me why so many folks I work with are completely against creating checklists or other forms of human-centric automation to enforce consistency. There’s a lot of variables that we have to remember, especially for tasks that are infrequent, and thus it makes logical sense to describe those tasks using a checklist for the sake of consistency. Why would one try to remember all those things when you can simply “brain dump” them into a checklist for later consumption? I think we all have better things to store in our brains (such as famous Spongebob quotes, right?)

checklist for consistency - nothing to do!
The dream.

One of my favorite books on this topic is The Checklist Manifesto: How to Get Things Right by Atul Gawande. Although the book is from 2010, it contains 225 pages of stories from a variety of different fields (medicine, construction, finance, etc.) on how chaos is tamed with checklists to result in a consistent and predictable set of outputs. In this book, Atul really drives home the point on checklists as an extremely low-tech tool for producing amazing results.

The Citigroup building in Manhattan is one such story that highlights an experience many of us face as technical professionals.

Constructing a High Rise

Imagine the creation of a high rise building. The risks are extremely high: failure to create a consistent design means mass casualties for those in and around the building when it collapses. Much of this risk is mitigated through checklists and frequent discussion milestones with key stakeholders. In the case of the Citigroup building, a shortcut was taken by the steel company that welded the joints.

The building was doomed to collapse until later, when a engineering student discovered the flaw and raised a question about the design. Fortunately, the architect was the sort of person who valued feedback and human life by ensuring the fix (welding steel plates) was implemented. The story goes into much more detail in the book (page 70), which I’ll leave to you to discover.

My takeaway from this story is that when people deviated from the checklist, the failure domain increased and additional risk was on boarded. Additionally, it underlines how important it is to accept feedback from others regardless of their seniority.

Proactive Checklist Tools for Consistency

Nothing I do on a daily basis controls the fate of someone’s life, thus I don’t have to operate at a level of risk avoidance that a building architect has to shoulder. However, I do believe in the value of a checklist to ensure that all of the human elements of a design or operation are written down so that nothing is missed.

I have a number of tasks that I must perform on a regular, repeating basis. In order to offload the checklists for these tasks, I use a tool called Todoist. It costs me about $30 US per year and integrates with Gmail, Android, Chrome, and a lot of other places that I don’t use but appreciate having as options.

When approaching a task, both current or existing, I generate a task and all of the related sub-tasks that I want to check off. In the example below, I wanted to write down the process for adding additional commits to someone’s pull request. Once I understood the process better, I went through it a few times to make sure the sub-tasks worked properly. I can now refer to this checklist when writing bits of automation for various languages (PowerShell, Golang) without having to dive directly into code, first.

consistency can be enhanced with Todoist checklists for common operations
An example checklist

Jira Automation for Consistency

Another area where I like to create sub-tasks as a form of checklists is in Jira using Jira Automation. This is extremely handy for remembering all of the steps necessary when generating collateral or reviewing a feature request. For those doing Software Projects or Scrum boards in Jira, you can find this in the Project settings page under Project Automation.

Here are a few of the automated project rules I have in place. I have highlighted the ones related to sub-tasks. This is run manually by the engineer when constructing a new story or task to build the needed sub-tasks into their board.

Jira automation is one way to drive consistency in your sprint tasks
Having sub-tasks helps with sprint planning as well.

Rather than having to remember all of the research and documentation steps, the sub-tasks are generated automatically and can be tracked across the board like a normal task. It increases consistency across parallel streams of work being done and frees up the brain to focus on the task at hand.

The sub-tasks are added to sprint tasks to help improve consistency
I’ve split up the sub-task generation into major groupings.

Thoughts

I run my life off various task tracking tools, including personal tasks like changing toothbrush heads or booking haircuts. It means that I can offload all of that stress and concern onto a tool that will remember all of the tasks and sub-tasks necessary for me to remain successful. In the end, it allows me to be much more consistent when it comes to producing deliverables. Regardless of the tool you choose, give it a try in your life and see if tasks that you tend to tread or fear become trivial or perhaps even fun!