Committed to Forecasting: How Scrum & Kanban can play nicely together


Every Scrum Master worth their salt should be able to describe the momentous event that occurred back in 2011AD.... 

Scrum's "Immutable Rules" changed!


In 2011, the Sprint Backlog Items transitioned from a firm "Commitment" to a mere "Forecast."
"So what?" might be the response.

Well, here's the crucial thing: The Sprint Backlog never was that important - satisfying the Sprint Goal was the objective - with the change to Forecasting went the last vestige of excuse for followers of Kanban to decry the inflexibility of Scrum's Sprints.

Although, at the time, the intention was primarily to negate the perverse incentives created by Management pressure for completing all the Items in the Sprint Backlog. For Development Teams with such Managers, the only rational response was either to cut corners with the quality of the code (accruing Technical Debt during the Sprint), or to pair extreme pessimism with Parkinson's-Law and add a bit of a 'Safety Margin' (during Sprint Planning).

However, this simple change to the Rule Book - the move to forecasting - opened up the possibility of fusing Scrum seamlessly with Kanban. Let me give you an example with weather forecasting:

Now we could use a dedicated computer system, employing numerous sophisticated algorithms, churning through masses of data, trying to bring confidence and sense from the chaos...Or we could just stick our head out of the window.

Which is likely to be more accurate?

Well, if the range of the forecast is quite long, the odds are with the computer; however, for a short-range forecast, there probably isn't going to be a lot in it. (Particularly when the level of precision required isn't much more than, "Do I need to take an umbrella with me, or are my shorts & T-Shirt enough?")

"But isn't Kanban simpler than Scrum?"

Simpler, yes, in terms of what is mandated. But is simplicity the object of the administrative exercise? Or is it the effectiveness and efficiency of the whole Development process? Scrum events are famous for deleting extraneous meetings from the calendar; these events can also lend a natural cadence to Kanban which does it no harm, and often bring a lot of benefit.

Now I've worked in the past with Teams employing a 'pure' form of Kanban (the sequential, almost Waterfall- style of "New", "Ready for Dev", "In Dev", "Ready for Testing", "In Testing" and then "Done" etc.), and then with the Eric-Brechner form of Kanban (where the Backlog Item is pulled in and then broken down into Sub-Tasks, which can then be worked upon in parallel). We did both for 6 months and, as good as they were - without the Scrum events and regular feedback from Stakeholders - the approach began to feel relentless, like a 'Death March.'

"Oh, but we don't have the time to do Sprint Planning!" 

Really? So you don't have time to give the people who pay your salary any kind of expectation about what their money will buy? Just expect them to sign that blank cheque and leave you alone? (You don't think they'll hassle you for status updates, thereby taking time out of your day?)

Pro-Tip: If Sprint Planning is taking too long, try Refining your Product Backlog to a higher standard. (The unofficial Scrum artefact, the "Definition of Ready", may well help here.)

It literally takes no more than a few seconds to look at an ordered Product Backlog and hazard a guess as to which point you think you will reach by the end of an iteration.

"But we couldn't possibly plan what we're going to do today, let alone tomorrow, or the next fortnight!"

If your job is responding moment by moment to support calls and, at the start of any given day, you have no clue as to what you'll be working upon, then, yes, working from the top of a Product Backlog (rather from a Sprint Backlog) sounds like a sensible idea.

But for regular Software Development?

The inconvenience caused from frequently clashes between ad-hoc, impromptu work and the Sprint Backlog is just Scrum trying to tell you something.

Frequent interruptions from broken Production Code is indication of a problem with your Development Processes, your Deployment Process, and/or your Testing/Quality Assurance. Whilst shifting Business Priorities might suggestion an over-long iteration length, or a breakdown in communication between different parties in the Business, or of a simple lack of training.

Pro-Tip: Try improving the both parts of your Sprint Reviews
  • Part 1) Demonstrate the working increment of software to Stakeholders, Users, Clients and Customers - and take their feedback.
  • Part 2) Show the current Product Backlog and the work expected to be worked upon in the next Sprint. This publicly highlights any difference of opinion between the Business people and their Priorities for upcoming work BEFORE the work is started by the Development Team.

"Responding to Change over Following a Plan" is straight out of the Agile Manifesto. But it doesn't mean that you begin with no Plan at all!


Comments

Popular posts from this blog

Little's shopping basket

CFDs – What does "Good" look like?

Inconvenient Metrics – Part 1 – The 5 Psychological Coping Mechanisms