BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles Using Checklists to Organize Software Development Processes

Using Checklists to Organize Software Development Processes

Bookmarks

Key Takeaways

  • Checklists can be very effectively used as a supporting management tool
  • A number of other industries use checklists as a norm and have seen significant improvements as a result
  • There are a variety of software development processes which can benefit from using checklists
  • There are multiple ways to use checklists in software development
  • Project management tools frequently have template checklists built in and you can add your own

Being a professional implies constant education. Even top-notch experts have to nurture their domain knowledge to maintain their background. At the same time, can we claim that a high level of expertise guarantees lack of errors? The question is especially acute in software development where each error results in an increase in time and cost. Therefore, regardless of the chosen methodology - Agile, Lean, Rapid, Feature Driven, or others - striving to organize software development processes should be a top priority for project managers and other leaders. In that context, similar to the unsung hero, whose is not noticed by the public but crucial for the history, checklists come to center stage.

The power of checklists

It’s likely that the bulk of the audience doesn’t need any explanation of what a checklist is. In a nutshell, it is a list of questions or bullet points that characterize the status/progress of a certain activity or process. The list may contain any essential data regarding your accomplishments or plans. Due to their versatility, checklists can be leveraged in any industry regardless of the business focus. But what is the purpose and benefit of using this process organization tool?

Sophisticated areas of focus like medicine, software development, numerous sorts of manufacturing, and others abound with complicated pipeline steps. Teams and departments interact to either complement or proceed with the production process in stages that require proper coordination. At first glance, the checklist's role is not remarkable. However, a deeper analysis shows that this tool stores trivial and easy-to-forget tasks outside your brimming-with-tons-of-data brain.

Let’s take a simple example. When you get in a car, you can’t just drive because there is a set of specific operations to be done. These include fastening your seat belt, removing the handbrake, putting a transmission gear lever into neutral position, starting the engine, checking the indicators, etc. After you have checked and accomplished all these routine tasks, you can press the accelerator pedal and drive. Every driver has this checklist in his/her memory because of its regular use. If your set of tasks is bigger or varies frequently, it’s challenging to keep it memorized all the time.

Pre-flight checklists are a good example. A regular pilot is aware of the importance of checking a list of tasks to prepare an airplane for takeoff. These include checking the operation of the altimeter, fuel gauges, flight controls, magnetos, engine idle, and other system parameters. Besides, preflight checklists are usually segmented in a way that the accomplishment of final items (status of doors/windows, mixture, lights, camera, and action) is completed after the set of initial tasks. The same thing is with the before-landing checklist. According to the FAA's practical test standards, these sets of tasks must be in a written form for pilots’ use.

That’s the key reason you need checklists implemented in your activities. The following benefits should also be taken into account.

Time-saving

Running through a checklist does take much time. However, this activity prevents some simple and even stupid errors that are possible without enough attention. As a result, the time you will save in the long run exceeds many times the time spent on checklist verification.

Brain’s random access memory release

Some consider checklists as creativity and intuition limiters. But these tools are not intended to replace a special feeling that originates from a longstanding experience. In fact, checklists store simple information to offload the so-called mental RAM, which allows the intuition to focus on more complex things.

Focus on basic stuff

Any operation, be it a part of software development process or any other activity, consists of complex and basic tasks. Nobody wants to focus on humdrum stuff instead of the lucrative part of the work. However, both elements are important, and checklists allow you to remember the little things. There happen to be some simple tasks in a pipeline, and they should not be ignored.

Discipline

Perhaps, this benefit will be most appreciated by professionals that bear responsibility for other people’s lives as in aviation or medicine. Nevertheless, a disciplined employee is always a catch. With checklists, you have a chance to develop that attractive characteristic. A narrow scope of answers ("yes" and "no") is not a burden to complete. A regular list check instills discipline in those who use it.

Why use checklists in your project

You can leverage checklists in various areas of life. Are you going to get married? There is a wedding checklist. Is a business trip coming up? A travel checklist will help. Other options include inspection, security, packing, invitation, moving, shopping, etc. Most things are like that,  your next or current project will definitely benefit from using this sort of process management tool.

Many prominent software development companies like Railsware are active users of checklists in their activities and processes. They do not limit their lists to 7 or 10 points. Sometimes, the number of points can stretch up to a couple of pages consisting of subsections for rather complicated processes. And here are some reasons why you should consider using checklists for your needs.

  • If you do not want to exhaust your team members’ creativity, checklists are a must-have tool for production. Their function is simple - to check whether anything is forgotten or unfinished. And the most important thing is that you do not have to create a new checklist every time a task appears. Creative energy can be channeled to the more exacting tasks.

  • A delegation of tasks is another frequent issue. Instead of wasting time explaining basic requirements, a smartly tailored checklist can provide all necessary information and instructions.

  • Most companies strive to arrange their best practices in the most convenient way. Checklists work well here. Providing essential information for repetitive tasks in the form of a list proves a company’s consistent approach to any level of activity. As an example, introducing specific rules and policies to new team members is quite practical when done through checklists.

  • Constant improvement is not a trend but a lighthouse, which guides teams and ventures. And if your organization management structure is free of hierarchical restrictions, you can enjoy the way checklists assist in optimizing your in-house processes. Every employee can share his or her views regarding a particular point in a shareable checklist.

  • Single point of failure risk means that only one assigned person can execute a particular task. In that sense, you can reduce the risk by allocating instructions and guidance in the shareable checklist. Thus, other team members can learn how to cope with the task under certain circumstances.

Unfortunately, implementing checklists in working activities is not simple. You need to learn how to build, use, read, improve, and update checklists. Eventually, you will notice that your workflow badly needs this simple and powerful tool.

What software development processes can benefit from checklists

Perhaps, we have a complete picture of leveraging checklists in such industries as aviation or manufacturing. However, how has this tool proved itself in a more complex workflow - software development? In fact, software teams that follow Agile methodology appreciate the implementation of lists as acceptance criteria solutions, definition of done, progress tracking tools, etc. Moreover, each separate development process has its own advantages.

Git Workflow Checklists

It is obvious that one can use a screwdriver as a hammer, but that won’t be efficient. It’s similar with leveraging Git. To make the most of it, you need a recipe to achieve the highest productivity. It is all possible with Git workflows. Besides, a consistent Git workflow ensures more chances to free your development pipeline of unnecessary obstacles. In that case, a checklist is a solution to avoid committing to memory every component of your software development cycle. The tool is able to guide anyone through the workflow jungles including user stories issues, solution coding, forking the code repository, and others.

User Stories Checklists

Agile software development leverages a technique called the user story to get enough information for implementing software features from an end-user perspective. Shaping acceptance criteria is an integral part of this process that can be improved with a checklist's help. You can create a special format containing categories, point assessments, labels, names, etc. For example, a Definition of Ready can be transformed in Definition of Done category after changing the story specification. On the picture below, you can see an implementation plan, which is, in fact, a ToDo list containing guidance on how to handle the user story written in the description section.

[Click on the image to enlarge it]

[Click on the image to enlarge it]

Sprint Checklists

You need sprint planning to ascertain the relevant context of the product and responsibility for certain tasks. The process itself is a kind of endorsement of the decisions taken during the backlog refinement. The checklist's role is to establish a proper context at every point of the backlog. It is a good practice to shape a separate list for three stages of the session - before, after and during the sprint planning.  In doing so, you will reduce the cognitive load of handling practices.

Deployment Checklists

Software deployment practices are necessary to deliver a close-to-user-expectations product. Adding/updating features, not to mention debugging, are essential elements of the deployment process. Implementation of checklists provides a decent level of organization of these procedures. In doing so, each update will be thorough and safe.

Testing Checklists

To build a proper testing checklist you need to take into account not only the product requirements and user stories, but also cover a wider spectrum of implementation. At the same time, the test scope should be narrow enough to focus on a product’s functionality. It is also important to make separate tests for different parts or elements of activity. For example, a purchase activity on a website may consist of three parts - signing in, adding products to the cart, and signing out. Splitting your checklists for testing procedures will isolate test failures and keep the focus on the essential details.

Debugging Checklists

We’ve mentioned debugging as a component of the deployment process. However, a process of removing existing and potential errors in the code can be optimized with checklists describing the most important steps for both novice and experienced team members. With that in mind, you will turn the never-ending process of fixing errors into an organized and tailored activity for product optimization.

Checklists in project management tools

That’s it for theory. In practice, you can take advantage of checklists in project management (PM) tools. This sort of software is leveraged to keep the workflow organized and provide the team with the ability to see other stuff circulating in the working environment. However, the market abounds with versatile PM solutions, which is not always a benefit to an inexperienced user. Therefore, you have two paths to choose from - either take a look at a comparison post like this one, or consider the following must-have features in your search:

  • Customizable ready templates for software development workflows
  • Scrum and Kanban boards that can be used by Agile teams
  • Advanced reporting for measuring the efficiency of teams and approaches
  • Development tools integration
  • API to enable process automation
  • Developed User Management to provide user roles and differentiate access levels

Checklists support is another essential point that we decided to place out of the list. Some powerful project management tools have changed their attitude to this feature and enhanced their functionality with integrable plugins like Jira checklist. A bunch of capabilities including the creation of acceptance criteria, definition of done, and other ToDo lists, splitting, arranging, prioritizing, and others became available to multiple users. This superficially subtle innovation shows a growing demand for implementing checklists within PM tools as an integral element of workflow organization.

Bottom Line

As you can see, the power of checklists is not an illusory phenomenon. A famous surgeon, Atul Gawande, even wrote a book dedicated to this topic. Despite their simplicity, checklists give an extraordinary boost to organizing things in the most effective manner. Though, maybe their very simplicity underlies their power? Anyhow, you should try a few out. That is the only way to realize why you need checklists.

About the Author

Zakhar Yung is a technical content writer at Railsware - web and mobile app development company. Prior to the IT industry, he managed to gain experience in versatile fields including SEO, industrial facility trade, and nuclear engineering. He participated at the construction of Baltic NPP and Akkuyu NPP.

Rate this Article

Adoption
Style

BT