Agile Accelerate

Leave Nothing on the Table


Leave a comment

Deliver Features to Customers 5 Times Faster

Does it seem to take a long time for your company to get a feature out the door? Have you done a “Five Whys” on the problem? Does one of the root causes seem to be the number of dependencies between teams, or “steps” that it takes to get something out the door? Chances are that it has something to do with the way your teams are structured.

The debate between feature teams and component teams is as old as Scrum is (which is getting to be Keith Richards territory). It usually boils down to:

  • Component teams are more efficient because a small number of SMEs who know the code inside out are the most effective to work on that part of the code. Anyone else interfering in the code will make a mess and create technical debt.

And the discussion about possible restructuring ends there.

It ends because there is also often a hidden reason why leaders don’t want to move to feature teams. If pressed, the following concerns may emerge (if not pressed, they will stay under the radar):

  • “As a leader, I am defined by the component I own, and the team(s) that work on it. I am also a SME in that component, which gives me job security. Moving to a feature team model would be threatening – Would I have a team? Would my people be scattered across multiple teams? How would i have time to attend all of those teams’ meetings? Would i still own a component?” And so on.

We will address these concerns later. But first, let’s look at a real case study…

I was a transformation coach at a large software company that was struggling with exactly this issue. Minor customer requests or enhancements seemed to take forever to deliver. So I worked with a colleague to do a deep dive into the problem. We selected a simple feature enhancement that took twelve weeks to deliver once the work began and inspected every Jira ticket that related to it. The following graphic shows the dependencies between all of the teams that were involved in the solution. It is blurred intentionally of course.

Each swim lane represented a different team – front end, back end, UX, globalization, various components, etc. What was fascinating about this investigation was that the aggregate amount of time expended by all of the teams was six times what a single team could do. Not because any of the teams were inefficient – on the contrary, they worked on their tickets efficiently. But, if it only took a day or two to do their part, it basically sat in the queue waiting for the next team to pick it up. And that was where the end-to-end inefficiency was.

I used the Flow Efficiency metric to get a sense for the level of our problem. Flow Efficiency is defined as Value-added Time/Total Elapsed Time expressed as a percentage. In this case, elapsed time was 6 sprints or 12 weeks (60 working days). The aggregate value-added effort was about 60 staff-days. But this metric is usually calculated on a per team basis, which is a straightforward calculation for a single team. However, when multiple teams are contributing to the Value-added Time, Flow Efficiency would be overstated. One can divide by the number of teams, which in this case would have given us a Flow Efficiency of just 8% or so. But I think that is misleading. So we used a modified metric, which was, effectively, “How long COULD it have taken with a single cross-functional team” versus “How long did it actually take?” With that metric, the Flow Efficiency was 16%.

This data was presented to senior leadership and was considered to be very eye opening. The obvious solution would be to create cross-functional feature teams. Of course, there were concerns:

  • New teams accessing code bases they would be unfamiliar with (of course, this points to deeper issues, like lack of automation and existing technical debt)
  • Loss of ownership of components and people (as mentioned above)
  • Some features might not lend themselves to the approach
  • A general concern about disrupting the organization

To make a long story short, we took an approach that addressed all of the concerns, which consisted of these elements:

  • Start small with a pilot program – we created 6 new teams, which represented only 10% of the org
  • Have a change management process to onboard middle managers and team managers
  • Designate SMEs on the component teams to reserve some bandwidth to help people who are new to the code base with software design decisions
  • Implement a fast-feedback continuous improvement program to quickly address concerns and resolve issues
  • Establish measurable metrics to represent the goals we wants to achieve, along with checks and balances

The metrics chosen were:

  • Flow Efficiency, defined as described above (this is like a lagging KR in OKR parlance to measure the key objective). Because we expected some initial challenges, we also measured how fast the teams ramped up to a steady state level of flow efficiency.
  • Subject Matter Expertise, to measure how quickly new developers got up to speed on unfamiliar components (leading KR)
  • Team satisfaction (balancing KR)

Of course, there were bumps along the way, but by all indicators, the program was very successful and Flow Efficiency was improved by a factor of 5. Across six different initiatives, average flow efficiency for the duration of the pilot was 80%. Even better, the teams ramped up to an average flow efficiency of 89% and this was done fairly quickly – an average of 1.3 sprints, or 2-3 weeks. 

Average team satisfaction increased by 30% over a period of six months, mostly because developers got out of their rut and learned new things. Subject matter expertise improved by 38% on an annualized basis.

Details of the methodology, practices, measurements, and learnings were presented in a white paper called “Winning the Concept to Cash Game with Feature Teams” at the 2021 XP Conference by Martina Ziegenfuss and myself.

Not unlike a stock investment disclaimer, actual results may vary and the variations may be substantial. But if you would like to deliver features to your customers five times faster, there is definitely value in considering an approach such as this.


Leave a comment

Lean Time Management: Are You a Slave to Someone’s Calendar?

When you get to work in the morning, what is the first thing that you do? I mean, after getting the cup of coffee and cinnamon-swirl danish.

Do you check your calendar to see what meetings you have to attend throughout the day? Did you schedule all of those meetings? If not, your time is being largely managed by other people.

Do you feel that your attendance at those meetings constitutes the greatest value that you can be providing for your company today? If not, are you satisfied with that fact, day after day?

toomanymeetings

The Problem With Too Many Meetings

I am not suggesting that someone else’s meetings are not important, or that your attendance at those meetings isn’t valuable. But all too often, there are significant dysfunctions that result from a meeting-oriented culture:

    • Jumping from meeting to meeting is context shifting and introduces an element of waste each time you change context; some studies suggest 20% or more.2
    • Meetings are generally aligned to hour or half-hour boundaries and tend to last exactly as long as they are scheduled. Does it really make sense that for a 1-hour meeting, we always have exactly 1 hour of stuff to discuss? If there was really 45 minutes worth of useful discussion that expanded to fit the time allotted, that’s another 25% waste. If there was really 75 minutes worth of useful discussion to be had and it was cut short by 15 minutes, then you will suffer from some serious additional waste.  First there is the waste in calendar time due to the fact that the topic under discussion must wait another week (or whatever the recurring meeting period, or duration before the newly scheduled followup meeting can take place) to make progress.  In addition, unless your attendees are robots, they will forget most of the discussion and conclusions reached by the time the next meeting rolls around and you will all waste time getting on the same page again.
    • Many meetings are perfunctory. They recur weekly or biweekly, regardless of the optimal frequency.  Perhaps they have been on the calendar for a long time and their usefulness is starting to decline, in which case it would make sense to decrease the meeting duration or frequency, but this is rarely done until more time is wasted.
  • Often times, the meeting has the wrong people. One too many is wasteful. One too few is wasteful to the rest of the attendees. You can easily tell when you are in a useless, perfunctory meeting or one which has too many attendees because many of the people will be processing other work on their laptops, thereby only half listening. More waste.

Considering all of these potential dysfunctions, I am simply suggesting the possibility of adopting a different mindset when you go to work&emdash;a mindset driven by the lean principle of eliminating waste.

Lean Time Management

What if you planned each day around the objective of providing the greatest impact that you can possibly provide that day?

Might you find yourself with more time to make a difference?

How would your job satisfaction change?

If everyone adopted that mentality, do you think your company would make greater progress toward its objectives?

What about collaboration – doesn’t this approach run counter to that core agile principle?

Assuming that all collaborators have a similar view of the value of the issue at hand, they will all be meeting the criteria for this principle. And, clearly, if you collaborated as needed and not as scheduled, you would be more efficient.

If you think your department, organization, or company is ready for a meeting reset, consider doing a meeting audit. Or, even better, wipe the calendar clean and start over with a new mind set. I’ll bet you’ll see a positive change.

Notes:

  1. Photo courtesy Creative Commons License, @boetter’s photostream
  2. Original source: Weinberg, Gerald. Quality Software Management: Systems Thinking, Dorset House, 1991.


Leave a comment

Continuous Planning as an Antidote to the Sunk Cost Fallacy

money-drainThe Sunk Cost Fallacy, aka “throwing good money after bad”, is the irrational but common human behavior of continuing to do something not because of the return on investment going forward but because it is too painful to feel like you’ve wasted the money already sunk into the endeavor. Such behavior is very common in large companies, with fat product/project portfolios that are difficult to trim due to political reasons. The opportunity costs associated with sunk cost projects can be huge. Imagine what you can do with the money and people that would be freed up from cancelling even one of those projects. By applying some Lean principles to your portfolio planning process, you can avoid sunk cost fiascos and work toward being a more efficient and innovative organization.

Some high profile sunk cost traps include:

The Concorde – The British and French governments continued to fund the “commercial disaster” joint project due mostly to political reasons.1

Farmville – “Farmville players are mired in a pit of sunk costs. They can never get back the time or the money they’ve spent, but they keep playing to avoid feeling the pain of loss and the ugly sensation waste creates.” 2

The Iraq War – Many have interpreted the rationale for continuing the Iraq War past the point of meeting initial objectives as a perfect example of sunk cost fallacy. 3

One of the suggestions to avoid the sunk cost fallacy is to get opinions from a different set of people periodically, according to John Hammond.4  This helps to prevent the tendency to protect past decisions in order to avoid being associated with a failed project.

But the Lean concept of continuous planning may be the best antidote to sunk cost failures.  This is because it provides a framework for continuously inspecting the value of continuing a project.  You can do this with annual planning, but you only have the opportunity to inspect at a predetermined time, so even if you maintain a healthy process of periodically reevaluating the ROI on each project, on the average you will continue a project for six months past the point where the ROI turns negative.

Continuous planning also offers a subtler advantage to avoiding sunk cost scenarios.  With annual (or coarsely interactive) planning, decision making tends to be based on dividing up a budget.  Projects in progress almost always get consideration for continuance because people usually only do the ROI estimation for new projects.  However, with continuous planning, it is easier to make the value judgment “is this worth continuing?” a natural part of the process.

  1. Weatherhead, P.J. (1979). “Do Savannah Sparrows Commit the Concorde Fallacy?”Behav. Ecol. Sociobiol (Springer Berlin) 5 (4): 373–381
  1. http://youarenotsosmart.com/2011/03/25/the-sunk-cost-fallacy/
  1. http://www.freakonomics.com/2007/08/20/more-sunk-cost-thinking-on-iraq-war/
  1. “The Hidden Traps in Decision Making” John S. Hammond, Ralph L. Keeney, and Howard Raiffa, HBR