Lean development practices are based on the lean methodologies that have been used successfully in manufacturing processes. Kanban is one of these lean software development methodologies that focuses on just-in-time delivery of functionality and managing the amount of work in progress (WIP).
Kanban is a Japanese term that means “signboard.” Constrained by resources and supplies, the automotive industry in Japan always sought to increase productivity and throughput. They did this by continuously looking for improving “time to market” while giving autonomy to people closer to work for improving the process (Sugimori, Kusunoki, Cho, Uchikawa, 1977). These two main focus areas were the “Just-In-Time” production concepts and “Respect for Humans,” which have been present since the 1950s and paved the foundation for lean manufacturing. These ideas emerged as the engineers found that supermarket workers stocked the grocery produce based on the inventory needs rather than by vendors, and used visual threshold indicators to request new shipments. This visual signal was the birth of Kanban, which first made it to the manufacturing context and then into software development.
If you ever have ordered food in a fast-food franchise, then, you have seen Kanban in action! Once your order is taken by the cashier, it goes into a “To Do” queue. The next worker available in the appropriate station advances the order to the “Doing” queue by preparing the sandwich or filling the drink by working on individual items in the order. As each item in the order is delivered to you and all the items are marked completed, the order goes to the “Done” queue. Kanban is a process-driven framework that focuses more on continuously improving the process rather than searching for the perfect process.
Lean Software Development is a set of principles that helps teams deliver software in a more efficient manner. In a lean environment, activities or processes that result in the expenditure of effort and/or resources towards goals that are not producing value for the customer should be eliminated. Essentially, lean development is centered on preserving value with less work. Lean approaches are the building blocks of Six Sigma and Just In Time (JIT) development.
When used for software development, Kanban uses the simplified stages in the software development lifecycle (SDLC) to represent the different stages in the manufacturing process. The aim is to control and manage the flow of features (represented by Kanban cards) so that the number of features entering the process matches those being completed.
Kanban is an agile methodology that is not necessarily iterative. Processes like Scrum have short iterations that mimic a project lifecycle on a small scale, having a distinct beginning and end for each iteration. Kanban allows the software to be developed in one large continuous development cycle. Despite this, Kanban is an example of an agile methodology because it fulfils all twelve of the principles behind the Agile Manifesto, because while it is not iterative, it is incremental.
The principle behind Kanban that allows it to be both incremental and agile, is limited throughput. With no iterations a Kanban project has no defined start or end points for individual work items. Each work item can start and end independently from one another, and work items have no pre-determined duration either. Instead, each phase of the lifecycle is recognized as having a limited capacity for work at any one time. A small work item is created from the prioritized and unstarted requirements list and then begins the development process, usually with some requirements elaboration. A work item is not allowed to move on to the next phase until some capacity opens up ahead. By controlling the number of tasks active at any one time, developers still approach the overall project incrementally which gives the opportunity for Agile principles to be applied.
Kanban projects have Work In Progress (WIP) limits which are the measure of capacity that keeps the development team focused on only a small amount of work at one time. It is only as tasks are completed that new tasks are pulled into the cycle. WIP limits should be fine-tuned based on comparisons of expected versus actual effort for tasks that are completed.
Kanban does not impose any role definition like Scrum does, and lacks formal iterations or sprints. However, this role flexibility makes Kanban attractive to those who have been using waterfall-style development models and want to change but are afraid of the initial upheaval something like Scrum can cause while being adopted by a development team.
Speaking of how Scrum and Kanban compare, they both facilitate projects to deliver value incrementally and iteratively. Each approach here has so much rich history and practical considerations that the discussion of Kanban versus Scrum required a separate whitepaper. However, here are some high-level points and differences that you can keep in mind when comparing the two:
When your company requires better Kanban project management, there are a lot of choices in the marketplace. However, if you want the best, there is only one solution.
SpiraTeam® is a complete Kanban project management system in one package, that manages your project's requirements, releases, tasks and bugs/issues. Designed specifically to support agile methodologies such as Kanban, it allows teams to manage all their information in one environment.
SpiraTeam provides a Kanban view of the project, where you can see all of the requirements planned for each release organized according to their position in the lifecycle. This view lets you see the flow of the requirements, then identify and rectify any bottlenecks:
SpiraTeam has dedicated Kanban boards for tasks and incidents / defects, so that it makes it easy to run both development and maintenance projects using the same system:
SpiraTeam lets project managers define the Work In Progress (WIP) limits for each of their releases (and sprints).
Work In Progress (WIP) limits set the maximum number of requirements that the product team can efficiently manage at each stage of their Kanban process. Using WIP limits can be a useful way for teams to manage their work, allowing them to get through their work faster. This is done by focusing only on tasks that can be done now (in other words, the work that can in-progress at any one time).
When you have WIP limits configured in the Planning Options you will see the new WIP X/Y pill-shaped badge in the planning board headers when you choose Group by Status:
This pill-shaped badge is displayed on each relevant status, along with the number of requirement cards in that status for that release/sprint.
SpiraTeam® provides reporting dashboards of key project quality and progress indicators (requirements test coverage, task progress, project velocity, as well as top risk and issues) in one consolidated view that is tailor-made for Kanban projects as well as supporting your legacy/hybrid waterfall projects.
The top reasons that our customers choose SpiraTeam® over other Kanban project management solutions are:
In addition, we provide superb technical support that ensures that inquiries and questions are dealt with in a timely and professional manner.
To learn more about SpiraTeam and how it can improve your Kanban project management methodology, you can:
One of the key tenets of both Kanban and other lean methodologies in general is that continuous improvement is central to improving the flow of work through the system. The unrepeatable nature of manual testing, while great for finding unexpected issues, is not sufficient for a commitment to continually improving quality.
You need a test automation solution that can be integrated fully into your development process and can be adapted to your changing needs. This way, you can leverage it to increasingly automate your testing process through each release, improving repeatability and consistency:
Rapise is the most powerful and flexible automated testing tool on the market. With support for testing desktop, web and mobile applications, Rapise can be used by testers, developers and business users to rapidly and easily create automated tests that integrate with your requirements and other project artifacts in SpiraTeam.
One of the obstacles to implementing test automation on an agile Kanban project is that the application’s user interface may be changing frequently, with new pushes to production daily. Therefore, it is critical that tests created one day, continue to work seamlessly the next.
Rapise comes with a built-in machine learning engine that records multiple different ways to locate each UI object and measures that against user feedback to determine the probabilistic likelihood of a match. This means that even when you change the UI, Rapise can still execute the test and determine if there is a failure or not.
To learn more about Rapise and how it can improve your Kanban software testing you can:
And if you have any questions, please email or call us at +1 (202) 558-6885