Subscribe Now:

Thursday, August 28, 2014

Me and My Kanban

(also posted on www.devops.com)

There has been a trending interest in Kanban Boards, a tool that helps teams visualize their workflows, limit work in progress and get more “done”.   Kanban Boards are mostly associated with Agile Scrum teams as a collaborative means of seeing the burndown of a sprint.   In fact, Scrum and Kanban are considered to be so interdependent that a new framework called Scrumban is starting to emerge.   However, Kanban is not limited to Agile.  A Kanban board can be very useful for any project or scope of work that would benefit from visualization. 

The premise behind the Kanban is almost deceptively simple.  A board is built with three columns:  “To Do”, “In Progress” and “Done”.   At the start of each sprint, all of the work that needs to be completed is captured on individual sticky notes and placed in the “To Do” column.  When the task or work is actually being undertaken, the note moves into the “In Progress” column.  Upon completion, it is moved to the “Done” column.   If the team has successfully completed the work that was planned for a sprint, all of the cards that began in the “To Do” column will end in the “Done” column.  Any other result opens the opportunity for questions about impediments, team velocity (the ability to absorb work) and sprint planning.

You will often see team kanban boards built on whiteboards and peppered with multi-colored sticky notes.  There is also a great online tool (www.leankit.com) that offers a virtual team Kanban board with many of the same characteristics (including virtual sticky notes.  If the three columns are too basic, you can certainly add more columns because of the nature of the project.   The only caution is that it is easy to inadvertently make deceptively simple into overly complex.  Beware!

I have recently started to use a personal Kanban board to manage my own workload.  While not perfect, I have seen a significant improvement in my ability to get things done.   It also helps to keep me organized and focused.   I like moving the sticky notes around.

To begin, I created a backlog column with a colored note for each of my outstanding tasks.  The list is never-ending so notes are added to the backlog just about every day.  At the start of each week, I re-prioritize the backlog to ensure that deadlines and other considerations are addressed.  I then take a reasonable chunk of tasks off the top and add each note to the “To Do” column.  These are my goals for the week.  When I start to work on a particular task, I move its note into the “In Progress” column.  Upon completion, the note is moved to “Done”.   At the end of the week, I celebrate what I have accomplished and analyze what was left behind.   

If a note stays in the “In Progress” column for too long or moves back to “To Do”, I have to question why.  Did I overestimate my velocity or time it would take to complete a task?  Have I been faced with extensive interruptions or unplanned work?  Was I waiting on someone else?   The visualization of the Kanban board helps me understand my own patterns of work and recognize how I contribute to or impact the results of my team.  

I highly recommend that everyone to set up a personal Kanban, whether for work tasks or home tasks.  You can use the whiteboard in your office or set up a free basic online board through LeanKit  (www.leankit.com).   The results were be very interesting.

Friday, August 15, 2014

The DevOps Diet (Getting Lean)

(Also posted on devops.com)

IT has gotten fat – fat silos, fat processes, fat procedures.  Adopting DevOps is a great opportunity to look at some of our unhealthy habits and identify where we can eliminate unproductive waste from our process diets.  DevOps will ultimately teach IT how to exercise more with less effort, trim the fat and get lean.

According to lean principles, the seven main areas of waste are:
  • Defects –  variations from requirements that result in interruptions and re-work
  • Overproduction – delivering something more or before it is required
  • Inventory  –  carrying excess raw materials, work in progress (WIP) or finished goods
  • Over-processing – doing more work than is required
  • Motion – moving people or equipment more than is required
  • Transportation – moving products from one location to another
  • Waiting – doing nothing or moving slowly while waiting on a previous step
What are the greatest sources of waste in your IT organization?  Are defects being regularly passed downstream? Are ITSM processes overproducing through complexity and bureaucracy?  Are Agile teams  dealing with excessive work in progress and less finished product?  Are unresolved bottlenecks resulting in frequent delays while waiting for something to get done or someone to be available?  Could automation reduce "motion sickness" and make transportation nonstop? These questions will hopefully facilitate dialog between Dev and Ops about analyzing and streamlining existing workflows.

While waste is fattening, it is not necessarily ineffective.  Projects and other tasks are still getting done and therefore some areas of waste may be difficult to recognize.  To become leaner, start simple by identifying and eliminating one unhealthy habit from your IT diet.   Engage stakeholders from Dev, Ops, customers and suppliers (if appropriate).  Discuss ways to improve the work with healthier habits.  Agree on what to do next or what not to do anymore.

Every diet should be supported by recipes for success.  The upcoming DevOps Cookbook by Gene Kim, et al. will provide more tangible guidance and recipes for healthy IT habits.  More on that in future blogs.

Most of all,  identifying and eliminating waste through Lean DevOps is a great opportunity for collaboration.  After all,  it's always better to diet with a friend.