Doing “agile” sounds good.
Even more when no methodologies are in place, implementing Scrum seems like the missing foundations.
Rituals are explained to the team but after a few sprints: 50% of tasks are not completed in-sprint and it’s hard to plan without historical data.
Implementing such a framework takes time to get maturity, during which the team will continue their struggle to deliver tasks.
Kanban is a lightweight alternative that adapts to the velocity of each team member and teams, while improving delivery from day one.
This article shares the Kanban methodology implementation for Quality Engineering constraining the software lifecycle to just-in-time flow.
Follow the QE Unit for more Quality Engineering from the community.
Kanban, the Method for Just-In-Time Delivery
The Kanban methodology is the result of years of practice initiated by Taiichi Ohno, an industrial engineer at Toyota, and refined with practitioners.
This method is part of the Lean paradigm, known by the cards used to track production on a shared board, or “Kanban board”.
The goals of the Kanban system are to:
- Limit the work to the work-in-progress capacity
- Limit excess inventory at any point in production
- Limits the number of items waiting at supply points
- Identify and reduce inefficiencies limiting the flow.
Aligned with these goals, Kanban has a different approach to the traditional scheduling systems in push as working in pull from the demand.
An effective Kanban must follow six rules to continuously follow:
- No items are made or transported without a request
- Process issues requests only from consuming demand
- Process produces the quantity and sequence of incoming requests
- The request associated with an item is always attached to it
- Processes must not produce out defective items
- Number of pending requests are limited to reveal inefficiencies.
Kanban boards share the following visual representation:
- Work-in-progress limit is set on processing column(s)
- Columns are defined for each status of the flow
- Cards are the individual item to work on
- Swimlanes help to prioritize specific tasks.
The individual cards of individual work packages are powerful when combined with Definition of Ready and Definition of Done, aligning and limiting rework.
Complementary vocabulary is helpful to manage effectively a Kanban board:
- Throughput: The number of completed items through a process over a certain period
- Work in Progress (WIP): Amount of work being worked on at a point-in-time and not finished yet
- Lead Time: time between the initiation and completion of a process, without differentiating if someone works on it or not
- Cycle Time: actual time spent working on an item.
Finish with the Kanban definition, boards can be deployed at different levels of the organization, constraining to just-in-time flows:
- Individual Kanban board
- Team Kanban board
- Project/Product Kanban board
- Program Kanban board
- Strategic Kanban board.
Let’s clarify the usefulness of Kanban in Quality Engineering.
Why using Kanban in Quality Engineering
Quality Engineering is the paradigm constraining the entire software lifecycle to continuous value delivery with Quality at Speed software.
The constraining force of Quality Engineering materializes using Kanban with the limitation of the work-in-process, pushing for better alignment and delivery.
Indeed, the implementation of Kanban results in effective benefits of Quality (e.g. Flow, Alignment, Customer Satisfaction) and Speed (e.g. Throughput).
How Kanban Contributes to Quality
Kanban provides a systematic way to share the visibility and status of tasks, directly contributing to aligning the stakeholders to work on what matters.
By working on the same flow, teams are able to better visualize the key priorities and possible dependencies improving the overall level of quality.
Without a Kanban, team members will tend to focus on local priorities, opening too many items, probably not needed, resulting in a waste of efforts.
Kanban contributes to Quality being:
- Result-oriented focusing on throughput of actual work items
- Systematic applying to all processing tasks of the defined scope
- Scalable supporting local and large deployments with different maturity.
How Kanban Contributes to Speed
Kanban contains mechanisms such as shared visibility, feedback loops and metrics pushing for delivering with as fast as possible work items.
The identification of work items, stages, and limit of work-in-progress provide focus to the team on the minimal effort necessary to deliver Quality at Speed.
A team without Kanban tends to suffer from the “busy syndrome”, where many tasks rhyme with productivity—over-planning or over-production are also not far.
Kanban contributes to Speed with:
- Focus on most important tasks per priority and based on demand
- Rhythm with a limit of work-in-progress and regular rituals
- Asynchronicity through the shared board easily visible to teams
- Visibility of the work to all stakeholders to align valuable items.
How to start Kanban in Quality Engineering
Kanban boards can be started from day one in different parts of the organization, without strong dependencies or other practices.
We actually recommend defining a minimalistic Definition of Ready and Definition of Done on most important tasks to ease its deployment.
Key principles of change management and service delivery must be followed for implementing Kanban:
The Kanban principles are implemented in Quality Engineering ensuring to:
- Define the policies and rules
- Make the work visible
- Implement a pull system
- Limit the work-in-progress
- Manage the work with metrics
- Learn and adapt collaboratively.
Define the policies and rules
Guidelines for your Kanban boards provide a shared frame of reference to the teams for an efficient deployment, defining columns, lanes, waiting and stages.
Keep things simple for the columns starting with:
- Backlog: The items in demand not started
- To Do: All items ready but not started
- In Progress: Items actually being worked on
- Done: Completed items (as possible by a DoD).
Visualization is an important of Kanban, so feel free to add color codes per tasks typology and to explicit the guidelines directly on the drafted board:
Lanes represent a level of priority for tasks that will enter the flow, directly addressing what matters most first. Three levels are sufficient to start:
- High priority: explicit the list of items that can enter
- Low priority: also explicit to accelerate triage
- Normal priority: default for other items.
A complementary concept of classes of services can be used for prioritization but is not recommended to start due to its complexity (apply to tasks, linked to a SLAs).
The identification of waiting stages is essential to managing the Kanban flow, helping to identify bottlenecks, dependencies and improvements to the flow:
- Waiting for Approval supports alignment and workflows
- Waiting for Review helps to improve the quality of work items
- Waiting for External Activity identifies external dependencies.
Make the work visible
The implementation of a Kanban board directly follows the guidelines defined in the first stage.
Each element materializes in the visual representation of the Kanban board:
The main tasks at this stage is to create the template and let the team fill in the backlog and eventually items already in the flow of work.
A variety of tools are available to achieve a Kanban board like Atlassian JIRA, Kanbanize, among others.
Implement a pull system
All the tasks on the board must be worked in a pull mode to respect the Kanban system; that’s where focus on most important tasks is created.
The guidelines defined in the first stage help to define the order to take tasks:
- Start with most important priority
- Then, with most dependency
- Stop, when the WIP limit is reached.
Keeping focus on the in-progress tasks is critical to capture the benefits of Kanban; actors will avoid issues of context switching and multitasking.
Limit the Work-in-Progress
One essential activity of maintaining a Kanban is to continuously limit the work-in-progress and identify dependency issues.
The focus must be kept on finishing work that is already started, preventing at all costs starting new work because “yes but, something is waiting”.
If part of your team is not producing due to other inefficiencies, they are in fact the issues to address first before adding any other work.
Manage the work with metrics
Continuous improvement requires tackling issues gradually to unlock significant improvements over time. Metrics help to identify where to start.
Managing the flow of a Kanban build upon fundamental metrics of throughput, work-in-progress, cycle-time, lead-time.
A correlation exists in these three core metrics represented by the Little’s Law in the formula “Cycle Time = WIP / Throughput” useful in managing the flow (improving cycle-time requires to limit the WIP or accelerate throughput).
Then, Kanban dashboards can be built to analyze:
- Team performance assessing cycle-time, lead-time, WIP
- Cumulative Flow Diagram measuring the flow of outputs
- Bottlenecks identifying limiting factors in processes.
A cumulative flow diagram is one of the main dashboard used in Kanban:
Learn and adapt collaboratively
Kanban favors continuous improvement, use of facts and acts of leadership to continuously make a better use of the boards.
Regular reviews are necessary to achieve such objectives, in a collaborative way to keep the team’s cohesion and dynamics alive.
Reviews should be systematically done on a defined frequency, for example every 2 weeks to balance delivery and continuous improvement with sufficient data.
Aligned with the lean paradigm, reviews can also mean removing and simplifying the Kanban board with overly complex or unnecessary features.
Simple things will in fact scale better in the organization.
Kanban within the Quality Engineering framework
Kanban is the starting method enabling just-in-time flow in Quality Engineering, part of the Methods domain in the MAMOS framework.
The capacity of rapid deployment and adaptation to different contexts of maturity and tasks make Kanban a de-facto choice when starting Quality Engineering.
Its implementation is critical to Quality at Speed software foundations, fostering a context of continuous improvement and collaboration focused on results.
Deploying Kanban is an investment combined with other techniques (DoR, DoD, Peer review) and for the future, allowing pivot to Scrumban or Scrum if needed.
Which item will you pull first?
References
Kanbanize, What Is Kanban? Explained for Beginners.
Joakim Sunden, Marcus Hammarberg (2014), Kanban in Action, Manning Publications.
David J. Anderson, Kanban: Successful Evolutionary Change for Your Technology Business. Blue Book ed. Edition.
Jeffrey Ries, Lean Mastery Collection: 8 Manuscripts: Lean Six Sigma, Lean Startup, Lean Enterprise, Lean Analytics, Agile Project Management, Kanban, Scrum, Kaizen. Jeffrey Ries.
Agile Alliance, Kanban, Agile Alliance Glossary.
Dave Farley, Is Agile Better Than Kanban? Continuous Delivery Channel.