I don’t know the origin of that saying. When I first heard it, it was presented as ancient Chinese wisdom. In the West we often attribute pearls of wisdom to some named or unnamed ancient Chinese philosopher. I suspect many of the attributions are not historically accurate. In any case, the saying suggests — correctly, I think — that by examining the past we can make some predictions about the future…within limits, of course.
One of the hot topics of discussion in software development circles these days is the question of how we can make useful predictions about the future for purposes of planning software delivery activities. The subject turns out to be trickier than I had, um, predicted.
Most of the confusion appears to arise from assumptions different people hold. The largest break in mutual understanding, as I see it, comes from different assumptions about the level of abstraction at which we need to make predictions.
People whose direct personal experience is in mid-to-upper management tend to think of prediction as a tool to inform the "go / no-go" decision for a development project. "Will we be able to deliver this product in time to matter and at a cost that makes it worthwhile?" People whose direct personal experience is in software development or line-level project management tend to think of prediction as a tool to inform short-term planning, as in "how much of the planned scope can we complete in the next week / month / iteration / release?" When people who have different assumptions argue that this or that method of prediction is or is not useful, they talk past each other because they are not thinking of the same problem.
Another source of confusion is the different working definitions people have of key words. In the software development field, we often think of making predictions as "estimation." Some people understand the word "estimation" to have something to do with predicting how long a piece of work will take, usually based on a judgment informed by past experience. Others understand "estimation" more broadly as any method of making a prediction about the future, including judgment-based, measurement-based, and commitment-based prediction. When people who have different assumptions argue that this or that approach to estimation is or is not useful, they talk past each other because they have different working definitions of the word, "estimation."
For purposes of short-term planning, people mostly seem to advocate one or a combination of the following approaches: estimation, projection, and commitment. Each of these words seems to carry far more emotional baggage than one might expect and, in my opinion, more than is warranted. Here are the working definitions that I, personally, apply to these words:
- Estimation generally means that people make a judgment about how long a piece of work will take to complete based on their direct personal experience in doing similar work.
- Projection generally means using historical data to calculate the likely delivery capacity of a team over a period of time, typically using a sliding window of recent history of mean cycle time or average velocity.
- Commitment generally means that team members promise to make a sincere effort to deliver some scope of work over a period of time, based partly on their best judgment and partly on their willingness to put forth extraordinary effort to deliver, possibly, more than their historical performance suggests they could normally deliver.
As it happens, I’ve gotten good results using all three of those approaches. When the work was of a routine nature and our team had recently done a similar project, judgment-based estimation was a very effective way to get a realistic idea of how long the new work was likely to take. When working with a team whose stakeholders requested work at a variable rate and whose work items tended to vary in size, using historical mean cycle time as the basis for projecting likely future delivery performance worked well. When working in a sweat shop environment where requested work was impossible to predict or plan using any conventional estimation or planning methods, making a commitment to hit a challenging deadline, even lacking information, worked quite well; we surprised even ourselves, and it was satisfying on some level. (I wouldn’t choose to work that way all the time, though.) There is a time and place for all these approaches, and probably others.
In any discussion of the subject, problems arise when different people have different working definitions in mind for the same words. In a recent Twitter exchange, I noticed that in an uncharacteristically passive-aggressive moment, someone I know (call him Person A) had disparaged the professional experience of another person I know (call him Person B) merely because Person B had made statements about "estimation" based on a different working definition of the word than Person A understood. To me, this indicates the word is emotionally loaded and therefore potentially dangerous.
On the other hand, a friend of mine suggested that if we try to avoid every word that might be misunderstood, we would soon be unable to say anything at all. Maybe that’s okay; maybe fewer words would result in clearer communication. At the very least, it would be an improvement over endless, circular bickering. That’s my prediction, anyway.
“In any discussion of the subject, problems arise when different people have different working definitions in mind for the same words.”
In such situations, it is reasonable to ask those with whom one is talking what they understand by a particular term—and ask early. Most words have many meanings, so this seems to make sense. You have made your own understanding very clear in this post. Oddly, such enquiry is often met with avoidance, rather than clarity. I find that puzzling. There may be a good reason to avoid being specific that I’m not seeing, but it does make the conversation that follows rather wasteful, and, as you said, circular.
On a side note, I found the Person A/Person B story disturbing. You are making a judgment (passive-aggressive) on a dialog you don’t share with the reader, but only allude to. And perhaps is missing some context. As someone involved in the twitter dialog, doing my best to remain open and respectful, yet not always succeeding, I can’t help but wonder if this judgment is aimed at me. A little self-obsessed, perhaps, but still, not a pleasant feeling. It was like overhearing gossip. I wonder how else you may have said the same thing.
Hi Tobias,
[1] There is no judgment, only an observation.
[2] It isn’t about you.
1. Okay. You know your motivation better that I 🙂
2. I think you miss the point. It is about somebody. I believe direct feedback is better than allusion. The latter tends to undermine safety.
If we were working in a team setting, then I would agree that direct feedback would be best. In this context, the interesting thing (to me) is not the identity of the individual who seemed to disparage another person’s experience, but rather the general behavior pattern of assuming our own definitions and assumptions are universally correct. We’re all susceptible to that pitfall, and I think it’s more important to remain alert to that potential error than it is to call anyone out by name.
I know Person A and Person B, and I know each has substantial and impressive experience. If their experience differs, it’s more likely that both perspectives are valid than it is that one of them is right and the other wrong.
With that in mind, I’ve expanded my own understanding of the ways people think about “estimation,” and I’m grateful for the opportunity to do so.
With regard to safety, I think that’s another “team thing.” Here, we’re out in the public, and the public isn’t safe by definition. We choose our behaviors and we are open to criticism, whether by name or anonymously. It is then up to us to decide what to do with the information.