- Kanban is another popular way that Agile development is implemented. It comes from Toyota which came up with this methodology by looking at how supermarkets stocked shelves. Specifically, supermarkets aim to be just in time so that the shelves are neither empty nor overstocked with wasted or expired food.
- While Toyota used this technique to build cars efficiently, it's often applied to software and hardware production as well. Kanban's goal is to match the team's capacity to do work with how much work is actually happening.
- There should be a few tasks ready to go as well so that if a team finished the story points of work, they can immediately start working on the next items due up for completion. This is nice because your future priorities can change with very little impact on the team's current work.
- And the tasks are based on priority, not a specific timeline. So the product manager will collaborate with engineering to prioritize and re-prioritize as needed with the most important items listed to do up next. The relative level of difficulty is also estimated and included in the planning.
- In Kanban, you typically create a task board. This was initially done with a physical board. Now there's a variety of software that you can use for this as well.
+ In Kanban, you'll typically create this task board showing what's up next, the to-do's.
+ Then the items in progress as well as items that may be ready to be tested or those that are complete.
+ The task will move from one column to the next and you know how much work the team can handle on the way and you can see what's been done to date.
- If you're using a physical board, you can have individual printed cards that represent a task or an idea related to a project and that card can be moved across the board as it transitions from list to list.
- Alternatively, if you're using software to do this, you'll have a virtual card that can be dragged and dropped as progress is made moving from left to right. There's a variety of software tools available now that do this fairly efficiently. This is one from a product called Paymo.
- You can see the variety of activities that exist in the to-do column, another set that are listed in progress, and then also three items that have been tested and are marked as being complete.
- One of the biggest benefits to Kanban is that it enables continuous development. Once a change moves through the cycle, it's ready to be released. Especially for apps, this is quite nice and enables immediate customer feedback.
- Kanban is also nice because it can be implemented on top of other methodologies. It's really just a focus on incremental continuous improvement to the product. In general, if your team is already using a workflow and executing well, Kanban might help the team to move to the next level.
- Sometimes you'll see Kanban combined with Scrum which was originally intended as a way to transition from Scrum to Kanban, but it's become a methodology on its own.
- Sometimes you'll see Kanban combined with Scrum. Here, the team will have a planning meeting, execute a very short sprint, and then have another planning meeting when the work in progress falls below a certain number of story points. There are no predefined roles or schedules and the iterations are focused on points delivered rather than time.
- One of the drawbacks is while Kanban might work well for development teams, it can be very demanding of the product manager. Product managers are frequently quite busy, working with customers, shepherding products, working with marketing and more. Kanban will require you to be available almost continuously, to verify when each task is completed and to make sure the next set of tasks is prioritized and ready to go.
- If you don't continually do these tasks, you will become the bottleneck in the process. Whichever methodology you may use, remember that Agile development methodologies are meant to improve the product development process, not to complicate it. The aim is to help companies release their products faster, to make those products better, and to lower the time and expense bringing them to market.