Why We Need Buffers

Everything that can go wrong, will go wrong.

Why?

A Simple Example

Sum(Probability(x) * Cost(x))

  • The possible costs are: trivial, bad, very bad
  • But the probabilities of each scenario is very different. Something like 80%, 19%, 1%

You can take proactive steps to change the probabilities and lower the chances that the expensive cases will occur. You can lower the expected cost.

A Real Problem

The Work

  • 80%: coding and fixing bugs
  • 15%: testing, including setup overhead
  • 5%: thinking about the approach/design, this percentage is actually a bit generous
  • 17 hours coding
  • 3 hours testing
  • 1 hour to design

Vague and Changing Requirements

  • Mostly OK, may need some ugly hacks to make it in time for the release
  • Well I tested it before… after the last change, I spot checked it; seems to work so it’s good to go!
  • What design? All these unplanned changes sort of messed this up

But wait!

So what does this add up to?

What could possibly go wrong?

  1. completely smooth
  2. has some minor problems
  3. a total catastrophe
  • ignore hard cut-offs dates with their last last minute changes
  • have Sprint planning meetings that don’t involve any developers; it’s a managers-only affair… WTF? Don’t even get me started on this but you know in Agile, PMs should only set the backlog; developers decide what to actually do in a Sprint

Everything Comes Back to Having a Buffer

  • everything is rushed because there is no buffer and therefore quality drops like a rock
  • to ensure there is enough buffer
http://theagileexecutive.com/2010/09/20/how-to-break-the-vicious-cycle-of-technical-debt/

Epilogue

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Starting from Zero: A journey through the frustrations

Sorting Algorithms Primer

Parallax Scrolling on Jinyong Campaign Page

Bitcoin by Ross #11: Elliott Wave Geeks

Generating PDF documents using Java

Tired of Pointless Discussions on Code Formatting? A Simple Solution Exists

Graphing probability distributions with Shiny

Musical Lessons in Software Development

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Allan X

Allan X

More from Medium

If you work in Sprints, when do you look at project deadlines?

Newwave Solutions’ Guide to the Simplest Agile Framework: Kanban Software Development Model — Top…

“Agile methodology is a contradiction in terms.”