Professional Documents
Culture Documents
PROJECTS ON TIME?
• Are you losing money because you deliver projects late?
• Are you frustrated and depressed at the “on-time” delivery
rate of your projects?
• Do you want to avoid burn-out and make your projects
reach the mythical “sustainable pace”?
ii
NO
ESTIMATES
HOW TO MEASURE PROJECT PROGRESS
WITHOUT ESTIMATING
VASCO DUARTE
iii
NO ESTIMATES
Copyright © 2015 by Vasco Duarte.
All rights reserved. This book or any portion thereof may not be
reproduced or used in any manner whatsoever without the express
written permission of the publisher except for the use of brief
quotations in a book review.
Publisher: Oikosofy Series, www.oikosofyseries.com
Illustrations by Ángel Medinilla
Cover design by Sebastian Hermida
v
.
Welcome to the #NoEstimates book. Join the conversation on twitter
under the #NoEstimates hashtag.
This book is part of a larger project that includes video interviews with
some of the early adopters of the ideas described in this book.
Sign-up at www.NoEstimatesBook.com/print_gift to get an exclusive
essay on Capacity Planning with #NoEstimates.
Visit
oikosofyseries.com/noestimates-book-order
to find the following extra material:
Visit
oikosofyseries.com/noestimates-book-order
to know more
vii
WHAT OTHERS ARE SAYING ABOUT
NOESTIMATES, THE BOOK
“The way this book was written helped me not only to understand the
main ideas behind #NoEstimates but to internalize the concept with the
real examples behind the story.”
– Hermes Ojeda Ruiz, LogicalBricks
“Finally! The most meaningful text book about project management and
governance! This piece of project fiction will become the real “don’t
panic” guide to project management!”
– Tapio Järvenpää, Beer Executive Officer, Hops United OÜ
“You’re doing it wrong. Estimates that is, and #NoEstimates tells you
why. Most importantly, however, the book tells you what you should be
doing instead. The compelling mix of theory with story means you’ll
quickly learn the lessons and start benefiting from the book. Read, think
and apply #NoEstimates today."
– Dr. Bruce Shcarlau, Senior Teaching Fellow at University of Aberdeen
“I was sold on this book after reading the table of contents of the first
chapter.”
– Nick Mein, Engineering Manager, Trimble Navigation.
“Do the most important thing is not a startup thing only! In my 15 years
of experience with software development I've seen a lot of patterns of
projects failing. I've experienced myself every example described in
#NoEstimates. I've worked for a startup, where it is obvious what's
important without estimating. With the help of the #NoEstimates book I
can do the same within a multinational corporate organization.”
– Jeroen Knoops, Software Developer
ix
CONTENTS
FOREWORD ....................................................................................... 15
THE #NOESTIMATES PREMISE ............................................................ 21
13
14
FOREWORD
15
use - "getting better" is a less than meaningful approach unless we have
sufficient faith in the thing we need to get better at. And even still, we
must keep a close watch on whether things are getting better overall, and
not just the estimates themselves.
So naturally, I want to dig a bit deeper. Estimates themselves are not
bad, and in some situations they can be very helpful. However, estimates
are often part of an unquestioned process of managing software
development, so I want to learn more.
When I become aware of a situation like we have with estimation I
want to question, explore, and validate (or invalidate) the practice or
method. Is it suitable for the purpose to which it is put? To accomplish
this, I start by asking questions of myself. I want to find the "profound
questions" that will lead to a better understanding.
I have a number of questions I've posed to myself about estimates.
Here are a few examples of the sort I find useful to ponder as a starting
point:
"If I found estimates are not informing the decisions they are meant to
inform, what would I change about the way I use them?"
"If I found estimates are not useful for a purpose, in what way could
that be the fault of the estimates themselves? In what way is that an issue
with the purpose?"
"In what way would getting better at estimates help if the estimates
themselves are of questionable use?"
"What ways can we meaningfully validate decisions we've made
based on estimates?"
"If we believe that getting better at estimates is our only choice, what
are the possible pitfalls?"
"If the decisions that we currently think are important are not as
important as we think they are, what should we do?"
16
Early October, 2012: I had just met Neil Killick in Twitter, and read a
blog post of his named "Should We Estimate Software Projects… At
All?" After a few Tweets back and forth, Neil introduced me to Vasco
Duarte. I believe that the first blog post from Vasco that I read on this
topic was "A better way to predict project release date!" What a great
starting place. Alone, I had my suspicions about estimates, but with
others such as Neil and Vasco also questioning the practices of
estimation and use of estimates I was encouraged that some real progress
can be made.
So now there were three: Neil, Vasco, and myself. Little did I know
how much I would learn from my on-going conversations with these two.
Even more wonderful was that new folks were joining the conversation
daily. One notable luminary is Ron Jeffries who has now written
extensively on the topic, and over time many others such as Allen Holub
and Kent Beck have shared their ideas on the topic. But I'm jumping
ahead.
I noticed an interesting thing very early on: While we were all
questioning the "de facto" use of estimates in managing software
development, we had different ideas about what the core problems might
be, and what to do about them. I took this as a good sign. I seek a broad
spectrum of ideas, especially at the beginning. We were all noticing that
something was amiss.
If the use of estimates and estimation are suspect, I'm more interested
in learning all about that than what to do about it. The "how" reveals
itself when we understand the "why" about the "what." This is where the
power of pursuing profound questions comes into play for me. The
"how" of estimates is a moot point if they are not serving us well. It's of
little value to solve a problem we don't yet understand; we are just a
likely to be addressing a symptom rather than the underlying problem.
Let's get that settled first, and then explore the alternatives.
Getting better at estimates (which the entire industry has been trying
to do for a long time) doesn't help if the underlying motivation for using
them is not valid. Rather than jump to the possible solution of getting
better at estimates, I want to do whatever it takes to understand the
underlying reasoning and purpose of the estimates. That is an area worth
exploring.
17
Along the way it became apparent to me that some decisions we make
when managing software development efforts are probably not the right
decisions to be making. Why do we feel that knowing the cost of
something "up front" is useful? Is that really important, or simply just
something we've convinced ourselves that we can't do without? Why is it
that we think we have "limited funds" for software development? If we
are good at generating income from the work we do, are these limits even
meaningful at all?
What if there are alternative models that lessen or eliminate the need
for knowing the cost? Consider that it might be better to become great at
creating software, and delivering it into actual, meaningful use early and
often, and earning a return almost immediately. Would knowing the cost
be as important if we can start re-cooping whatever costs there are almost
immediately? Maybe by following this model the desire and interest in
estimates will simply fades away. Maybe not. Let's find out.
Estimates are used in many ways, and there are seemingly countless
methods of estimation for devising those estimates. What if we could
forecast some aspects of our project without estimates at all? This is
something I find interesting, and it's a possible game-changer.
Vasco has been exploring one such alternative that is of particular
interest to me, and he covers it nicely in this book. His ideas about
forecasting based on the data collected in the doing of a project eliminate
the need for certain estimates for that project, and the results are easily
verified. If we find that forecasts are helpful, what if we could find a way
to forecast without estimates that works at least as well as estimating
does? What if it is actually better? And easier? How would that change
our dependence on estimates? How would that change our regard of
estimates? Should we at least experiment with ideas like this? What if we
could try this and prove it for ourselves while still working in the same
way we always have? Powerful stuff.
I'm glad you are reading this book, and exploring along with Vasco.
While this is still a very new effort, many people are gathering around
these ideas and questions, and exploring for themselves the method that
Vasco shares in the #NoEstimatesBook. Business people, Managers,
"Customers", Developers, Analysts, and just about anyone will find this
book useful.
18
We all see a need for better, and insist that regardless how well
entrenched the "way things are" might be, it's time for a change. And we
welcome it.
Woody Zuill
#NoEstimates Pioneer, and Software Industry veteran
www.MobProgramming.org, http://zuill.us/WoodyZuill/
19
If you have been around Agile and Lean for some time you might be
familiar with the Japanese-born concept of “no inventories”. Between the
sixties and the eighties, Japanese companies – Toyota being one of the
most prominent examples – embraced a new paradigm of production
founded on the premise of maximizing value for the customer and
seeking continuous improvement. In order to maximize value, all
activities and investment that were not directly adding value to the
customer were labeled as “waste”. In this sense, moving materials from
one place to another is waste; reworking, overworking or overproduction
are waste; fixing defects is, of course, waste; and unfinished materials
waiting in a queue to be used (inventories) are waste.
The golden rule to determine if something in your organization falls
in the category of waste is: “do we want to have more of this? Like
double or triple it?”
Companies seldom want to ask this question. If you ask it too much,
you’ll find that Managers are waste - you don’t want more of them.
Meetings are waste. Code is waste.
But, if mostly everything around us is labeled as waste, shall we get
rid of it? The answer, of course, is no. The premise is that you want to
have as little waste as possible, and not more. Once you reach the state of
minimum waste, you should try to go even further and reduce it a little
bit more – continuous improvement or Kaizen.
Of course, you don’t want to double or triple your inventories.
Inventories are a hidden bank account, money lying around doing
nothing but deteriorate. Even worse, it requires investment in the form of
space, maintenance, rotating stocks, security… You even lose inventory
pieces due to aging, bad storage or warehouse mismanagement. You
have to maintain stock records and reconcile inventory periodically – and
if you’ve ever done something similar, you know how soul crushing this
process can be.
So what’s the only reason we keep inventories? Organizational
dysfunction, or so believed the Japanese companies. People need
inventories so they have access to materials between resupplies. These
resupplies were separated by several hours, sometimes days. Each
resupply needed to be huge so workers would have materials until the
next resupply. Huge resupply needed space, storage, management,
rotation, movement… Waste everywhere.
The Japanese breakthrough was to imagine a company where
21
resupplies were happening constantly, Just In Time. By imagining how
work would look like in a world with no waste, they could forge new
production paradigms like one-piece-flow, single-minute-exchange-of-
die, zero-defects or total-quality.
Of course, you could be picky and observe that each worker on a
Lean factory might have a small inventory of pieces around, maybe a
handful, maybe a dozen. You could then claim “Look! Look! That’s
inventory! It is not actually true that they work with #NoInventories!”
The point is that these Lean factories have been able to reduce the
resupply period from days to minutes, and their stock, inventory or
storage needs from stadium-sized warehouses to drawers.
So, #NoEstimates…
It is obvious to me that estimates do not provide more value to the
customer than inventories. People who find value on estimates are just
addicted to a practice (estimation) to get something they find valuable:
plans, comfort, uncertainty reduction, financial projections, sales
proposals… But, again, these are not customer value. Applying the
golden question, you don’t want to triple plans, estimates, reports and
proposals. Hence, you want as few as possible – not less, but not more.
So they immediately fall under the label of waste.
Of course, you will always find someone that defends that inventories
are in fact customer value, the argument being that inventories protect
the customer against accidents and company dysfunctions. No serious
Lean discussion can be forged around this argument nowadays.
Interestingly enough, when it comes to reducing the need and
dependency on estimations, people can be quite belligerent – you just
have to wander around the twitter conversations around #NoEstimates to
get a taste of it.
I imagine that, in the early days of Lean, when Womack and Jones
were just starting to spread the news about this crazy Japanese
production system, several people would be as baffled as some are
nowadays with the #NoEstimates movement. I can clearly imagine
western managers protesting, “just in time production? Resupplies every
few minutes? Are you CRAZY? Why are you trying to debunk the
proven practice of accumulating inventories? What are you, smarter than
all of us, than all managers that have been promoting stocks and
inventories for the last four-plus millennia?”
Ah, human beings… ‘gotta love ‘em.
I have faith and patience. When some people in the Agile community
started talking about zero defects or continuous delivery, more than a few
voices rose against such concepts stigmatizing them as ‘delusional’ and
‘misleading’. Even the ideas behind the manifesto, which are
22
enthusiastically defended nowadays, were difficult to promote mostly
everywhere just ten years ago.
I feel there’s a natural learning curve towards #NoEstimates. It is
common nowadays to hear from teams that moved from Work-
Breakdown-Structure (WBS) like estimation – estimating each and every
task, then adding up all estimates – to story estimates, point-based
estimates, t-shirt sizes and counting stories and finally dropped the
estimation-based conversations to focus on throughput, cadence and
flow.
I did my first public talk on #NoEstimates at Agile Lean Europe
Berlin 2011. Many well-known European Agilists were in attendance,
and I could metaphorically hear the sound of their neurons crashing into
each other while I presented the idea of reducing the estimation effort
and focus on stabilizing the team throughput and using past information
to drive forecasts. People rapidly organized an Open Space around the
topic, and the usual question was “yeah, but… You need estimates,
right?” Not a question, in fact, more of a desperate cry in the middle of a
withdrawal syndrome. My answer was direct – no, you don’t need
estimates. You are using estimates to produce some other stuff, so the
question is, can we produce that other stuff in a better way that using
estimates?
Unfortunately, several people still ask for better ways to estimate. It is
a flawed question. For me, it is like asking for better ways to win the
lottery, or better ways to guess what team is going to win a sports match.
But I have faith in the capacity of human beings to change, and patience
to watch that change happen.
A year ago I decided I wanted to push this change a little further and I
asked my good friend Vasco Duarte if he was up to the job of writing a
first book on #NoEstimates. Vasco had enthusiastically defended this
approach based on his own experience. A few months after my talk at
ALE2011, he presented a similar topic at OOP2012, and have been very
active on the #NoEstimates debate since the very start.
We started this work together, but I had to quit after some months –
my job engagements and workload were keeping me behind the intended
pace, and I was basically endangering the project. To be honest, we also
had “creative differences”, as artists say, and decided to “pursue our own
careers and personal projects”. No problem. We are still good friends,
and I kept illustrating Vasco’s work - sort of – and providing my
feedback and insights. We still collaborate on some other projects, and
I’m sure we’ll keep finding opportunities to promote innovation on the
Agile world.
My final word to you, reader of this book, would be to remember the
23
fact that mind is like a parachute, it only works when it is properly open.
Too many people have lost the track of the #NoEstimates premise to dig
into inane details. For instance, some people would say “oh, but you are
forecasting results based on past information – isn’t that an estimate?” Or
maybe “oh, but you are breaking big stories into small, one-or-two day
sized stories, but in order to do that, won’t you need to estimate the story
size?” Remember that #NoEstimates is not about no estimation ever, but
about the minimum amount of estimates that will do, and then look
carefully at ways to reduce that need even more. In that sense, I love J.
B. Rainsberger concept of #MehEstimates, like in “Oh, estimates…
Meh!... Yeah, I guess we’re doing some, we are just not very concerned
or serious about them.”
So, here’s to life, the #NoEstimates book. Enjoy.
Ángel Medinilla
Agile Coach, #NoEstimates practitioner, Book illustrator
http://www.proyectalis.com/
24
CHAPTER 1
Carmen came into the office bright and early in the morning. She was
surprised when her boss unexpectedly called her into his office. Any
other day he would greet her; invite her into the break room for coffee;
have a friendly one-on-one chat with her, and talk about life… But not
this time.
This time her boss looked nervous. He made sure the door was closed
the door before saying a word. Carmen appreciates her boss because she
has learned a lot from him. But his behavior made her feel nervous.
What could her boss possibly want that required them to meet behind
closed doors? What could be so secretive that it couldn’t be overheard
by anyone else in the office?
“Carmen, we have a big project coming in. This is potentially the
largest software project our company has ever won.”
“A big project you say?” Carmen’s interest grew. “It’s about time
they consider me for a big project” she thought.
“Yes! This project alone could finally make us profitable! And I want
you on it. I trust you and appreciate your work greatly. I know you can
pull it off…”
28 Do Estimates Work?
Carmen was surprised. She had heard of a new, secret client project
that they called Big Fish, but she did not expect to be assigned to this
project. After all, she still had the Telemark project going on.
Carmen shifted in her chair and tried to think of something to say.
Something didn’t feel right.
“Well… That’s a surprise. I still have the Telemark project, which
will be landing soon. I thought you wanted me to finish that before
moving on to other projects…”
“I did, but his came up suddenly.” Carmen’s boss interrupted, “I
only just heard about it yesterday. Our CEO was able to find a way for
us to bid on this project. It will be huge!”
“Errr, Okay. What should I know about this project before I take this
assignment?” Carmen was unsure about this. Her boss seemed almost
too eager for her to say yes.
“Well… Basically nothing. It’s just another software project. The
only difference is that this project is bigger than the others you’ve
worked on.”
“How much bigger are we talking about?” Carmen asked.
“Well…” She felt uncomfortable. Her boss wasn’t being upfront with
her.
“Is it twice as big as the Telemark project?” She asked, but her boss
didn’t reply. “Five times bigger?” Still no comment. “Ten times
bigger?”
The Problem with Estimates 29
Do Estimates Work?
If you were Carmen, you’d probably feel nervous too! I know I
would. Estimating a software project is never an easy task, and the
situation gets even worse when you have to do it without first
understanding the context or the requirements well enough. Add that to
the pressure to create a winning bid, and you have an explosive mix! And
not in a good way.
30 Do Estimates Work?
When I talk about #NoEstimates I get the most serious questions from
people like Carmen. Questions such as, “How can I win a bid if I don’t
estimate?”, or “My customers will not award me the contract unless I
give them an estimate!”
Fair questions, but before we tackle them, let’s tackle the real
question here. A key question for both you and Carmen is “Do estimates
work?”
Some researchers have already proposed what a “good” estimate
should be. In 19861, they proposed that a good estimation approach
would provide estimates “within 25% of the actual result, 75% of the
time”.
What this means is that, for all the projects you estimate, you should
complete those projects within 25% of the original estimate for 75% of
the time. Another way to put this is that you don’t have to always be
within 25% of your estimate, but that you should be for 75% of all of
your projects. Let’s examine the track record in the IT industry to see if
we’re consistently able to estimate correctly.
First we look at the Chaos report, a study that is run every few years
to assess the “success” of software projects worldwide:
Figure 1 – Project success rate over the many CHAOS report surveys from 1994
to 2004. Graph adapted from Steve McConnell's book, Software Estimation:
Demystifying the black art
1 Steve McConnell, Software Estimation: Demystifying the Black Art
The Problem with Estimates 31
Figure 2 - Project estimates vs. Actuals (in days), track record for one
organization. Graph adapted from Steve McConnell's book: Software
Estimation, Demystifying the Black Art.
2 CHAOS report for 2011-2012 shows 42% successful agile projects.
32 Do Estimates Work?
Look at the project on the top-left of the chart. That project was
estimated to last 7 days, but ended up taking more than 250 days to
complete. This is a difference of 1 week to nearly 9 months! While this is
only one outlier, the potential impact on the company is tremendous. A
project like this can drive a company bankrupt.
There are several examples in our industry that look like this. In a
famous UK contract walk out, Accenture avoided up to £1bn in
penalties3 in a contract with the National Health Service (NHS) in the
UK. Some will argue that this is an extreme case, an outlier. But do you
want to bet your company on one project if the possible result is
obliteration? I don’t think so!
Beyond the problem with outliers, let’s look at examples of sustained
performance. Here’s the project delay (in % from original estimate) for
17 different projects from one single company spanning a period of 4
years.
3 Accenture avoids £1bn penalty for walking out of a contract with the NHS
http://www.theregister.co.uk/2006/09/29/accenture_nhs_penalty/
The Problem with Estimates 33
This company had an average (yes, average) delay of 62% for their
projects. This means, for every project that should have lasted 3 months,
it lasted nearly 5 months! As I look at the graph above I can’t help but
ask: “Can we really trust estimates as a reliable tool to manage our
companies?”
Would you bet your entire company on a work-method (estimates)
that delivers 60% to 80% of the projects late or over budget? This is the
question that Carmen had to ask herself in the scenario above. Can she,
in all honesty, risk her company’s future on a method that has that large a
failure rate?
Estimates don’t really work. Specifically, not in the way the software
industry practices estimation. And not in the way that many, including in
the Agile community, propose estimates should be done. There are three
clear, intuitive, and proven reasons as to why that is so.
Hofstadter’s Law
Hofstadter's Law: It always takes longer than you expect, even when you
take into account Hofstadter's Law.
Douglas Hofstadter4
Parkinson’s Law
Work expands so as to fill the time available for its completion.
Parkinson’s Law
Accidental Complication
Another reason why estimation is so hard goes by the name of
accidental complication. J.B. Rainsberger introduced this concept at
Oredev 20136.
The gist of the argument is this: every feature or functionality added
to an existing project has two cost elements (what you’ll want to
estimate):
7 Troy Magennis writes about software projects in his blog:
http://focusedobjective.com/news/
The Problem with Estimates 37
engineering day. You and I both know how many of those “perfect”
engineering days we’ve enjoyed in our lives. Not many.
I would not like to be in Carmen’s shoes. What should she do? The
average person would first find out what the right estimate for the project
was, and then deliver that. And at first they would be hailed as heroes.
But, what if the right estimate at the time of the project bid is actually
the wrong estimate in the end?
38 More Than Meets the Eye: Why Estimates Are Actively Harmful for
Your Project
Deming8 was quoted as saying that “if you give a manager a target he
will do anything to meet that target, even if he has to destroy the
company in the process”. This is why targets are so important, but at the
same time so dangerous. Carmen will probably go to her team, do the
best job she can, knowing full well that the goal is not to give the
customer a realistic expectation of how much time and money is needed
to complete the project, but rather that she is responsible for winning a
contract – no matter what it takes.
Wanting to meet the target is a very strong pattern in organizations.
So much so that at the end of every quarter we see a frenzy of meetings
and busy people trying to meet that quarterly target, be it sales or
operations. Estimates are no different and help make projects prisoners
of the targets they set. And this is one reason why estimates can
transform from useless but harmless, to influential and harmful targets.
Look at what happened at Enron in 20019 where the “compensation and
performance management system [that] was designed to retain and
reward its most valuable employees, [...] contributed to a dysfunctional
corporate culture that became obsessed with short-term earnings to
maximize bonuses.”
But there are more reasons and tempting shortcuts that make
estimates actively harmful in certain situations. Below are 4 situations
that are possible because of the use of estimates in software
development:
• Internal politics become a problem when deadlines are set
because top management wants something done by a certain
date, with fixed scope and fixed resources. Despite advice to the
contrary, in these cases the HIPPO (Highest Paid Person’s
Opinion) overrules any potentially “good” estimate created by
the team.
• Estimate bargaining occurs when a team has created the
estimate and defined a possible release date, and then they suffer
pressure from stakeholders to change their estimates. Symptoms
of this dysfunction include calls for “more efficiency”, or “more
commitment”, generally followed by phrases such as “we are all
8 W. Edwards Deming, American writer, author and coach that helped propel Japan to
the most productive nation status with his work after the Second World War.
in this together”.
• Blame shifting happens when people outside the project team
estimate the work (e.g. experts), and then the project team
members are blamed for not meeting those estimates.
• Late changes are a form of Estimate bargaining, whereby
changes are added to the project, but the schedule is not allowed
to change for whatever reason.
These are only some of the possible dysfunctions associated with
estimates. This list is an illustration of how estimates can be used and
abused for purposes other than actually understanding the project and the
work that needs to be completed.
12 In Black Swan, Taleb describes how often we ignore extreme conditions because we
don’t consider the nature of systems we analyze. He describes 2 types of systems:
”mediocristan” where linear causality rules; and ”extremistan” where non-linear causality
is prevalent. He then explains how we tend to classify the systems we study in
”mediocristan” because we don’t consider the potential for non-linear effects which
should drive us to classify those systems as ”extremistan” systems.
13 From: http://en.wikiquote.org/wiki/Edward_V._Berard
The Problem with Estimates 41
Langdon’s Lemma
Software evolves more rapidly as it approaches chaotic regions.
Medinilla’s Law for Software Contracts
The 80 000 lines of code won’t fit into a 20-page contract.
Do you have some more quotes to share? Send them over, I would
like to collect them. Email me at vasco.duarte@oikosofy.com
Quotes about late changes in projects
And then there were changes. You have been there before. You work
hard to try and plan a project to the best of your knowledge. The team
starts to get the hang of the project and is able to deliver some software,
only to see the changes start flowing in. First they flow in at a trickle,
one by one. But later on, as the testing progresses, changes come in like
an avalanche.
The Problem with Estimates 43
Figure 4 Number of cumulative open defects and the daily rate for closed and
submitted defects during a project. Includes indication of development and
testing phases. This is an illustration based on data collected during the
lifecycle of a project where I worked as project manager.
Hopefully you have some margin (aka buffer) in your project. Right?
Sure, but how much of a margin is margin enough? According to the
definition of a good estimate cited earlier in this chapter, you should
count on at least a 25% margin - assuming the estimation was “good” to
begin with.
Are you safe if you add a 25% margin to your project? The answer is
no. And if you believe it helps, just re-read Hofstadter’s Law again.
In software development, changes have (sometimes very large) side
effects. As you discover problems you find that the consequences of
those problems go beyond what some call “bugs”, you discover blind
spots: complete sets of functionality that require rewriting; or new
functionality that was missing. As a friend once described to me:
“building software is like when you try to unclog the pipes in your
bathroom and end up having to build three more houses just to get the
toilet working again”.
Can you predict all the significant changes you will get, and the
impact of those changes? If you answer yes please send me your CV. But
you will probably answer “no”, just like many people do when asked the
44 All or Nothing: Death March Projects
same question. The bottom line is that estimation is a very poor method
to predict the future, and change requests only amplify that problem.
14 Article on the incidence of burn out and stress related illnesses in IT http://www.net-
security.org/secworld.php?id=14666
15 The idea of death-march projects was made popular by Edward Yourdon in his
popular book Death March: The Complete Software Developer's Guide to Surviving
'Mission Impossible' Projects http://www.amazon.com/dp/0130146595/
The Problem with Estimates 45
In a similar way, some projects follow an “all or nothing” strategy.
This strategy borrowed from poker means that a team either delivers
everything (“all”) or the project has no value (“nothing”). In this context,
the estimation process becomes a battleground between the teams and the
customers for that project. The teams want to survive at the end, and the
customers want the certainty they will get everything they want – and
when they want it.
At the end of the estimation process the project will start, and the
people trapped in that project can easily fall into a death-march
mentality. They battle everyday to get the project on track, but a
combination of estimation problems with constant change requests
transform that project into a constant struggle.
You work every day to the best of your ability and deliver concrete
work. But instead of feeling confident and enjoying the progress, you
feel like Sisyphus16: pushing a boulder up a hill that will invariably slide
down, again and again. Making you - and the team - feel that there is no
hope. A death-march project is caused by the all or nothing mentality and
a utopian faith in estimation.
16 The myth of Sisyphus: http://en.wikipedia.org/wiki/Sisyphus
46 Is There Hope for Software Projects?
CHAPTER 2
“The right estimation for this project.” The boss’ words were still on
Carmen’s mind as she walked down the hallway to her desk. This was
not Carmen’s first project, but until now she had managed to give fair
estimates on her projects because they were small and somehow similar.
Take this system we already installed here, then install it there. Create a
customized copy of that other system for a new client.
But this was a different kind of beast. New technologies, new client,
new domain, new product. Until now, Carmen had just looked at how
long things took in the past, then added some contingency buffer that
could be accepted by the client. So far, so good. Of course, she also knew
that keeping estimates ‘good’ during the project involved a strong
management of the project. She was known to be very kind and empathic
with clients, but 110% uncompromising when it came to scope creep and
project changes.
“Carmen delivers.” That was the usual comment of managers when
they talked about her, and she liked it.
Now, her reputation had put her in a tight spot. For the Big Fish
project there was no useful historic information she could rely on, and
still she was asked to give ‘the right estimate.’
Anyway, what was the ‘right’ estimate, or the ‘wrong’ estimate? Was
this a game of guessing?
Carmen sat silently for some minutes trying to assimilate it all. One
thing she knew: once she would cast a number, an estimate, it wouldn’t
matter if it was ‘right’ or ‘wrong’. That number would instantly become
known as ‘the plan’ and for the following months she would be measured
against it. But on the other hand, if that number was ‘too large’ the
company might lose the contract and she would be held accountable.
Carmen opened a drawer and pulled her old project management
books in search of something she hoped would help her find the ‘right
estimate’. If she failed to produce the right estimate, at least she wanted
to have the opportunity to say “hey, I did it by the book! Literally!”
Every single time you provide an estimate, you are basically saying “I
don’t know”. If you were 100% sure of what something is going to take
in terms of time, resources or effort, then you wouldn’t be estimating -
you would be providing concrete facts. This is not the case with
estimates. When you estimate, you rely on task description, past
experience and other available information to form a general idea and
provide what feels likely to be a reasonable number.
50 Is There Hope for Software Projects?
This number usually takes the form of a precise quantity, like in ten
days or five thousand dollars. As soon as the human mind understands
this number, it will likely tend to stick to it and give it the category of a
fact, in an interesting form of grasping and clinging. As an interesting
piece of trivia, Buddhists believe that grasping, wanting and clinging are
the source of suffering – but that is a topic for a whole other book.
Every estimate has an undetermined amount of uncertainty included.
When you estimate ten days you would better be saying “roughly ten
days on average; it could be eight days if we’re lucky, and it shouldn’t be
more than thirteen days unless all hell breaks loose.”
Hence, every estimate is also a probability cloud17.
Figure 5 - Probability distribution for meeting a specific estimate. Note how the
cumulative probability (area of the curve) of being late is much higer than the
cumulative property of being earlier.
17 Probability cloud is used figuratively in this context to help the reader visualize an
estimate as a fuzzy construct, just like the position of an electron around the nucleus of an
atom. We know the region, but not the absolute position, and the position is constantly
changing in time.
WHAT ARE ESTIMATES? 51
delivered by Thursday.
But estimates are not commitments, nor are they a promise.
Estimates will need to be carefully placed in a plan for them to make
any sense at all. An estimate of three days depends on when we are be
able to spend three days on the task. It also depends on many other facts
like, for instance, if we will be able to focus on the task full time or we
will need to split our attention between several projects. For now, we just
need to make the difference between an estimate: “It will take three
days”; and a commitment: “It will be done on Thursday.”
Imagine that I provide an estimate of five days. Then, I show up early
at work every day with my best smile, I do the best I can, I work harder
and smarter than ever, I even stay a little bit later every day… And, after
five days, the task is not done. Would you say that is my fault? Of course,
it might be my fault that I provided a guess and I did not make clear to
you that it was not a commitment or a given fact.
Hence, many people tend to think “oh, what we need are better
estimates; if we have good enough estimates, then all deadlines will be
met”. Given that estimates are probability clouds, the statement above is
like playing lottery and saying “oh, what we need is to choose the right
number”, or investing in the stock market and saying “what we need is to
invest in the right stocks.”
Estimates in some very controlled and determined domains might
come from a carefully developed mathematical model, and in this case
all people involved will agree to these estimates because they agree on
the model. In some other domains, people will observe the system, notice
that there is a small variance or deviation from an average behavior and
then use that behavior to forecast18 future outcomes – provided that there
are no unknown changes to that behavior in the future.
But for complex environments, where estimates come mostly from
personal experience and knowledge, these estimates will be different for
every person. Experts might estimate some work as easy and fast, while
novices might estimate the same work as difficult and long lasting. Some
team members may see risks and estimate the impact on the schedule,
while others may ignore those risks.
Hence, in most environments estimates are personal.
Because estimates are ideas and they are personal, there are several
psychological aspects that affect them. For instance, if you are bound by
your estimate and you will be judged, even fired because of the outcome,
18 Editor’s note: Please notice the difference used here between forecast and estimate.
This difference is further discussed later in the book.
52 Is There Hope for Software Projects?
19 Overconfidence as a very common bias leading to underestimation of task duration:
https://en.wikipedia.org/wiki/Overconfidence_effect Thanks to Pier Lorenzo Parachinni
for the reference.
#NoEstimates as #NoInventories
Estimates are seen as useful by many, but even those that want to
continue to use estimates do not advocate that we spend as much time as
possible estimating a project. This type of activities, where more is not
necessarily better, is labeled as waste in Lean Manufacturing (Lean).
Lean defines waste as any activities that don’t directly add value to
the product from the client’s perspective. Companies that adopt Lean
work to eliminate or reduce waste to a minimum.
Inventories, for example – partially produced or fully produced
products not being delivered and instead kept in the warehouses – are a
well known example of waste in Lean Thinking. But meetings are also
waste. Consider this: if we double the amount of meetings, we are
probably not giving a proportional amount of more value to the client.
Use this heuristic to label waste: anything that we don’t want to do
more of in order to make our customer happier is waste. Some people say
“oh, but meetings add value, and inventories are valuable in some
situations” - and they might be right. But from a Lean perspective, you
don’t want to have as many managers as possible, as many meetings as
54 #NoEstimates as #NoInventories
In the examples above, and under normal conditions, you can inspect
existing data and find maximum values, minimum values, average,
deviation and variability. You can then use that data to predict what is
going to happen in the future with some accuracy. On the other hand,
tomorrow may change the conditions substantially, it might rain, or some
people might stay at home ill, and you should then react and update your
forecast. This inspection of the existing data, together with building a
model to predict future performance is what we call forecasting.
56 Estimating vs. Forecasting
As a counter example, if you used your own data on how fast you
collect pumpkins as a basis to predict how many lemons a group of five
people would pick, that would be estimating. You would have to make
many assumptions: the walking distances are different; picking lemons
from a tree is different from finding and collecting one pumpkin at a
time, etc. The reason for this is that you don’t have available data on the
same task and you don’t understand the possible performance when five
different people are given this new task, you assume that it will be
relatively similar to picking lemons.
However, estimation is possible and relatively easy in some domains.
Let´s say that my friend and illustrator for this book, Ángel Medinilla is
an average motorcycle-racing aficionado (editor’s note: which he is!),
and he can race around the Jerez fast track in 2:15 (editor’s note: ahem!),
which is pretty fast for most street bikers. When you compare that to the
usual Spanish Motorbike Championship times that range from 1:50 to
1:42, it means that the Spanish Champion is roughly 25% faster than
Angel. And then you have the world record for the track, which is Jorge
Lorenzo’s 1:39 (only 10% better than the average championship race
lap). In this domain we observe that there is not much difference between
‘average’ race lap and ‘world’s best’ (at least when it comes to
percentages). You could forecast the time Ángel would take to complete
two hundred laps with a relatively small margin, not more than 20 or
30%. In this domain estimation would be relatively simple and accurate.
In software projects, however, the situation is different. Even if you
don’t believe that the best developers are 20 to 50 times more productive
than average, just consider the following story: Jon arrives at the office,
energized after a good night’s sleep. He is focused, and is ready to get
into the groove of delivering high-quality software. A few minutes later
Karl, a star programmer, with many years experience arrives as well.
However, he just spent the crappiest night of his life. His daughter was
sick all night and he had to take care of her. He basically slept a few
minutes during the whole night and is feeling like he was steam rolled.
Which of these people will complete the tasks they had estimated with
less variation to the original estimates? Whatever your answer was: can
you be sure of your answer?
In software development there are many factors affecting
performance on the job, and those factors are not predictable nor do they
exhibit ‘predictable’ variation. Karl’s daughter had not been sick for the
last 5 years, now she is. Jon just lost a dear friend to cancer, and he is
trying to come back to his full potential with the help of friends and
doctors. Life is not predictable, and life is the key ingredient in software
projects: our intellectual performance is the key-determining factor of
WHAT ARE ESTIMATES? 57
• Time: when will the full scope of the project be completed given
the investment and people assigned, or how much time is needed
in order to finish the project given those constraints.
• Cost: How many people, investment and resources are assigned
to the project, or how many people, investment and resources are
needed in order to complete the full scope in the projected time.
• Scope: the work that must be completed in order to consider the
project finished.
These three variables are linked together: once you define scope,
there will be a non-linear equation that will give you different
possibilities on time and cost - the more cost, the less time, but with
certain ‘crash points’ where spending more won’t cut time down, and
using a longer schedule won’t reduce costs.
These three variables define the so-called Iron Triangle. In the center
of the triangle lays a big question mark that symbolizes uncertainty.
Once you understand these three variables as a single equation, you will
understand the iron law of the triangle, which is that you can fix one or
two of those variables, but you can’t fix all three of them. As a corollary,
when you fix two of those variables, the third one will absorb all the
WHAT ARE ESTIMATES? 59
Imagine that you want to print the complete Wikipedia. You fix scope
by downloading the Wikipedia content to a massive storage device. Then
you decide to print it in the next 50 days. At this point you have fixed
scope and time, so you can start calculating how many pages, printers
and people you need to successfully print the whole of Wikipedia in 50
days. Let’s say you calculate 9.6 million pages, 20 pages per minute with
one printer, you’ll print eight hours a day, with infinite resources of
paper, toner and people, and a simple calculation will give you an
amount of just 20 printers to get the job done.
Of course, this sounds like a very reasonable, and simple calculation.
What could go wrong? But again, this is your estimate. You defined an
Iron Triangle of 9.6 million pages; 50 days; 20 printers. In the center of
the triangle, uncertainty will find a way to get into your project...
Let’s say you start printing on day one, and on day five you decide to
look at the numbers… And they show you that you are behind schedule!
You call a meeting with your people and they tell you that, yes, paper
and toner are infinite, but they need to stop a printer for two minutes in
order to change paper, which happens after every 400 pages (20
minutes), and that every day they have to change the toner, and that takes
another ten minutes. So, on average, every day there are 58 minutes
where you are not printing. And, multiplied for 20 printers, that means 1
60 The Iron Triangle
21 Mean Time Between Failure, Wikipedia:
http://en.wikipedia.org/wiki/Mean_time_between_failures
WHAT ARE ESTIMATES? 61
statistics of your printers so you can plan for malfunctions. You can even
create a risk management plan that involves some spare parts and a
limited inventory of spare printers.
Still, even the second time around, there will be some uncertainty that
involves all the Unknown Unknowns, all the things that could go wrong
and you could not know about. And when the domain of the project goes
beyond a simple, repetitive, algorithmic tasks, and involves even
rudimentary knowledge skills, the task of providing an accurate estimate
proves to be really challenging, if at all possible.
At the start of a project is when we know the least about the project.
Yet, in many cases it is when we make the most important decisions. We
decide on timelines, functionality, technology, architecture, and other
critical variables for the project.
Many questions went through Carmen’s mind:
estimation errors can be the 300% or 400% range, i.e. projects that take 3
to 4 times more than estimated.
Most projects, at the advice of planning textbooks, build into the
schedules and plans an uncertainty absorbing device, also known as a
buffer. The idea is: we can’t know everything, so let’s add some buffer.
A buffer adds some security margin to your project’s estimate. It can
take many forms, although all of them are closely related by the Iron
Triangle rule:
and will take care of other pending tasks (HR policies, old projects, etc.)
until it is time to start on the new task. Even worse: tasks that take longer
than expected will consume their buffer and a little bit more. This
phenomenon will affect the whole project. That’s the reason Eli Goldratt
proposed using a single buffer for the whole project, instead of individual
buffers for every estimate.
Buffers are dangerous as they give implicit permission to be late, as
stated in Parkinson’s Law. Eli Goldratt noticed this, and suggested hiding
the buffer from the project team. In fact, he even proposed to cut all
estimates by half in an attempt to fight the negative effects of
Parkinson’s Law, and then use the other half as a project buffer. Success
is unlikely if your project management strategy consists of hiding
information, scheming, conspiring and deceiving. And by the way, the
project team will soon find out your strategy and will balance things out
by doubling their estimates.
The sad truth is that buffers don’t solve all estimation errors. Buffers
can help you balance the expected schedule impact of bugs, rework,
scope creep and other predictable risks. The type of risks that can affect
software projects go far beyond slips of schedule or unplanned down-
WHAT ARE ESTIMATES? 65
time. Hence why instead of managing risks, you should design strategies
to reduce their impact when they materialize. One such strategy includes
having a working product (potentially shippable increment or PSI) as
early as possible. This PSI can work as an interim or ‘beta’ solution until
you finish the whole product. Later we will discuss other ways in which
you can use a PSI to actively reduce the impact of risks on your project.
Back to the PMBOK, the cost and time estimation sections provide
several tools for crafting estimates. A short summary of those techniques
is:
24 Pivot is a structured course correction designed to test a new fundamental hypothesis
about the product, business model, and engine of growth.
72 Estimating in The Agile World
which features are the ones that deliver most value is therefore more
important than finding which of them are small and which are big.
In essence, cost is not proportional to value. Once the cost difference
between features is reduced (by splitting the work into small, verifiable
work items focusing on value), prioritization based on customer value for
each work item provides better results than deciding which are the
cheapest or the most expensive work items.
But don’t we need to estimate to know when the project will be done?
This is the most common objection to #NoEstimates that I hear over and
over again. In the next chapter we explore the reasons why this question
is asked. In other words: why do we really need estimates?
CHAPTER 3
RETHINKING ESTIMATES
Many projects suffer from these same dynamics. They suffer from
unrealistic expectations.
How do you estimate a project like that? Can you avoid that part of
the project, can you drop estimates altogether?
The answer is not simple. When a bidding process is required, you
can’t avoid providing an estimate. And there are many ways in which
you can try to be precise, honest and create an estimate that you believe
in.
But when you go through a bidding process, even if you can provide
an estimate you truly believe in, the start of the project is when you know
the least about the project in all its dimensions: content or scope, costs,
technology and, most importantly, people and teams.
We need a different approach.
All parties involved in a bidding contest use estimates to “win”.
Providers use estimation as a tool to win the bid. Clients use the bidding
process to create a pressure on the estimations by the providers. Clients
want to create that pressure to win the cheapest or fastest project they
can. But estimates – no matter how good they are – cannot give you what
you really need: visibility to progress; and actionable information.
Rethinking Estimates 77
Now that we have a common base to discuss estimates, we can move
to one of the fundamental questions around the use of estimates in
software projects.
Of course, this does not mean that estimates will help you to actually
know time, cost or scope of the project, but you can have a better idea
and constrain the outcomes to a minimum or maximum time, cost and
scope.
It is important to know that estimates, on their own, have no actual
value unless they can help us understand better when the deliverables are
going to be ready or how much the whole project will cost. If there were
78 Why Do We Need Estimates?
any better way to know the answer to these questions, estimates would
be a waste of effort and time. For example, if you could know when a
box is going to be delivered by asking the courier company, it would be a
waste of time to conduct an estimation meeting and try to estimate when
the box will be delivered.
But there are deeper, human reasons to estimate and ask for estimate.
One is emotional - you just need to know them so you can sleep better
and reduce your stress. This is very common when I travel. When I travel
early in the morning, the night before I make a careful prediction (or
estimate) of how long it will take me to reach the airport. I check the
weather and road conditions on the way to the airport and come up with
an estimate for that trip. Then I book a taxi for a time that would give me
a 30 min or so buffer because the security line at the airport may be slow
that day. Making this estimate helps me sleep better. In any case I always
setup 2 different alarms to make sure I wake-up on time. Without this
estimation I probably wouldn’t sleep very well.
Another possible reason is that you might need to give some answer
to your client so that he stops calling you every five minutes, or you need
to tell something to senior management and other stakeholders so they
trust your ability to manage the project.
You can probably think of other scenarios of when the people
involved in the project just need to hear an estimate – no matter the
accuracy of the estimate – so that they can feel safer, or that the project is
in control. These human reasons are understandable, but they don’t make
your estimates critical to understanding the project progress. They are
part of working with other people, who have different needs.
Without really thinking what she was doing, Carmen speed-dialed her
boss’ number. He picked up the phone after just two rings – bad sign, he
was expecting the call.
“Hi Carmen! Do you have news for me on the Big Fish bid? I have
the client’s people all over me…”
“Er… I am almost done, sir. I understand that our company’s future
depends on this project. I understand that we must present our bid soon,
but I’ve been trying to get a team together for the past few days and no
one is available.”
“Well Carmen, that’s why we put you in charge, we’re sure you’ll
find the way.”
“I was just wondering…”
“Yes Carmen?”
“You know… There’s no easy way to put this...”
“Come on, Carmen, you know I absolutely support you, you can tell
Rethinking Estimates 79
me anything.”
“It’s just that… I don’t really understand, sir. It doesn’t matter how
much work I put into this document, it just makes no sense. There are too
many loose ends, too much uncertainty. Above all, why do they need such
a complete plan now?”
There was silence on the line.
“Sir?”
“Er… Yes, Carmen, it’s only that I’m not sure what your question
was about.”
“It’s simple, why do they need an estimate?”
“Well, Carmen, I assume you are asking that because it’s Friday and
it’s late. This is a very easy question: they just need something to show to
the business.”
“Yes, but why?”
“C’mon, Carmen, you’re kidding me… They need something that
shows them that the project will be done on time, something that makes
them trust us.”
“I understand, sir, but… If this is a trust issue, not a planning and
analysis issue, wouldn’t it be better solved through communication? I
mean, we don’t actually know if the project, and I mean the whole
project, is going to be ready on time. We can just give them an idea of
what might get done and what’s the uncertainty range. It’s like…”
“Look, Carmen,” her boss interrupted, “it seems to me like you feel
insecure. I understand that you are under a lot of pressure. But you know
that we need to deliver the bid or we will lose the project.”
“Well, if it’s just a matter of showing something, then I could have
just made up those numbers instead of overworking myself through the
last week.” Carmen was starting to feel anxious and frustrated. After all
her hard work, her boss seemed to be telling her that whatever she wrote
on the document it didn’t matter.
“Carmen… Calm down. You are under a lot of pressure, I
understand.” Carmen’s boss said in a harsh voice, “but it’s not like we
could just put together some random numbers. These need to be accurate
estimates, and you will need to live up to them. We will commit to these
numbers, and you will be responsible to deliver according to them.”
“This is not fair, sir. If you are going to hang me with my own
estimates, then I’d prefer to keep them conservative. I’d rather say that
we are going to do just some of the 400 features in the backlog, and that
it will take us a year to do so.”
“Carmen, don’t over react, please. We need to commit to the whole
project scope. And it has to be delivered before the defined deadline.
Period. This is non-negotiable.”
80 Why Do We Need Estimates?
“But sir…” Carmen felt her voice trembling, “you already have your
estimate. All the features, right before the deadline. It’s like we already
know what the estimate should be even before completing the due
diligence work…”
“Carmen.” Her boss said and paused for a few seconds. “You know
what you need to do, that’s why I chose you. I pay you to solve the
hardest problems in our projects. I know you can pull this off. Now I
better get some sleep, we have serious work to do through the weekend. I
hope you will see things differently tomorrow.”
<click> The phone line was dead…
What Carmen’s boss is asking her to do is to use her magic touch and
convert an impossible project into a viable one. She will do just that a bit
later in the story without the use of estimates, but before explaining how
she does it; let’s review her situation.
Winning a bid no matter the consequences is a very common anti-
pattern in the vendor-buyer relationship for software projects. The bigger
the project, the more often it happens – because there is a lot of money,
status and reputation at stake. And because there is so much at stake, we
invest significant time and money to try to reduce the uncertainty of our
decisions. Not knowing what is going to happen in the future causes a lot
of stress to the untrained mind.
Any projected deadline, cost or feature catalog crafted using estimates
is a guess, no matter how well researched, prepared and reviewed. These
guesses help reduce uncertainty, but not eliminate it. Sometimes, a very
inaccurate estimate acts as a sedative: it will provide you with bad
information that will make you feel secure, but when you realize the
estimates were wrong it might be too late and at that point stress levels
go through the roof and everybody loses their cool.
In some other cases, estimates are used as a weapon to assign blame.
In these cases, the estimates will turn into a deadline and all involved
will be blamed when the deadline is not met. How can estimates used in
this manner add value to a company? Is this a valid reason to spend so
much time and money on estimates? Is it the best way to manage projects
and mitigate risks?
Often organizations will start a project that just needs to be done, no
matter what, and then will spend some time estimating size, costs and
deadlines because they need to know when it is going to be done, or how
much will it cost, or what features will be delivered. In those cases, when
you ask them what decisions will they take depending on the projected
cost or delivery date of this project, what usually happens is that they
stare at you as if you were speaking Klingon. “Because we can’t
Rethinking Estimates 81
next six months quality increased dramatically! This was true win-win
situation, which could not have been predicted by estimating.
Magic? Not really. But it does take a great deal of experience to
understand that not all activities have a linear impact on schedule or
costs. This is what Agile Software Development is all about, exploring
the non-linear relationships between time invested and benefits gained,
just like #NoEstimates.25
Some argue that the process of estimating a project, will help the team
get a better understanding of the requirements, the architecture or
technologies needed to succeed in that project. The assumption is that
estimating a process will result in a better analysis of the project details.
This is not always the case. Having a conversation about the scope of a
project or even the technological alternatives is very different from the
process of estimating cost and time to implement. Estimating and
analyzing are two different things, and although you might need analysis
to estimate, the contrary is not true.
Estimation and analysis are potentially linked techniques, but they are
not dependent on each other. You can estimate a project without
analyzing it (like I propose in this book), and you can also analyze a
project without estimating its size or cost. The conflation of estimation
with analysis leads to sub-par analysis, and that in turn, leads to bad
estimation.
25 An interesting rabbit hole for the statistic mind if the concept of Confounding
variables (https://en.wikipedia.org/wiki/Confounding). This is a concept that begins to
unravel why estimation is such a hard problem. Thank you Pier Lorenzo Parachinni for
the hint to include this reference.
Rethinking Estimates 83
People that evaluate their performance through those very same
metrics – not surprisingly – introduce project Driven Development to
their organization. Other metrics, such as quality; product-market fit; or
speed of delivery end up being ignored in favor of being on time and
budget.
In these projects developers and customer support teams will feel the
pain of bad quality. The lack of product success will be blamed on the
customer “not knowing what they wanted” or the marketing team.
The negative effects of Project Driven Development will affect
multiple people and teams in different departments; hence the blame will
be distributed while the project life-cycle process – the real root cause for
product failure – remains unchanged.
The Project Driven Development paradigm is characterized as
delivering any scope on time, under budget and within the defined scope.
Even if this approach might maximize your chances of receiving a short-
term bonus, in the long-term it is does not help your company or your
client’s company to be more competitive, nor is it maximizing value
from the perspective of the customer.
However, some will find a lot of value on Project Driven
Development. But are they maximizing value for their customers with
this approach? A commonality between organizations that follow this
approach to software development is that they often have little or no urge
to compete or survive, sometimes because they are a de-facto monopoly
in some industry. Other times because the real goal of the organization is
84 Project Driven Development
not survival or success, but rather to maintain their status quo. Yet
another case is when the organization is very successful despite their
software practices, and have no motivation to change because of that
success. In these cases, Agile or Lean makes little if any sense, as there is
no perceived need to maximize customer value, reduce waste or adapt to
change.
For example, let’s say you approach a traditional consultancy
business and tell them “hey, I can show you how to turn that 8 year - 500
people - 250 million euro project for your customer into a 1 year - 10
people - 0.9 million euro Agile project.” The typical reaction will include
an incredulous stare, followed by: “Why on earth would I want to do
that?”
Another example of Project Driven Development: maximizing project
size, cost and perceived outcomes instead of searching for better ways to
deliver customer value faster.
Rethinking Estimates 85
26 More on the Toyota Production System at:
https://en.wikipedia.org/wiki/Toyota_Production_System, and the very enjoyable book
by Liker: The Toyota Way: 14 Management Principles from the World's Greatest
Manufacturer
27 Wikipedia: http://en.wikipedia.org/wiki/Toyota_Prius_%28XW10%29
86 Set-Based Design vs. Point-Based Design
Based Design
If your company is asking for detailed plans before any work actually
begins, there's a good chance that you are practicing a linear method, aka
waterfall. Product development experts nowadays advise against this
approach in complex environments28. If you don't have a clear and
detailed blueprint of what you need to build (like in cars, motorcycles,
bridges or buildings) it would be far more productive and safe to start
with a low-fidelity prototype and iterate it frequently in an evolutionary
manner, obtaining direct feedback from your customer as you go and
reducing uncertainty progressively.
When the Toyota Prius team started their project, the whole definition
they had from Toyota's Chairman, Takeshi Uchiyamada, was to make a
green car and "question everything you know about cars". This project
gave Toyota a high-single digit or low double-digit year advantage when
compared to other automakers (exception: Honda)29.
In the Prius example we see that the project starts with a bold goal,
and a clear direction. No estimates.
When the Honda City engineering team, which averaged 27 years
30
old , started their work, the project definition they got from management
was "we want you to build the kind of car that the youth segment would
like to drive."
How does this compare to estimated, fixed, inflexible project plans?
28 For a comprehensive discussion of linear vs incremental planning see Larman’s Agile
and Iterative Development: A Manager's Guide. For a discussion of complexity, see
Snowden’s explanatory video at: https://www.youtube.com/watch?v=N7oz366X0-8
29 Wikipedia: http://en.wikipedia.org/wiki/Hybrid_electric_vehicle
30 HBR, The New New Product Development Game by Takeuchi and Nonaka:
https://hbr.org/1986/01/the-new-new-product-development-game
Rethinking Estimates 87
Variability
The estimation process is an attempt to reduce uncertainty and
variability in projects. In an environment with no uncertainty and no
variability, estimates would have no meaning - you would always be
certain about cost, time and scope.
Once uncertainty and variability kick in, it is difficult to know the
exact cost, time and scope up front. If your estimates are proven wrong
this will impact heavily the results of your initial decision. Hence why
you need to constantly check how the project is performing according to
the initial estimates and re-plan and re-estimate again.
Re-planning usually results in your client and stakeholder saying “but
you committed to this deadline! You cannot change the plan now! Do
whatever it takes to maintain the delivery date – but, of course, with no
changes to budget or scope.”
A lot of effort is invested into estimation, but not so much to reduce
sources of uncertainty. On the contrary, companies that apply Lean
Thinking (Lean companies) have been developing ways to reduce
variability since the start of the Lean adoption. Lean companies use an
88 Variability
31 A Japanese word that means “leveling.” When implemented
correctly, heijunka elegantly – and without haste – helps organizations
meet demand while reducing wastes in production and interpersonal
processes. Wikipedia: http://en.wikipedia.org/wiki/Production_leveling
Rethinking Estimates 89
increased complexity and the need for the team to adapt to its new
composition. In other cases, removing someone from the team will
actually increase throughput, while adding someone will dramatically
backfire. Human teams are not bound by arithmetic - you cannot add,
subtract, multiply or divide people!
User, Client and client representative: as we will see later, one of
the most effective enablers of a #NoEstimates approach, is a savvy client
representative. No matter if it is a Scrum Product Owner, or someone
from your client’s organization or even a team of people performing this
role as a Product Management team: if you have someone that is able to
divide your work in chunks of small enough work-items and prioritize
them according to business value, it will make your life easier in so many
ways that I wrote a book about it - this book, of course. On the other
hand, a ‘bad’ Product Owner or client representative can have a very
negative impact in organization by not helping them focus on the most
valuable deliverables, or worse: trying to get so much work started that
the whole organization grinds to a halt. Given the potential impact of a
Product Owner in the organizational performance, it amazes me that the
main focus of many organizations seem to be on training only team
members or Scrum Masters. While they ignore the education and
improvements necessary in management and product ownership.
Workload and / or focus factor: having teams constantly changing
their focus between different projects or having to attend to bug fixes
every day, small requests, or side projects can dramatically increase
variability in the pace of work. Not to mention the effect on teams’
morale, product quality and organizational performance. In my
experience, teams constantly shifting from project to project have a
significant performance decrease when compared to teams that are
allowed to focus on one project at a time. On the other hand, at the end of
the day, both teams will report ‘8 worked hours’, and many companies
will consider that both teams ‘produced’ the same.
Market and competitors: introducing your products to new markets
can bring variability in the form of new requests, adaptation needs,
regulations compliance and other requests for changes. Similarly, when
new competitors or new products enter our market, our plans will
change, which will inject unexpected variability in the project.
Dependencies / specialization: in environments where the norm is
high specialization and dependencies between production units,
departments and even team members, variability is higher because of
bottlenecks that constantly emerge when and where we least expect.
Hence why methods such as Scrum advocate the cross-functional team as
the unit of productive work in software development organizations.
90 Variability
34 A generalizing specialist is a specialist that can help the team progress by working in
other areas where they are not the expert, but have enough knowledge to be able to help
deliver certain work items. This is important because it reduces wait times, a major cause
of variability in software development processes.
92 Estimation vs. Prioritization
Rethinking Estimates 93
Delivering value in minimum sized increments (also known as:
Minimum Viable Product or MVP) is not just a trendy software
development approach. It is a risk mitigation strategy that uses the Agile
principle of delivering working software early and often for your
business benefit: lower risk and more value.
Estimating the whole Product Backlog up front does not reduce your
main risk: business risk, also known as the risk of delivering the wrong
things. But having the right prioritization will. What this means is that
you should invest your time in spotting the most valuable features in the
Product Backlog that could constitute a first, rough, small version of the
product (hint: ‘all of them’ is not the correct answer). Then make
relentless progress in delivering the minimum subset of those features
that will deliver the necessary value to your customers.
Walking at Random
The traditional approach to estimating a project consists of breaking
the project into work packages, creating a list of tasks, studying
dependencies, estimating every task, adding them all together to see
when the project could be completed. When asked for a more accurate
estimate, teams will estimate to an even finer level of granularity,
perhaps estimating tasks that could be implemented in 2 or 4 hours. Then
they add them all in order to have a more accurate estimate.
94 Estimation vs. Prioritization
But that is not the only way of doing things, nor the most advisable in
many situations.
Let’s say that you want to predict how the stock market is going to
perform in the next ten years. You could go study each stock and try to
figure out how it is going to perform, then add all performances together
and obtain a 'grand total'. But no market analyst will advise that
approach. Instead, what they would do is study how the stock market
performed during the last 100 years, then see if we can use that in order
to forecast performance over the next several years.
What would this idea look like when applied to a software project?
Let's say we conduct an analysis of the last 200 features and we end up
with this kind of graph:
Let's say that you find that the average feature duration was 3 days,
and there's a standard deviation of about 1.5 days. Now let's say that
there's a new project coming in and it has 100 features. You probably
don't know the size of feature 1 or feature 37, since you have not done
any kind of estimation, just a functional definition. But would it be
unreasonable to expect that these hundred features will require sometime
between 300 and 450 days? Compare that to an estimate of 100 or 1000
days for the same features.
Rethinking Estimates 95
There are some situations where this forecasting can't be made, and
those are the ones where there is higher variability expected in the next
project because of a change in technology, team, customer
representative… But in those cases, would a feature-by-feature estimate
be more accurate, even feasible?
Let’s do a thought experiment – a Gedanken or Gedanken-
experiment. Ángel Medinilla, this book’s fantastic illustrator, calls this
the ‘Perfect Product Owner’ Gedanken.
Imagine a perfect Product Owner. This Product Owner has the mutant
superpower of being able to divide any project into stories of only 3
relatively small sizes. For every story size, there’s a statistical outcome
in terms of how long does a team need in order to finish it – like, for
example, small stories are finished in one to three days, medium stories
are finished in three to six days, big stories are finished in six to twelve
days.
We don’t know up-front if a story is small, medium or big – we only
find out when it is finished and we realize how long it took us. If this
super Product Owner existed in reality he would produce stories so that:
You don’t know what’s coming next, but you can predict the overall
behavior over time. If you were to create a histogram, characterize the
statistical distribution in the form of a median and a standard deviation
and, if a project is divided in 100 stories and the median is 3.5 days, with
a standard deviation of 1.5 days, would it be crazy to say ‘it absolutely
looks like a 350 days project, worst case 500’?
The only “trick” we required in the Gedanken was a savvy Product
Owner that is able to consistently divide projects into stories that are
small enough. Even if you can’t perfectly determine what’s going to
happen in the future; this ability to slice the work into “small enough”
work-items or stories will give you a very high degree of throughput
predictability.
In this chapter you read about the concerns regarding the accuracy or
value of estimates. Even if you estimate your project with great
investment of time, those estimates will not help you manage the
surprises that inevitably come up during a project, and in fact can make
your work much harder if certain hard-dependencies cannot be resolved
because of an error in estimation. Invariably plans fail, or need to
change, and estimates must change with them.
A better way to manage your projects is to acknowledge uncertainty,
embrace change and fix the hardest constraints (time and people plus
resources) while letting uncertainty be managed through a variable
scope. Focus on delivering the most important part of your product early
in the project and delay the less important and 'nice to have features'.
This approach allows you to work on features identified after the
project has started, when you find that these features are more valuable.
This approach also allows you to drop features that might be considered
less valuable, dedicate more time to the most valuable features and
reduce scope of others.
This approach has also been in use by many in the Agile community,
and some call it "value driven" software development, as opposed to
"scope driven" software development.
CHAPTER 4
The project will be done in three months, give or take a week or two.”
I remember saying these very same words in a top management
meeting. The number – three months – was not arbitrary. It was the result
of in depth analysis, task breakdown (yes, even I did waterfall in my
day), and a lot of internal meetings to get people assigned to the project
“at the right time”.
The managers in that meeting were happy. Very happy. This was also the
number they wanted to hear. They were so happy they did not hear how I
completed that phrase:
“But only if everything goes according to plan. We have no buffer
with this schedule.”
This is not a unique situation. All of us that have managed projects
have been in a similar situation. We’ve all been influenced by overt and
100
How NoEstimates can help you manage a project in crisis 101
covert expectations from our superiors. In some cases, we’ve also been
in Carmen’s shoes, managing a project on which the company’s future
depended on. A lot of sleepless nights follow.
How can we answer this question? How to know when the project
will be done without estimating all the work? That is the key question.
(“When will the project be done?” can be replaced with “how much will
it cost?” the process we go through is the same).
Past approaches to estimation have not worked well, in chapter 1 I
shared the data. At one of the companies where I worked, projects were,
on average, 62% late. An average 100 day project would last 162 days!
And even worse, several projects took longer (or much longer) than 162
days!35
Would you bet your company’s future on that kind of track record? I
wouldn’t. And neither will Carmen.
We need a better way to predict the end date (or final cost) for our
projects that is not dependent on moody managers coming down and
putting pressure on project managers to “improve” the estimates.
35 Thank you to Troy Maggennis for helping me correct the conclusion in this paragraph.
102 The Predictability Paradox
“Sir,” she started, “you knew from the start that this was going to be
a project with a long development cycle. It is quite impossible to show
any working software until we have requirements implemented in all
architectural layers. We only just started to develop the first layers like
database, services, etc. We have nothing to show…”
“I’m sure you can think of something for next week, you always do!”
How can Carmen show the real progress of the project? When
requirements are written in a layered fashion, progress can only be
assessed at a component level.
How NoEstimates can help you manage a project in crisis 103
More importantly, overall progress at the project level can only be
assessed when all layers of the software have implemented a larger part
of the overall functionality. How can Carmen show progress? She could
count the number of requirements implemented; the costs incurred, and
compare that to the baseline that she created when estimating the project
(how many, and which requirements should have been implemented by
now? And how much money should we have spent by now?) But the
truth is that these are very misleading measures of progress.
Let’s look at an example.
Here’s the graph from a project that followed the same
implementation strategy that Carmen is following. Take a look at the
number of open bugs found. If you were the project manager for this
project, when do you think the project would be ready for release?
104 The Predictability Paradox
Figure 6 - Data from a project using Rational Unified Process (RUP), a linear
process model. This represents the project bug, or defect-curves (cumulative
open, Submitted, and Closed) at the end of development phase, and beginning of
validation phase (phases are used in RUP).
That’s right, no one can say when that project will be done. In fact,
we can see from the graph that all requirements were implemented long
ago (the development phase already ended), but the number of open
issues just keeps growing and no one in their right mind would release
that software. If we batch (accumulate and delay) the fixing of bugs to
the end of the project – which we have to do if we take the layered
approach – we will not know the real progress until we start fixing those
bugs, and very likely later than that.
A simpler way to see this is: if you have a 800 man/hour project, and
someone says that you have actually invested 400 man/hours, can you
say with confidence that you are 50% done?
How NoEstimates can help you manage a project in crisis 105
Is there an alternative that Carmen can use? Yes! You have the
#NoEstimates alternative that creates true visibility to progress in a
software project.
Visible Progress
The main goal of my approach to #NoEstimates is to help evaluate
progress in a concrete – and easy to implement – way.
There are many ways to specify a project. For example, we can start
by doing a business analysis and create a requirements document. The
requirements document can be useful in generating consensus on what
the project should deliver, and what are the concrete problems you will
tackle with the project. However, requirements – in their classical form –
are not practical when trying to assess progress (aka progress follow-up).
Remember the vertical vs. horizontal division of work graph above?
If you have started (but not completed) 50% of the requirements in
your project how far away are you from completion? Many people in the
world today still think that work that is started (but not completed) is
progress in a software project. That is wrong. Code (implemented
requirements) is only a liability. It turns into an asset only when a user
can create value with it!
106 Visible Progress
Figure 7 - Data from a project using Rational Unified Process, a linear process
model. This represents the project bug-curve at the time of release.
In the chart above you can see that development stopped about 1/3 of
How NoEstimates can help you manage a project in crisis 107
the way through the project. If you had asked the developers they would
have said that at that point the project was almost done. After all, they
already had implemented all the requirements they were asked to
implement. In reality they were not even close to 50% completion.
Here’s why: when you implement all of the requirements you have only
completed a small portion of the work that needs to be completed for the
functionality (or capabilities) of the system to be useful to the end user.
When a developer says “I’m done” what they mean is: “I’ve coded in
what I think is the meaning of the requirement you gave me.” After this
work is done, you need to verify two things:
• First, you need to verify that the developer has the same
understanding as someone else – typically a tester – who looks at
the software from the customer point of view.
• Second, we need to ask the end customer if what is implemented
really solves the problem that it was intended to solve.
With my #NoEstimates approach, I try to avoid these problems by
using the following progress criteria which is based on work by many
people in the Agile software development community:
Figure 8 – RTS (Running-Tested-Stories) burn down for the project in Figure 2
Even if the Stories take longer to implement than one day, they
should follow some #NoEstimates slicing principles:
36 Others in the agile community have used a similar metric. I have found the first
reference to Running Tested Features (similar to RTS) from Ron Jeffries’ blog in 2004:
http://ronjeffries.com/xprog/articles/jatrtsmetric/ And the first reference to Running
Tested Stories from a presentation by Simon Baker in May 2006: (PDF)
http://computertrainingcenters.com/wp-
content/uploads/2012/09/IntroductionToScrum.pdf
110 Actionable Information
Actionable Information
Actionable information is information that allows you to make
decisions that positively affect the success of the project. It is
information that is typically expressed in a way that offers a conclusion.
For example: Because we only have 3 Stories implemented (Running-
Tested-Stories or RTS’s), but we should have 6 Stories implemented at
this point, we must reduce the scope of this release if we want to deliver
on time.
RTS (Running Tested Stories) is the metric in #NoEstimates that
allows you to act on the progress and manage the project to meet a
particular release date. It is the equivalent to ‘Working Software’ in the
Agile Manifesto, and hence it is the main measure of progress, the only
one that really counts.
How NoEstimates can help you manage a project in crisis 111
In the case above we see a typical project delivery rate (in a burn-
down chart). By looking at the chart above one can easily see that the
project presents some risks of missing the deadline, but is not in a critical
situation. If your project follows a similar burn down trend, you know
that you need to reduce the scope. Reducing scope can only be done if
the work left in the backlog is independent from each other and from the
functionality already delivered. The opposite of independent Stories in
software is the concept of layered requirements. Layered requirements
are requirements that build on each other (different layers of the
architecture, for example) in order to deliver the necessary functionality.
immediately.
• T: testable Stories are verifiable. They include, for example, a set
of criteria that define when the story is done. These criteria are
called Acceptance Criteria and expressed from the point of view
of the end-user or customer.
INVEST Stories give the project team information and the tools
necessary to actively manage the scope of the project because:
• Each Story can be dropped from the project without affecting the
overall project delivery.
• Each Story is small enough and all Stories are typically pretty
homogeneous in size, which means that you can focus on their
value, instead of their cost when making a decision. Value is an
important input for decisions (actions), and can be easily
assessed by discussing the use/benefit of a particular Story
directly with the customers/users.
• By making Stories small you also get faster feedback on the
progress of the project. The long term rate of delivered RTS’s
should converge to 1 RTS per team member per day. When the
number of delivered RTS’s is zero for one team more than 1 or 2
days you know you have to act.
“I need to find a way to measure the real progress of this project. All
these requirements that are in progress really give me no information
about what is actually ready to go, or what is just started. Where could I
find ideas on how to measure progress?”
It is dark outside, all her colleagues have left for the day, but Carmen
is stuck. She’s been scratching her head to come up with a verifiable
progress metrics for her project. There are only a few days left to the
progress report meeting with the customer. A lot is at stake.
“Hi Carmen! What are you doing here so late?”
It was Herman. “But why is Herman here at this time?” Carmen
asked herself. “Err… Herman, why are you here? Did you come back to
do some work?”
“No way! I value my private time!” He smiled, “I came back to pick
up that #NoEstimates book that Jerome asked about last week. I have
114 What are Independent Stories?
another friend who wants to read the book and we were just downstairs
having a few beers, so I decided to pick up the book immediately. When
somebody asks, I want to give them the book right away, so they don’t
have time to lose interest!” He winked.
“Wait, #NoEstimates? What is that all about?” Carmen asked.
“You don’t know? Oh my god! You are working on Big Fish, you
absolutely must read the book. Do you have a kindle?”
“Yes…”
“Right, go to Amazon and buy the book immediately. Check chapter 4
today, before you go home. It is an easy read – the author created a very
good story that helps follow the concepts in a fast-paced manner. Read
chapter 4 and let’s talk more tomorrow. Have to run now.” Herman left
to meet his friend. Carmen was interested and checked the book, bought
it and started reading Chapter 4.
“Running Tested Stories…” She repeated while reading the book,
“can I apply this to my project? It seems like a good way to follow
progress, and I can see the similarities to the Earned Value Management
ideas I’ve used in the past. But where should I start?”
“I have to count the RTS’s we’ve delivered so far… How can I do it?
I know! I’ll list the requirements that are expressed as functionality into
a list of INVEST Stories. Then I’ll group each of the other requirements
under the relevant Story. If some are left, I can create more Stories for
each of them. Let’s get to work.”
Many, many hours later…
“Great! I have my first list of INVEST Stories!
“The project feels so much clear now.” Carmen felt she had just
climbed Mount Everest on a clear day. And what she saw was an
amazing landscape. She could see her project clearly for the very first
time!
“Now to plot the progress,” she thought.
Carmen started to analyze each Story to classify them into “done”
and “not done”. After some more hours of detailed analysis and
How NoEstimates can help you manage a project in crisis 115
“Flat line…” She could not believe her eyes.
“So much work has been done in this project, so much has been
invested and no RTS progress… We’ve written many, many pages of
requirements documents, test specifications, design document. We’ve
spent countless hours in meetings making decisions that will affect the
project. But the RTS count tells us that we have no progress. Nothing to
show for all that effort!” Carmen did not say what was in her mind out
loud, but her body language said it all: the shoulders dropped, her eyes
looked gloomy and she sighed. She was the image of frustration.
“What can I do now? Why haven’t we delivered any RTS?” It was too
late to answer those questions. She only had time to dash home, take a
quick shower and come back to the office in time for the weekly progress
review with the project team.
Later that day…
Carmen goes through the progress using the Work-Breakdown-
Structure and the Earned Value Management38 presentation she had
38 More on Earned Value Managment:
https://en.wikipedia.org/wiki/Earned_value_management
116 What are Independent Stories?
prepared. The audience was mute. Very few questions were asked. After
all the information was “neutral”, there were no big visible disasters in
the project. A few questions were open, but nothing that the project team
was not familiar with. But then…
“However,” Carmen continued, “after reviewing and redoing the
project plan for many hours during most of last night, I found that the
progress reports we are using are completely inadequate to show us the
real progress of the project from our customer’s point of view.” She
waited to see the reaction of the audience. Nothing. Just silence and
puzzled looks.
“What do you mean?” Finally asked her boss.
“Well,” started Carmen, “the fact is that our requirements are indeed
being implemented. We do see progress from an EVM point of view,
but…”
“But what?” Insisted her boss.
“But, the truth is…” Carmen hesitated. “The truth is that we have
nothing actually running that we could show the customer in the
progress meeting next week. We have many requirements implemented,
but if we look at the project from the point of view of the end-user we
have nothing, really nothing, we can show!”
“How is that possible?” The whole team asked in unison.
Carmen continued. “Remember when we reviewed the requirements
document back when we were creating the bid? Herman asked us, how
we knew we were done with each requirement. And we answered that we
would know when we would put them all together for the first system
testing rounds, right?”
“Yes, but I’m not getting your point,” commented a team member,
“that is how we’ve always done it. And it worked!”
“Correct, it worked before.” Continued Carmen. “But for this project
we are being asked to report progress with running software every
month. That is new. We’ve never had to do that before because most of
our projects were small and we went from start to end without having to
demonstrate progress.”
Carmen stopped for a moment, and then decided to show them the
RTS progress graph she created. The flat line was about to come out of
the closet. She was nervous…
“Here’s how our progress from a user perspective looks like.”
Carmen showed them the same graph she had prepared during the early
hours of the morning.
Albert couldn’t be silent anymore: “How is that possible? I’ve
implemented at least 10 of the requirements, and I’m only one of the 20
developers in the team!”
How NoEstimates can help you manage a project in crisis 117
CHAPTER 5
Carmen had just left the meeting with her boss. The stakes were very
high. She had committed to show progress in the project during the
meeting next week. How can she define progress in a way that is
actionable? How can she ensure progress in a project that was almost two
months in, and had a flat line of Running-Tested-Stories (RTS)?
120
The Fast Track to NoEstimates 121
“Wow, we have way too many things to deliver for the first delivery!
No way I can show this graph to the customer when we have the progress
review next week. He’ll think we haven’t done anything!” Carmen had
just realized the extent of the project delay. There were too many Stories
to deliver, even for the first release! Especially when she considered that
she had zero RTSs delivered so far because of the layering of
requirements and implementation.
“But the first action that you need to take seems clear Carmen,” said
Herman, and waited for her reaction.
“Is it? I can’t see what to do, I feel overwhelmed,” replied Carmen.
“That’s OK. It’s normal to feel overwhelmed. After all, you just
discovered that your project is in jeopardy. But now you know that you
don’t have visibility to the rate of RTS delivery,” tried to lead Herman.
“Precisely! I don’t know what our progress rate is because we
haven’t yet delivered a single RTS, we’ve worked in many requirements,
we’ve worked for months and have nothing to show for it.” Carmen was
frustrated.
The Fast Track to NoEstimates 125
Stories, so that every day you can see that some Stories are delivered (or
not!), and everyday you can assess progress.
If your project is several months long, then assessing progress every
week may be enough and your Stories may be time boxed to a few days
(say 2-3 days).
Here’s a story of how my friend Ángel Medinilla used some of these
concepts to save a failing project:
Ángel is right, this short story has many lessons to be learned. One
such lesson is that it is only when we start working on a Story that we
actually know how long it will take to deliver.
Another lesson is that breaking down Stories helps us assess progress
at the project level faster, and make the necessary (and inevitable) scope
The Fast Track to NoEstimates 127
decisions. Not all Stories are critical for any project. Discovering which
are, and delivering on those is where the value really is.
Finally, having a consistent rate of progress is more important than
estimating a project. This consistent rate of progress will help us steer the
project in a very concrete way: reduce work or re-prioritize work based
on actual progress data, instead of a guess at a plan that will invariably
change. This consistent rate of progress will be a key tool for Carmen as
well.
In her project, Carmen had to deliver visible progress information in 1
week therefore she did not have the luxury of waiting several days to
complete one Story. Her goal was to deliver several Stories that week so
that she could show progress as well as assess the time it takes to deliver
multiple Stories, which would in turn help her forecast future progress.
Slicing Stories to be small enough is a critical skill upon which
successful software projects build. There are many techniques that you
can use to achieve a decomposition into INVEST Stories that are small
enough for your needs. In this example we will take the Story at the top
of Carmen’s backlog to explain some of the techniques.
128 Slicing User Stories to Assess Progress and Manage Scope
1. Slice along functional dependencies
In the Story above Carmen mentions a dependency on user interface
design. This is a classical example of functional dependency where one
team (the developers/testers) is dependent on the work of another team
(User Interface specialists) before they can complete the work. We can
slice the Story so that we create a clear division between those two types
of work or functional expertise. If we were to use this technique the
resulting Stories would be
Note how the first Story can be completed without involving the User
Interface specialists, and therefore be quickly completed; while the
second Story focuses on the role of the User Interface design for that
The Fast Track to NoEstimates 129
In this division of the Story we see that the data entered by nurses is
kept in a different storage solution (maybe a temporary database), and
then we add another Story that changes the storage strategy so that the
data is finally stored in the final database. This strategy for slicing may
be useful if the operational implementation of database changes is a
common bottleneck for the organization.
39 Editor’s note: It is worth noting that the ability to separate these stories hinges on
skills like: Design Patterns; Automated Unit Testing; Software design; and others. These
skills are usually not part of the skill set HR personnel look for when recruiting
programmers. They are never part of the skill sets specified when consultancies and
clients make business deals. The ability to slice stories hinge on a lot of other skills. This
may cause problems if no one is aware of the need for those skills.
130 Slicing User Stories to Assess Progress and Manage Scope
• As a nurse lead user (a user that tests the product for the nurses),
I want to add the health record of my patient, so that the doctor
can later read the answers to the questions we ask when the
patient arrives to the hospital.
• As a enrollment nurse (the actual nurse at the hospital), I want to
have an intuitive and quick input method for the information I
collect from the patients, so that it is comfortable to enter
information even in time-critical patient situations.
Agile Manifesto
For more heuristics on how to slice Stories and some examples, look
at the resources at the end of the book and the links to blogs and sites that
explain how other people are able to slice large pieces of work into thin
slices of functionality.
Now, let’s get back to our story.
“But Herman, now that I have these 10 small Stories instead of the
one we started with I still have a problem: I don’t know how much time
all the rest of the work will take! This was only one Story!” Carmen was
not convinced.
“Absolutely correct! In fact you will not know how long the whole
project will take until you have either the whole backlog of INVEST
Stories sliced up (a bad idea) or until you have enough historical
information that you can infer the cycle time for every backlog item,
independently of size,” Herman explained.
“Oh, do you mean that this slicing of one Story is just a way to have
visible progress for this one Story, but not for the whole project?”
“Yes!” Herman answered.
“But I need to know the progress at the project level, not just for this
Story.” Carmen was still not convinced.
“I understand Carmen. But before you can assess progress for the
whole project you need to first understand what is the throughput of your
134 Other Slicing Heuristics
project. In other words you need to know how many of those INVEST
Stories you created last night actually get delivered in a week.”
“OK, let me see if I got this. I will work with the teams to implement
these thin slices of my INVEST Story; by the end of the week we’ll have
an idea of how many slices of an INVEST Story we can deliver.”
“Correct!” Confirmed Herman.
“And then I’ll just guess how many thin slices each of the other
INVEST Stories has? Isn’t that estimating?” Carmen asked.
“Not really, but that is something we need to cover next,” continued
Herman. “Right now the most important step for us is to get your project
to show some progress. The data we get when we show progress will
help us to predict or forecast future progress, but we will need more of
those INVEST Stories to be delivered before we can be sure we know the
actual progress rate.”
“But doesn’t that mean that – even if we deliver a few of the slices we
just created – we will not know when we will deliver the Features we
need for the first release?” Carmen was puzzled.
“The idea with #NoEstimates is that you should focus on value, and
use the available data to forecast future progress. But the first step is to
focus on value to be delivered. Once you are clear on the value you need
to deliver you should then worry about forecasting future progress. The
first question is: what is the most important piece of work we need to
The Fast Track to NoEstimates 135
deliver now? You just answered that. Let’s focus on that first and talk
again tomorrow,” Herman stated. “I have to run, meet me for breakfast
tomorrow morning, we’ll look at the rest then.”
Carmen was not happy, but she trusted Herman and was happy to
have been able to slice the INVEST Story – which seemed huge – into
smaller items that she was confident the team could deliver in a shorter
time. Her next step was to get the teams to start on the thin slices of
functionality she and Herman had just defined.
In one project I took the information from the first 3 weeks (how
many RTSs were delivered to a production-like environment, also known
as the project velocity or throughput) and merely extrapolated that to the
rest of the project. The average velocity multiplied by the number of
sprints we had available in that project gave us an indication of the total
amount of RTSs that we could deliver during the full length of the
project.
Below you can see a graph detailing the number of Stories delivered
in every one of the 21 iterations for that project.
Figure 9 - Run chart of Stories delivered by one team in a long (21 iterations)
project. Notice how useless it would have been to set a target of 10 User Stories
for this team...
In this project the average velocity during the first three weeks was
enough to predict very accurately how many RTSs the team would
deliver over 21 weeks. In your project that may not be the case, so you
should constantly update your forecast based on the latest information
you have.
The graph below shows a shorter project where the first three
iterations (not weeks in this case) could not be used to reliably predict
the number of RTSs that project would deliver. However, as the project
progresses we see that the velocity stabilizes. By updating our forecast
based on the latest data available, we progressively become more
accurate in our forecasting.
The Fast Track to NoEstimates 137
Both these metrics will help you forecast the progress for your
project. While the User Story velocity metric will help you assess when a
certain Feature might be ready; the Feature velocity will help you assess
when the project might be ready.
What this means is that, even if you estimate, you are very likely to
The Fast Track to NoEstimates 139
get it wrong and chances are you will get it wrong by under-estimating
the work that needs to be done.41 Because we are more likely to
underestimate the duration of a task, the delays in the project continue to
accumulate even if some tasks are finished quicker than estimated.
How to avoid this phenomenon? Wrong question. We should instead
focus on defining work based on how much time we think it should take.
For example, if a project were likely to generate a maximum income of
$100,000 it would be a bad idea to spend more than that to implement it,
independently of what your estimates say.
When it comes to following progress for a project this concept is
applied by hard-limiting (time boxing) the duration of certain parts of the
work. If all Features take one month to deliver (by definition or time
box) you know that in a year you will deliver around twelve Features
(assuming you work in one Feature at a time). The project may deliver a
few less Features, or a few more Features, but close to twelve.
However, if instead you try to estimate the Features to take 1 month
you will be a victim of Parkison’s law, which dictates that each Feature
will most likely take at least 1 month to deliver.
Let’s take an example. When delivering an IT ticketing system (to
handle requests coming in from the users of the services IT provides) we
may decide to list a number of Features and then estimate their size.
Alternatively, we may decide to list Features and not worry about their
size. As long as all Features are increments of value for your customers,
what matters is that you start immediately delivering that value.
As the teams develop the Features, the Features are sliced into smaller
Stories, with each Story being in itself an increment of value.
When we get closer to the end of the mandated one-month Feature
calendar duration, our focus will turn to making the Feature under
development “sellable” (i.e. ready to be used by end-users), even if not
all the functionality could be delivered. The functionality that did not fit
the one-month mandated calendar duration for the Feature is said not to
“make the cut”.
This functionality may still be valuable or not. If the remaining
functionality is considered to be valuable it is then grouped into one or
more new Features (also with the same mandated calendar time
duration), and added back to the list of Features to be developed. If, on
41 One significant reason for this large spread for task estimation is that we tend to
estimate the actual work it takes to complete the task, but are unable to predict the time
that task spends waiting to be picked up. In Chapter 1 we cite Troy Maggennis email
where this phenomenon is further explained.
140 Why Should I Mandate the Size of a User Story or Feature?
the other hand, the remaining functionality is not considered critical, then
it should be dropped from the list of work to be completed, or at least
placed with low priority on that list.
As we add the remaining functionality back to the backlog we will see
the remaining work grow. This phenomenon is very normal and to be
expected in software projects. In fact the work to be done in a software
project will increase unless the project team makes a decision to actively
remove work from the backlog. This constant addition of work to the
backlog of a project is one of the causes for schedule overruns and even
has a pet name in the software industry: “scope creep”. Of course, that
name does not reflect the reality of software development. Adding work
to the backlog is not “scope creep”, it is just a natural outcome of our
constantly changing and improving understanding of the problems we
need to solve with the software we are creating. Instead of “scope creep”,
we should really use the term “value discovered”.
Mandating the maximum calendar duration for an item is also used
for User Stories. In my practice I advise teams to have 1-day User
Stories. The reason is simple. If you were wrong about the time it takes
to develop your User Story you will know it already tomorrow! And can
therefore act to either remove the obstacles or reduce the scope of that
User Story. Following this maximum allowed calendar duration for
Features and User Stories requires practice in slicing larger pieces of
work into small increments of value. Don’t be discouraged if at first you
don’t succeed. Rather than increase the mandated size of a Story,
practice slicing your User Stories more often, ask for help from a more
experienced colleague or ask Google. Someone out there has already
cracked that nut and can help you do it. See the resources at the end of
the book for ideas on how to improve your skills in Story slicing.
Figure 10 - Plotting the velocity over time for two teams. Above: throughput for
a team that explicitly limits the calendar duration of their Stories. Below: the
velocity for a team that does not limit the calendar duration of their Stories.
Figure 11 - Accounting for the Stories delivered within one Feature during an
iteration. Notice that the Feature increases in number of Stories as time goes by,
this is a very common scenario. Work is discovered as previous work is
completed.
data is telling you.” Continued Herman trying to change the tone of the
conversation. “Look, the team was able to complete 9 User Stories this
week, that’s a rate of about 2 User Stories per day. That gives you an
indication of what is the capacity of the team at the moment. All other
things being equal you can trust that the team will continue to deliver
around 2 User Stories per day. Some days it may be zero, and other days
it may be three or four, but this is valuable information.”
“But I don’t know how much work is left. How many User Stories
does each of the Features to be developed have? I don’t know.” Carmen
was not impressed.
“That is correct, but let’s review our goals for this week. We wanted
to show progress. Here you have it! You have software you can
demonstrate to the customer and you have a pretty good understanding
of how much software you can deliver on a regular week. We have to
expect that this User Story velocity will change. If the team, the
technology or any other key factor in your project changes your velocity
will change. That’s normal. But you have a ball-park figure that helps
you forecast progress.” Herman continued, convinced of the value of the
data collected.
“But Herman, I need to show progress at the project level. All I have
now is progress at the Feature level.” Carmen pointed out.
“Correct. You can only show how long this one Feature took and is
likely to take. However that information is valuable for the project as
well. As of today you can assume that every Feature in the backlog will
take between one and two weeks to deliver.”
“No I can’t!” Carmen interrupted. “We’ve worked only on one
Feature, which is not even completed.”
“Sure, but you can speculate based on that observation. Right? I
mean when you look at the backlog, do you think this was the lowest
effort Feature you have in the backlog?” Herman asked.
“No, this is by far not the smallest Feature.”
“Is it the highest effort Feature you have in the backlog?” Continued
Herman.
“No, this is quite large, but not the largest.”
“There you go! Now you can speculate that this Feature is
somewhere in the middle, which gives you a good range for all the other
Features. Let’s assume, for the sake of argument, that this Feature is
about average in effort. Now you define an interval for the other
Features. Let’s say Features will take anywhere between one week and
three weeks to deliver. Take those numbers and multiply them by the
number of Features you have in the backlog, what do you get?” Herman
waited for Carmen’s answer.
144 Extrapolating from User Story to Overall Project Progress
“Are you joking? How can Scope Management help me when even
the lowest end of the interval is too much?” Carmen was not impressed.
“Good point. But you are talking about Feature progress
information. Don’t forget that each Feature itself can have its scope
managed, so that even if you can’t remove some of the Features in the
backlog you can manage what each Feature will include in order to meet
your target schedule,” Herman continued.
“Oh, I see! What you are saying is that I should forecast progress
based on the data at different levels of granularity. At User Story level so
that I can manage the scope for a Feature and at the Feature level for
the project…” – Carmen explained.
“Yes! Now you are getting the hang of it.” Herman continued, “the
idea is that you have to collect the information you need to make
The Fast Track to NoEstimates 145
CHAPTER 6
Carmen, I’m impressed with what you were able to do during this week.
Your presentation of the project’s progress was very clear, and is just
what we need to make good decisions.” Carmen’s boss smiled.
“Thank you! I think I’m starting to get the hang of these
#NoEstimates ideas, that Herman has been talking about, and I really
think it will help…”
“What?!?!” Interrupted her boss. “That’s not acceptable! You can’t
be talking about that to the client! They will think we are not following
the process and may sue us!” Her boss was not amused.
“But, that’s the truth. It is thanks to Herman’s ideas that I was able to
finally get a grip on the real progress of the project. Without his help and
his support we would still be in the same situation as we were last week.
Why can’t we say this to the customer?” Carmen was not happy with the
need to hide #NoEstimates from the customer.
“Carmen, I’m sure you mean well. And I’m sure that whatever ideas
Herman has told you they have only helped you realize that you needed
to work harder. This #NoEstimates is simply not credible! Why do you
think I transferred Herman out of my team? We can’t run the risk of him
talking to a customer about his ideas, we’d lose all credibility we have in
the market!”
150
The first step to deliver a project on time is to recognize that we are late
151
“I see…” Carmen’s mind was racing, she was at the same time
disappointed and angry with her boss for not listening and dismissing the
ideas that she had been learning about. Maybe this disappointment was
due to her own incredulity before she went through the process of losing
faith, and then regaining it again by looking at the actual data that she
had been able to collect in the last week.
“Look, you’ve done a great job this last week.” Her boss continued,
“don’t spoil it by scaring the customer with immature and irresponsible
ideas. I’ve been in this industry for many years and have seen many
successful projects. I know estimation is a key practice in any project. All
the indicators of project failure point to bad management, not the
estimation process as the root cause for failure. Keep your game
together and work hard, I have faith in you.”
At that moment, Carmen would realize later, a bit of her died. She
stopped respecting the knowledge she knew her boss had. She had found
a different way to look at project management, and specifically at
assessing progress over time. And she was not about to throw that away
just to please her boss. She knew now that Herman was right, and she
was about to prove her boss wrong. But before that she would need to
improve her diplomatic skills to counter her boss’ unwillingness to
deviate from the old process.
Client meeting day had arrived. It was show time!
152 1-2-3: Step by Step Towards #NoEstimates
Figure 12 - Carmen's projection for Big Fish project. The optimistic and
pessimistic projections.
“The most optimistic expectation right now is that the project would,
with the current scope, be finished in 16 months or around 12 months
from now.” Carmen explained, “as you can see in this forecasted line of
progress.”
“Carmen,” the client interrupted, “what is that other line that ends 4
years from now? What is that referring to?”
“Great question, and well spotted. That other line is the worst-case
scenario. Given what we know now about the progress in the project, it
could take up to 4 years to deliver the functionality that we have in the
plans today,” Carmen added.
“Joseph,” said the client, turning Carmen’s boss, “I believe we had
an agreement on the live date for the project, didn’t we?”
“Yes, we did Mr. McNeal. And I assure you we still have that
The first step to deliver a project on time is to recognize that we are late
153
Carmen was happy the client had taken the bad news without much
anger, but she now had a challenge. How to recover from the delay in the
project? In the best case the project would be done 12 months from that
meeting, which is 2 months late. However, the most likely scenario is
somewhere between 12 months and 4 years.
This situation is by no means uncommon42. Many projects face this
situation late in the planned schedule. What Carmen was able to do with
the help of #NoEstimates was to create the conditions to have the scope
discussion with the customer quite early in the project. One of the key
ideas with #NoEstimates is to focus the conversation on the value of the
work to be done. By forecasting and showing progress (or the lack
thereof) very early on, Carmen is bringing the scope discussion to the
first few days of the project. This is the time when customers are willing
to compromise, and when the technology is still flexible enough to be
able to manage the scope effectively (very few dependencies are created,
unlike at the end of a project where removing some functionality may be
harder than adding it in the first place).
The key for Carmen now is to find out how to implement an effective
scope management strategy.
Carmen knew she had to start reducing the scope of the project if she
was going to deliver that project on time. Now was time for action. She
felt confident that she would be able to reduce the scope of the project
after talking to Travis the Business Analyst, so she rang him up and set a
meeting for the next day.
The next day, the meeting started with the bad news.
“Travis, I need to reduce the project scope massively. We have a very
low chance of getting this project done with the current backlog size.”
Carmen stated.
“OK, I can see that.” Travis concurred while looking at the progress
burndown that Carmen had shown him just a moment ago.
If I understand this graph correctly we need to remove at least the
equivalent of 2 months of work given the best estimate, right?”
“Actually Travis, this is not an estimate. It is a forecast,” Carmen
corrected.
“What’s the difference? If it gives me a delivery date it is an
estimate.”
42 Research into the ”on time” delivery of software projects shows that a large % of
projects are delivered after the agreed delivery date. For more data see Chapter 1 of this
book.
The first step to deliver a project on time is to recognize that we are late
155
The list goes on. As we know more about the project, the users, the
technology, etc., we will find information that we could not have
considered when the project started. That information will need to be
reflected in the work to be done, the requirements list, in the form of
additions to that list.
43 Flexible Requirements Management is inspired by a technique that Jeff Patton
popularized, called Story Mapping. Story Mapping is used at the start of a project to
envision the product as a whole and decide what should be released in each of the product
releases. Flexible Requirements Management is the application of the story map concept
to the day-to-day scope management of a project. For more on Story Mapping:
http://jpattonassociates.com/the-new-backlog/
158 Flexible Requirements Management for Maximum Scope Visibility
Carmen needs to start considering all the possible dimensions of
scope before she is able to realize that, even fixed scope projects, can
have a lot of flexibility in the list of requirements, if that list is expressed
as a two dimensional matrix of Features and User Stories.
“As you describe the scope of your project in the form of a matrix,
instead of a list you are able to see possible options for reducing scope
much more clearly than if you only consider the list of Features.” Julia
continued.
The first step to deliver a project on time is to recognize that we are late
159
know we have our next progress review with Mr. McNeal in 2 weeks. I
need to show an updated progress report based on what we discuss
today,” Carmen started.
“Sure. I know that. I did some work since we spoke yesterday. Here’s
a list of the 5 Features we can remove from the scope of the project. I
tried, and tried to get a commitment to more Features, but that was not
possible. This is the best I could do since yesterday. We may be able to
remove 1 or 2 more over the next weeks, but for now this is the best we
can do.” Travis announced while passing a paper to Carmen with the
list.
“Thank you Travis. I can work with this. I’ll have to review the
implications of removing these Features on the remaining list of
Features. Can I come back to you later with questions about these?”
“Sure, let me know if I can help you in any way. But as I said, these
are the Features we can remove now.”
“Thank you. Talk later,” said Carmen as she exited the room. She felt
a bit more confidence in the process since she had that conversation with
Julia, but she was not yet fully comfortable with the situation. She knew
those Features would not be enough to bring the project end-date back to
the original 12-month time frame. And now she was responsible for the
delivery, as her boss had clearly reminded her. The stakes were high.
She needed to act.
The meeting with Herman later that day started with a charged
atmosphere.
“I just can’t see how I will be able to pull it off, Herman.”
“Don’t worry about the project release for now. Let’s work with what
we have right now. We have a concrete scope reduction of 5 Features.
Where does that leave us in terms of release date?” Herman tried to
cheer Carmen and focus her on the information she already had at her
disposal. “Let’s review your release forecast, do you have that?”
“Yes, here it is,” Carmen pulled out the graph. “The previous
forecast as well as the one I created earlier today, that already accounts
for the Features we’ve just removed.”
162 Flexible Requirements Management for Maximum Scope Visibility
Figure 13 - Current forecast (overlaid on the original forecast), already taking
into account the Features removed by Travis
44 In this context ideal customer is a term used to designate the target customer of the
product or service being developed. This should be as specific as possible, and not
generic terms like consumer or business owner. Examples: a consumer that has purchased
from our shop before; a small family restaurant owner.
164 Creating Options by Slicing Features
“I know this is asking a lot, Herman. But can you help me out with
hosting a meeting to do just that? I’m tired and don’t feel confident
enough to help the team see through these Features.”
“Sure Carmen, let’s meet at the office.”
“Hmmm, it is better if we meet in the meeting room floor to avoid
indiscrete looks. I’ll take the team there. Talk soon!” – Carmen hung up
and felt a bit better after having obtained Herman’s cooperation. She
was not yet completely sure that his ideas would work. But now she was
committed to trying his ideas in practice. She felt the alternative of going
back to her old approach to project management was no longer an
option.
CHAPTER 7
Carmen was re-arranging her papers repeatedly as she waited for the
team to come to the meeting room. She had prepared the room for the
workshop with flipcharts on the wall, the list of Features on one side and
the slices of those Features underneath. She wanted to know if her effort
to slice the Features was understood and accepted by the team. When
everybody was in, she started the meeting.
“Thank you all for coming at such short notice. As you know we have
a very challenging project ahead of us. I’ve been focusing on how we
could keep this project on track both from the scope and time
perspective, but also so that we don’t have to work over-time for the next
9 and a half months. No one would like that, least of all me.” She felt her
team’s attention and a huge responsibility at the same time. “I reviewed
the backlog in the last few days, and as you know, concluded that we
can’t possibly make the release date in 9 and a half months with the
current amount of work. We have two options, increase our throughput
of Features per iteration, or we can remove content from the backlog.”
“Increase the throughput? Are you serious Carmen? I’ve been
working over-time for a week to get some progress visible to the
customer in our next progress report. I can’t possibly work any harder,”
Albert was not amused.
“I understand Albert, and I thank you for your efforts. Without your
and everybody else’s extra contribution we probably would be in big
trouble right now. I understand that. That’s why I wanted to focus this
meeting on creating options for us. I would like to review the backlog
with you and list possible Features we could drop based on what was
dropped already, and slice the remaining Features to see if we can find
functionality that we don’t need to deliver for the first release. I’m not
asking for miracles here. I know what can be done. Now I’d like to focus
on what we can avoid doing, in order to meet our deadline.”
After the introduction, several groups were formed. One of the groups
reviewed the Feature slices that Carmen had created the night before,
and the other groups focused on trying to unpack the remaining Features
into slices that could be prioritized for later or dropped altogether. It
Gain the customers trust with rolling wave forecasting 169
our ability to see that growth also needs to be ensured every day.
A common approach to creating that visibility is to use the technique
Carmen used: slice your Features and user stories so that you can review
progress on a daily or at least weekly basis. In practice this means that
every week several stories should be completed to allow you to assess
progress. And every few weeks (every month or so) several Features
should be completed.
You should involve the whole development team in the slicing of
Features because they will have insights into the components of the work
that can be made independent, and how to validate each slice separately.
Validating each slice from the value and quality perspective is essential
for us to assess progress. Work waiting to be validated from value and
quality perspective is for software development what inventory is for
manufacturing: a liability. You will have to pay dearly for that work later
on, unless you validate that work immediately.
How do you visualize progress when you don’t even know all the
possible dependencies that will emerge later on? That’s a question that is
addressed by the progress reporting solution described here.
unlikely that we will have that Feature ready in the next two weeks, but I
can get back to you with an estimation later today or tomorrow if you
like.”
“I would really like to know when this Feature will be ready, so
please hurry up your estimation meetings and let me know by the end of
today when you will be able to deliver that Feature.” Mr. McNeal was
back to his demanding self.
“We will try.” Carmen’s boss interjected with a smile.
“Try as you may, I want to have an answer today. Now, if you will
excuse me I have to run. Carmen, great work on the use of Features, this
is the first time I see any project using this approach, and I must say I
like it. Now please let me know when that Feature will be delivered.” Mr.
McNeal thanked all in the room and left.
It was as if a huge pressure cooker had just been opened. The room
suddenly felt serene and calm again. The fear was gone, and Carmen
knew what to do next.
A few hours later in a restaurant nearby, Herman and Carmen were
debating heatedly about how to solve the problem of answering Mr.
McNeal’s question: when will this particular Feature be delivered?
“But Herman, we really need to estimate every Feature in the
backlog. Mr. McNeal wants to know when this Feature will be delivered,
but next week he will ask about another Feature. If I don’t have a Gantt46
chart with the Features and assignments I will not know when the
Feature is ready,” Carmen insisted.
“Carmen, let’s look at the data you have. You have been able to
deliver 2 Features to your validation environment in 3 weeks. This
Feature that Mr. McNeal wants is currently the tenth Feature from the
top, this isn’t that hard. If you complete between 0,6 and 1 Feature per
week on average, it will take 10 to 16 weeks to deliver that Feature. It is
that simple. Trust the data.” Herman tried to convince Carmen.
“Sure, but that is a rate. Not a specific work sequence. I can’t be sure
that this Feature is number 10 in the list if the earlier Features can grow
or shrink between now and when we start that Feature.”
“Correct, but you will have a good indication of the delivery window.
You will also know when the window for delivery changes, and you can
react to that! Be it with reprioritization or removing content from
Features that are earlier in the list,” Herman continued.
“But what if we make a commitment to Mr. McNeal and we are late?
46 http://en.wikipedia.org/wiki/Gantt_chart A commonly used graphical representation of
work and dependencies between different work packages in a project.
Gain the customers trust with rolling wave forecasting 173
“See this window here?” Herman asked pointing to the grey
rectangle in the drawing he was creating. “This is the work that is likely
to be delivered in the next two weeks, the rest is shown in priority order.
And the work that goes beyond the planned release date for the project is
then highlighted in red, to show that it is likely it will not be completed
within that time frame.”
“OK, I got it. So I show a window of two weeks to list the Features
that are likely to be delivered in the next two weeks. But the Feature Mr.
McNeal was interested in will not be ready in two weeks. How do I show
that to him? Should I have multiple two week windows on the graph?”
Carmen asked.
“You could, but you could also have bigger windows. For example,
you could have a two week window in green to show that it has a higher
certainty, then a 1 month window in yellow, to show less certainty and
finally a grey 3 month window. That way you give Mr. McNeal an
indication of what Features will be delivered in different timeframes.”
Herman paused, and then continued. “Of course, this is just me
speculating. Maybe Mr. McNeal is interested in different time windows
of 3 and 6 months. You should ask.”
“OK, I got it. I have to go now and send that email to Mr. McNeal.
Thank you again Herman for your help. I was about to call an overnight
Gain the customers trust with rolling wave forecasting 175
meeting with the team to build a Gantt chart with tasks, dependencies
and resource balancing. But what you say makes sense and is completely
in line with the way we are reporting progress right now. I have to try
that. I will let you know how Mr. McNeal reacts. Wish me luck!” Carmen
said as she was leaving.
“Let me know what he says!” – Herman said while waving goodbye.
The rolling wave forecast that Carmen will prepare will give her
client:
The same information that helps a project team make decisions, will
also help the customer prioritize and decide on the scope of the project.
The rolling wave forecast further helps you see what is possible to
deliver in multiple time frames. Given that each Feature will have a
different cost-of-delay47, this information is critical to decide which
Features to keep in the backlog and which to delay or remove.
178 Presenting The Rolling Wave Forecast to a Client
Regards.”
Carmen was at first happy. After all there was no anger in the email.
However, the last phrase made her very anxious. Why was Mr. McNeal
asking for a meeting now? What was going on?
She called Mr. McNeal’s secretary and scheduled a meeting for later
that day.
Gain the customers trust with rolling wave forecasting 179
As she entered Mr. McNeal’s office she felt her legs shake. She had a
gut feeling that this was an important meeting. She sat down in the
meeting room and waited for Mr. McNeal as she was instructed.
She waited for a few minutes, which felt like an eternity. She tried
drinking a glass of water, but her hand would not accept the order the
brain had sent. Carmen decided that she was too nervous to drink water
and sat on her hands to keep them from shaking.
A few minutes later, Mr. McNeal entered the room. But he was not
alone.
“Hi Carmen, thank you for coming here on such short notice.” Mr.
McNeal said.
“Hello, sir. I understand. What is the matter…” Carmen stopped as
she saw the person entering the room behind Mr. McNeal was her boss.
He seemed serious. “Hello sir, I did not expect to see you here,” Carmen
said while looking at her boss.
“I wanted to have both of you here for this meeting,“ Mr. McNeal
explained. “The reason is simple. I’ve made the decision that from now
on the Big Fish project will be handled internally in my department.”
Fear struck Carmen. Her fear of being fired was coming true. She
thought: “My god! They are kicking us out of the project. Will my boss
fire me now? Oh no...”
“I want to keep a close watch on this project,” Mr. McNeal
continued, “it is a very important project for me and for the Prime
Minister. We can’t accept anything less than an on-time, high quality
release. As you know this system is scheduled to go live just before the
election. Any failure to deliver this project can cost us the election and
we would not want that.”
“I guess our company is out of the project, then.” Carmen was sure
that this was the golden handshake moment.
“I want to guarantee that this project is a success and that is why I’ve
asked your company and Joseph here to move you and your team to our
premises here, in our building. Effective Monday you will work here and
report directly to me.” Mr. McNeal announced. “I’m very impressed
with the clarity and transparency in this project, and I’m aware that you,
Carmen, created that. You have been able to deliver more visibility and
clarity regarding this project in 2 months than any of our other projects
ever delivered. I’m impressed and I want you to help me bring that same
kind of transparency to other projects here. Joseph has graciously
agreed to let you and your team work directly with us here at our offices
until further notice.”
After a pause, Carmen said: “I don’t know what to say sir. I’m glad
that you are happy with the progress the team has shown, but the
180 Presenting The Rolling Wave Forecast to a Client
visibility was created thanks to a colleague of ours that has been helping
me and without whom I would not have been able to create this level of
transparency.”
“Bring him with you as well! We start on Monday! This is the most
important project you will ever work on. I want the best people in
charge.”
“But Mr. McNeal,” Carmen’s boss tried to interrupt.
“No buts Joseph, bring that fellow with Carmen and the team.” Mr.
McNeal was not taking no for an answer.
“Very well,” Carmen’s boss acquiesced. “We will bring Herman in
as well.”
Carmen was smiling inside. Her hands did not shake anymore and
she felt confident.
“And Carmen,” Mr. McNeal continued. “Next week we have a
presentation about this project to the council of ministers. Let’s get ready
for that. You are in the big leagues now.”
THE END
Visit
oikosofyseries.com/noestimates-book-order
to know more
Gain the customers trust with rolling wave forecasting 183
183
ACKNOWLEDGEMENTS
A project like this is never easy, and could not succeed without help and
support from many people. So here is my heart-felt thank you to all,
including those I have unintentionally left out in this acknowledgement.
You made this project possible!
project much better with their questions, insights and comments. This
book would be much worse without your contribution.
To the twitter friends I made during these years where #NoEstimates
went from a crazy idea, to a wide-spread cry of dissatisfaction with the
status quo in the software industry. You make me believe we can
improve our industry!
185