Archives For Kanban

Kanban BUFD

This week we had a learning moment and we thought it was worth sharing.  We’ve been helping a team transition to Kanban to manage the flow of upstream business and analysis work that has a high degree of variation.  Before we dive right in…a little background is in order:

  • The team has been using a Scrum-ish process
  • External dependencies are a persistent risk
  • Upstream work was hampering downstream development flow

After a day of Lean Kanban training, we embarked on discovering how they tackled work.  We mapped out their standard workflow on a kanban board.  After talking through limiting WIP, pulling work, and managing flow via metrics we kicked them off and scheduled some followup meetings.

Upon returning, a pattern had emerged.  It seemed that their kanban board had turned into a BUFD board.  The work steps had not changed, but what was flowing through each work step was big, really big.  It struck us at that moment, that what this team really needed was a deeper understanding of business decomposition.  Typically this is a Product Owner responsibility, however in reality this team was handling some of these responsibilities.

Understanding how to break down large value streams into releasable chunks, features, and user stories seems easy, however the lack of mature software business practices was a clear gap on this team.  It makes sense, this is an engineering team…not a product management team.

The lesson learned?  Business practices matter.  Wrapping a highly optimized workflow tool(Kanban) around work will not increase agility if the right sized work is not flowing through the system.  This seems obvious but this was a great reminder that reinforcing the basics during any change initiative is worth while and adequate business practices are not common.

 

Merry Christmas

December 24, 2012 — Leave a comment

Slide1

Santa’s workshop is almost finished!

Merry Christmas from LeanOrange!

BigBatchTwilightZone

In the previous post in the Twilight Zone series we highlighted the misconception that Agile is for software development only.  In this post and subsequent posts we will highlight how Batch Sizes are effected by many areas across an organization beyond development.  Put your chin strap on…this may get a little heavy!

Don Reinertsen’s book, Principles of Product Development Flow(YOU should read it!) lists Reducing Batch Size as one of the eight principles of product development flow.  Before we jump to how you can reduce batch size, lets take a look at the cause and effect of large batch sizes.  By the way…much of this content can be found in Reinertsen’s book.  Did I mention YOU should read it?

The Cause

Today most project management is focused on wringing out efficiencies by institutionalizing large batch sizes.  This leads organizations to functionally align into big batch silos – Requirements, Architecture, Development, Test, and Operations.  The thought is that we can gain efficiencies through economies of scale and uninterrupted work.  And guess what…its true!  There are local efficiencies gained by pushing large batches of work through functional silos.  But how does this effect the agility of the whole organization?

The Effect…let the games begin!

  1. Increased cycle time(i.e. slower delivery speed.)
    • Its gonna take longer to build more stuff – duh!
  2. Increase variability of flow
    • What’s that mean?  It means there will actually be more frequent and larger interruptions in work.
    • Think about it, every time a big batch of work enters a silo a flurry of activity must happen to service it.  When a big batch leaves a silo, activity subsides.  Hot, cold, hot, cold, …etc.
  3. Slower feedback
  4. More risk
    • The longer it takes, the more could change(requirements, customer, technology, …etc)
    • Big planes are harder to land than small planes  (btw…in the English language we call that an analogy 😉
    • Slower feedback increases the consequence of errors.  i.e. the later we learn about a problem, the more it costs to fix it.
  5. More overhead
    • More uncertainty in process means more status meetings so we can get updates on our uncertainty.  Making sense yet folks?
  6. Reduces efficiency
    • Wait I thought it gained efficiency?  Well…yes…locally!  However its at the expense of destroying important feedback loops that cause defects to grow exponentially as batches are pushed through each functional silo.
      • I know this never happens…but what if a redundant defect is found by Test or Ops?  Perhaps an assumption was wrong, the customer changed their mind, …etc.
    • Think of how this effects the efficiency of the whole organization!
  7. Lowers motivation and urgency
    • Are you more likely to feel an urgency to deliver on day one of a two week sprint or on day one of a 100 day milestone?  Me thinks two weeks. 🙂
    • Which scenario would you feel more motivated by responsibility?
      • If you are responsible for shepherding a capability from concept to consumption…oh lets say…something like a USER STORY.
      • You were just capturing the requirements for a capability, but you knew several other groups would share in the responsibility to deliver it. (Arch, Dev, Test, Ops, …etc)
  8. Increased project slippage
    • More uncertainty in process…means more uncertainty 😉
  9. Leads to Larger Batches
    • Often called Death Spiraldevelopment.  Here’s what the customer is thinking
      • “If I’m not getting a capability for 6 months or a year I’m giving you everything I got!  Prioritization…what’s that?  Everything’s a P1!”
  10. The entire batch is limited by its weakest link
    • If 1 out of the 30 requirements in the batch has a security relevant change then we will treat the whole batch as a security relevant change.
    • For those of us who have dealt with security relevant changes, we know this can be a huge pain and often leads to large delays.

Whoo!  That was a mouth full.  In the next post we’ll describe some practical steps you can take to reduce batch size so that you don’t have to deal with the stuff above.  And I promise we will outline specific areas of your organization that will be involved to Reduce Batch Size!

 

TWILIGHT ZONE

One of the preconceived notions that we run into while consulting is that Agile is only for software development teams.  As if Agile is some Twilight Zone that only applies to developers.  If we lived in the Twilight Zone, that might be true.  But we live in the real world, and we have to deliver value to our customers.  Agile practices and methods usually start cropping up on software development teams first, but quickly expose the lack of agility in other areas of the organization.  If you want to deliver software at scale with agility, you must consider how you do business outside of development!  

This is what Lean|Agile is all about.  Lean|Agile goes beyond development and addresses the organizational impediments that stand in the way of agility.  Our Lean|Agile service teaches and trains the essential practices needed to discover and deliver increments of value in a sustainable, predictable way. This means we must consider all stakeholders involved with the creation of value – Customers, Requirements, Architecture, Management, Development, Operations, …etc.

We’ve found that this common misunderstanding, has required us to do a lot more upfront training.  Essentially we need to baseline the thinking of our clients so that we are able to help our clients achieve agility at scale.  In the next week’s post we will begin to describe how one specific principle of Lean|Agile development, Reducing Batch Size, effects organizations outside development.  Stay tuned!

http://www.bti360.com/uploads/Slide14.jpgWe’ve all observed the guy or gal at the daily standup that takes 5 minutes to report everything he or she is working.  It’s almost a badge of honor to be soooo busy.  However, a good Scrum Master would raise this up as an impediment to the team.  Why might you ask?  Lets answer that question with one of my favorite people skills.  Answering a question with a question!
Have you ever seen the “card pile up?”  Picture a scrum board with 2-3 days left in a sprint.  Typically, the majority of tasks are still in “Execute” a few days before the end of sprint.  Magically everything makes it to the “Done” column by the end of the sprint and the embedded testers give the developers <sarcasm> a high five </sarcasm>  at the team’s retrospective!

Excessive Work In Progress is an impediment to a team because it puts sprint commitments at risk.  A good Scrum Master will recognize this and try to bring visibility to this issue before it highjacks the sprint!  In reality though, this impediment is rarely addressed.  There has to be a better way to mitigate this risk!?!?!

Drum roll….the answer is WIP limits!  WIP stands for Work in Progress.

WIP limits are placed on each work step in a team’s value stream that was mentioned in Part 3 of this blog series.  Each WIP limit number represents the maximum number of stories or tasks that can be in “Specify”, “Execute”, “Test”, …etc at any one time.  When the number of stories or tasks reach the WIP limit in a workflow step, no more new tasks are allowed to enter until something is moved.  Therefore the team must surge resources around getting tasks done and not let them linger.  Else a bottleneck in their workflow will surface and work will slow down or stop all together.

We like to say this forces teams to “focus on getting tasks 100% done, instead of a bunch of tasks 80% done!”

If your team needs to tame a task juggler, consider introducing WIP limits so you can “STOP STARTING and START FINISHING!