Kanban - Project Management

Kanban is adapted to software development as a project management approach. Kanban in software development supports a continuous workflow, termed as Value Stream.

Value Stream

The Value Stream consists of all actions required to bring a project from creation to completion.

The actions can −

  • Add Value to the project
  • Add no Value, but unavoidable
  • Add no Value, avoidable (termed as waste)

Elimination of Waste

Anything that does not add any value to the project is known as Waste. Kanban facilitates elimination of waste.

In software development, there are three types of waste −

  • Waste in code development
  • Waste in project management
  • Waste in team potential

Waste in Code Development

Waste in code development is due to the following reasons −

  • Partially completed work − The partially completed work can become outdated and unusable. It can be eliminated with iterative cycles and with modular code that completes within the iteration.

  • Defects − In developing a code, correction and retesting requires time and resources. It can be eliminated with up-to-date test suite, completing testing within the iteration and continuous customer feedback.

Waste in Project Management

Waste in project management is due to the following reasons −

  • Extra Processes − Unnecessary documentation that requires time and resources. It can be eliminated with −

    • Pre-planning of what processes are relevant and necessary.

    • Documentation review, that ensures relevant and necessary processes are followed.

  • Code Handoffs − means passing the work from one person or team to another, after the first person’s work is complete. It may give rise to lack of knowledge. It can be eliminated by keeping the flowcharts and wireframes visible and clear.

  • Extra Functions − These are features that are not required by the customer. Effort and time are wasted in developing the functions required to implement the features that the customer does not want. It can be eliminated with continuous interaction with customer and testers involving in the requirements gathering as they can better visualize the scenarios and expected behavior of the system.

Waste in Team Potential

Waste in team potential is due to the following reasons −

  • Task Switching − It leads to the danger of multi-tasking, which is a waste. It can be eliminated with focus on a task with every release. Large process steps are segmented into tasks to −

    • Improve visibility

    • Reduce dependencies

    • Enable easy flow of work

    • Focus on the cycle-time of delivered work

    • Give a way to detect and resolve bottlenecks

  • Waiting − Time for getting instructions or information – Team is subjected to sit idle if the decisions are not made by the team, or if the information provided to the team (developers, testers, etc.) are expensive resources. It can be eliminated by allowing the team members (developers, testers, etc.) to −

    • Take decisions so that they do not have to wait for instructions

    • Have access to information so that it can be used as and when required