SOFTWARE ENGINEERING blog & .lessons_learned
manuel aldana
Manuel Aldana

September 25th, 2010 · No Comments

Power of Checklists in Software Development

To a big degree Software Development involves creative and non-reoccuring actions. On the other side for the repetitive tasks you want to save time and increase quality with automation tools (scripts, build-tool, reporting). These should be a key part of your development/deployment/production cycle (building software, running tests, monitoring etc.). Still you also have to cover reoccuring tasks which are hard to automate and need human interaction, like:

  • Rolling out releases (most often each release is unique and needs different changes in several orders on system environment).
  • Implementing features, marking them as ‘done’.
  • QA process, from testing to approval for production.
  • Upgrading procedures.
  • etc. …

I’ve always found such repetitive tasks hard to remember (especially when they spawn over a wider range of time). The result was, that sometimes steps were missing or were executed in the wrong order. After all costly and annoying afterwork was necessary.

Good old-style Checklists

Even highly skilled professionals hardly memorize every detail of execution steps and order (humans tend to be very bad at fulfilling repetitive tasks 100% correctly). To follow better a proven procedure checklist can help a lot. Their setup is cheap and following them can avoid to miss steps.

Sample checklist: Marking feature ‘done’

General reminder, no fixed order:

Sample checklist: Merging Branch to Mainline

Sequential, fixed order:

Advantages

Checklists:

  • They improve awareness and common understanding of process
  • New team members can be introduced better to current process.
  • Relieving poor human memory.
  • Increase of both efficiency and quality (less afterwork of forgotten tasks).
  • Good cost/benefit ratio.

Of course it is important to not go overkill with checklists and list every milli-second step and fix the process (we’re not a car-factory dude!).

Lightweight Tooling

Checklists should be easy to to create, view, reset and follow (as foundation a wiki is perfect here). Often it is sufficient to have a simple table, because it lists all the steps sequentially and you can add notes to it. When there is a more complicated workflow an activity-diagram is better choice. Once you found a proven procedure, checklists tend to not change often, printing and pinning them up works also fine.

Tags: Software Engineering

0 responses

    You must log in to post a comment.