In much the same way Michael Kunze coined the acronym LAMP, I propose the use of a new industry acronym for Agile. Scrum, Lean, Kanban & Kaizen. (SLKK, pronounced slick) I have successfully used this process which incorporates techniques from all of these areas and felt it needed a name. I also feel that it will be very useful to many of you that are already using or just beginning to use Agile.
Scrum – Describes the artifacts, meetings, backlog and iteration terms, etc. A good intro here. (Hat tip Ken Schwaber and Jeff Sutherland)
Lean – Describes mechanisms for the elimination of waste, systems thinking and pull concepts. Wikipedia description here. (Hat tip Tom and Mary Poppendieck)
Kanban – Introduces the card wall, reduction of work-in-progress(WIP) and resource workflows. Personal Kanban also useful. A great description by Kenji Hiranabe here. (Hat tip Taiichi Ohno)
Kaizen – Company and culture. Also speaks to elimination of waste using the scientific method. Using actionable items found in Scrum retrospectives, teams perform “kaizen blitzes” to improve processes and performance. Personal Kaizen also useful. (Hat tip TPS, W. Edwards Deming and Joseph M. Juran)
I have read numerous articles and blog posts discussing one technique vs. another and have found it amazing that very few discuss the how they compliment one another. This is what I hope to begin to do in this post. If you would like to learn more about any of the four pieces, click on some of the links above or books below. First a picture to graphically show my thoughts.
Figure 1 – Scrum, Lean, Kanban, Kaizen Relationship
In a nutshell, here is what the process looks like:
- Initial Backlog prioritized by business value. Value drawn from market (client) needs. This is the pull in Lean.
- Map your value stream. Make sure you understand how you will measure partially done work, task switching, defects, etc.
- High level estimates.
- Build release roadmap based on value and estimates. Refactor if necessary.
- Release planning session for release. Make sure everyone is clear on the vision of the release.
- Sprint planning session. Limit Work-in-progress (WIP) as much as possible. Prioritized by business value. Make sure work is buffered and balanced. 16 hour SBI’s. Make sure everyone is clear on the vision of the Sprint.
- Commitment on Sprint Backlog.
- If not already done, automated build and test environment setup.
- Kanban card wall goes up for Sprint. An electronic version of this on a 60” LCD works well! :)
- Daily Scrums review the card wall deltas. If electronic, task cards added to personal Kanban walls. If manual, use resource swim lanes. How have we improved on our Kaizen item?
- Sprint Review. Demo new value features. What was the Throughput in dollars? Review PBI’s contained in the next sprint and verify correct priority order. Sprint Review minutes published via email to all stakeholders.
- Sprint Retrospective. What are we doing well? What could we do better? Pick and actionable item for improvement during the next Sprint. How will we measure our improvement? How did we do on our last item?
- Ready for Release? If yes, go to #14, if not go back to #6.
- Software released to production. Release notes sent to all stakeholders including version number, release CVE, de-scoped features, added features, impediments and any open discussion items.
- Is the dollar value (revenue potential) for the next release greater than the cost? If not, the project is ended or put on hold.
- Does this project have the highest IRR of all the potential projects for this team? If not, change projects.
- Begin next release, go to #5.
While I hope to go into more detail on this technique in future posts, but for now, here are some great primer books to get you started: