When tracking goals, often times a "scoreboard" is a great way to monitor progress; it allows a visual aide that can act as a reminder, and can point out potential threats to the goals completion. When these kinds of tools are applied to software development, it can prove to be an effective tool. One approach that uses a visual tool like this is called Kanban.

Assumptions

  • Knowledge of SDLC phases
  • Understanding of Agile
  • Familiarity with Scrum is a plus!

What is Kanban?

Kanban is an agile approach to software development that aims to improve workflow by balancing workload and minimizing bottlenecks in the development process.

At heart, Kanban is composed of three principles:

  1. Visualize the Workflow: the best way to measure progress is often through visual representation. In Kanban, tasks are made into "cards" and depending on the progress a developer has made on a task, is moved across a Kanban board until the card reaches the "finished" section of the board. (more on this below).
  2. Limit Work in Progress (WIP): By limiting the amount of tasks being worked on at once, developers can focus more on fewer tasks, which in turn allows them to be completed much faster, and with greater quality.
  3. Measure the Cycle Time: The amount of time a cycle takes to complete can be a forecast of the amount of time it may take to complete the entire project. By tracking this time, optimizations in workflow can be found which help decrease the time needed for the project.

Kanban Board

The Kanban board is a table that consists of columns, each with their own identifier, with task cards in the rows. The number of columns is not concrete from team to team, as they can resemble any number of steps needed to consider a task complete.

In implementation, it is desirable to keep the board in a place that will often be visited so that the team can always be monitoring progress without going through much effort to do so.

> Most Kanban boards start with a "backlog" column for tasks that have not been started, and a "complete" column for finished tasks. Intermediary columns are up to the discretion of the team.

For example, one development team may choose to adapt all the SDLC phases into their Kanban board, which might look something like so:

<div style="width:100%; margin:auto;text-align:center;"> <img src="https://www.devmaking.com/img/topics/sdlc/SDLC_kanban_01.png" alt="kanban board" style="max-width:95%;">

</div>

Alternatively, another team may be able to get by with fewer columns, say a "in-progress" and "testing" column:

<div style="width:100%; margin:auto;text-align:center;"> <img src="https://www.devmaking.com/img/topics/sdlc/SDLC_kanban_02.png" alt="simplified kanban board" style="max-width:95%;">

</div>

> In addition to the basic columns, it is also helpful to keep a row and column for defects and other barriers to development.

Advantages of Kanban

  • Allows work to be divided into phases in a visually representable manner.
  • Highly adaptable: many variants of other SDLC models such as Scrum and waterfall are able to integrate Kanban naturally to increase productivity.
  • Can be applied outside of software development easily; executive leadership, HR and marketing teams in a company especially are able to utilize Kanban with high success rates.