Kanban—An Agent to Push Quality Upstream
In software engineering, some call kanban a project or a portfolio management methodology; others call it a change management methodology. Regardless of how it is described, kanban has existed for several decades now. Its origin can be traced back to the 1940s when Toyota introduced it to manage its inventory, promoting just-in-time production.
Although it has a long history, kanban was primarily used in the manufacturing and supply chain lines. In the last decade it has become popular and has been used extensively in software development to supplement agile methodology in promoting a lean development model.
Whether an organization adopts a waterfall or an agile model, kanban can be leveraged to streamline development operations as it is based on the principle of visualization and streamlining cross-discipline work progress to ensure overall workload balance. It promotes better visibility of everyone’s progress and enables them to play catch-up by helping the team who is lagging behind to get on par with the other teams.
Often, since the test group has dependencies on other teams, such as design or development, they are the ones who might have to catch up. Due to its inherent features, kanban helps push quality upstream.
Teams such as development and design who wait for testing to align with their progress, often help testers in several ways, such as sanity testing, monitoring automated runs, etc., which promote cross-group collaboration. This helps make quality a team goal, led by the testing group.
Testing is roped in upfront to understand the design and provide feedback on what is accomplishable. Kanban promotes early and ongoing testing, and as a supplement to the waterfall methodology, it gets quality weaved in throughout the development lifecycle.
The process of catching up on the overall team’s progress involves not just reducing wasted efforts but also eliminating wasted efforts upfront. Kanban promotes quality assurance, not just quality control.
Kanban encourages a pipelining mechanism, even in the Scrum world, by enforcing a design, develop, test, and deploy cycle. While there may be concern that this works against the Scrum agenda, kanban brings the best of both worlds to the two most popular development lifecycles—agile and waterfall.
In both agile and waterfall the quality of the product as a whole is greatly enhanced with the entire team focusing on and contributing to quality as part of their responsibilities throughout the product lifecycle.
Kanban makes agile more streamlined through a pipeline mechanism, which reduces randomization yet enables iterative and dynamic development practices. Kanban makes waterfall more flexible, dynamic, and fast-paced yet enables its sequential nature of development.