The control of requirements, design, and development inventory is important to maximize project efficiency. A main focus of Agile is to gather requirements, design solutions, develop objects, and test working code at the moment they are needed. If any of these areas are far ahead or behind the others then a critical principle of Agile is being violated. Implementing Kanban helps to keep production of objects at each stage of the project at the appropriate levels.
Here is how it works. The team has a board that looks very similar to a Scrum board. It has columns for stages of
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTdJulG_-b3p-qUWyATYiLRKKO4QwL12GI-VGDHmRw8SlrnamKguN_nhm4g_cuDji0WZP6nT35c0_0UnftmuaqsGOA-AL9B_D1cvrP3_eAX9SFscVx72mkn1ati8UvgpiaxZ5OUBHAYYHL/s400/KanbanBoard1.jpg)
Regardless of the column names, cards start out in the far left column and move their way to the far right column. The inventory of cards at any one category is controled by open slots within a category. For example, using the image with the multi-colored postIts, when a card is pulled from the To Do column and placed in the Doing column, it leaves an open slot in the To Do column thus a need for more To Do items to work on. Unlike Agile, Kanban does not bundle work into sprints. The flow is constant.
In my opinion, where Kanban is most effective is on larger projects where there are teams that make up "columns" of work. The i
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSNCAWTcs0OWeRwW8-C7a1Ulx18ZrR6e9ZcF6kmkqWute5nDbqTfrqb7p4u5ElX2ORRipG04pYNgvPBKhprsL0BtnMmPqXzzqX74vzSJAY2LvxrYlCwgkt86uhP4KkN1T3ic0mMvvvoEnm/s400/kanbanBaord2.jpg)
It isn't hard to imagine Agile teams using Kanban techniques to control the flow of work. A simplistic view is to wrap Kanban into iterations and you now have Kanban Agile. There are additional difference between Agile and Kanban and I provided a couple of links at the bottom of the page if you are interested in learning more.
In a previous article, The Convergence of Continuous Integration and Continuous Release, I discuss the merits of deploying to production immediately after code is checked in and all test are run and are successful. Kanban would work exceptionally well in this type of environment.
Whether it's Agile based on Kanban or another style of Agile, there is a consistent attribute of Agile teams; the Agile team needs to be composed of multi-faceted team members who are adaptive. As production velocity shifts across any or all categories of the project, team members should be able to shift into different roles accordingly, i.e. gathering requirements, designing solutions, developing software, and/or testing working code (or coding automated tests). Personally, I think this makes being a software development professional more interesting but it isn't for everyone.
Click here and here to read two good articles on Kanban as it relates to Agile software development.
I'm interested in your thoughts.
Kanban is a good working model for goods manufacturing. It is interesting, trying to adapt/fit it to software development (software not manufactured, instead developed).
ReplyDeleteIn Kanban method, when a slot become empty it is always replenished with the same part. But, in software development filling an empty slot will be challenging (note, the article mentions, people should be ready to take different roles so that empty slots at any column in the down stream could be filled efficiently), since it involves people's special skills, working platform, dev. environments and etc. Sometimes even if the person has skills, switching the gears not easy. That is filling the kanban slots in software development may not be as efficient as it is in manufacturing.
Manufacturing is a sequential process, no iterations needed. Software development unlike to manufacturing goes through several iterations before shaping up as a finished product. Due to this simple reason the people (the roles) need to standby (looking for tasks, just like a fire fighter) in their roles all the time till the product is finished and released.
By the way, it is a great thought though..
The initiation processes determine the nature and scope of the project. If this stage is not performed well, it is unlikely that the project will be successful in meeting the business’ needs. The key project controls needed here are an understanding of the business environment and making sure that all necessary controls are incorporated into the project.
ReplyDelete====================
Project Management Software