Two Gaps: Vision and Estimation
December 16, 2009
I’ve been thinking about how hard it is to align expectations between business and technical teams for awhile–like, every time someone says “exactly!” or “what were you thinking?!” when my team delivers software.
I’ve been trying to come up with a model that isolates the parts: what the customer envisions, what the customer asks for, and what the technical team estimates. There is a great cartoon circulating that I hope you’ve seen, with a swing seen by different stakeholders…everything from three swings on top of each other to a tire on a rope. My hope is that by isolating the dimensions of vision and requirement, we’ll be better able to manage expectations and risk. Hopefully the visuals will help those visual thinkers show how naturally we end up in different places.
So here’s how it works: The outer blue circle represents what the business wants. They have come up with a great idea that will help them and they are ready to have something done. The little black dots represent the information they share with the technical team that become requirements. They may be exhaustive and explicit in laying out the vision, but, ultimately, the data points are what are documented and reflected back to the business.
This is where it gets tricky. When the business sees the data points, they impart their vision onto the image and extrapolate from those points to their encompassing vision. To them, the data points mean “they got it!” If you build a system that addresses those points, we’ll be successful.
Meanwhile, the technical team is thinking: “OK. I’ve got four points. That’s a square.” Or what I’m calling the “Vision Gap.” The difference between what a customer is envisioning and what is going to be built for them.
To make matters worse, when the technical team sits down to estimate the development time for the task, they inevitably miss the mark. They can estimate all the tasks they know need to be completed, but inevitably there are challenges that can’t be anticipated. I call this the Estimation Gap. It’s just the difference between what an estimator estimates and what actually needs to happen.
Knowing that there is always that gap, though, teams that perform together consistently can apply metrics from prior projects to arrive at an estimation of the gap between requirements and actual work. At Heuristic Solutions, we call that the “management reserve,” which I’ve written about elsewhere. This is time and budget that probably will need to be spent to close the gap between requirements and estimations. All of that, of course, is the responsibility of the technical team. If they get that wrong, they pay for it.
The more problematic side, of course, is the gap between the “circular” customer vision and the “square” set of requirements. There is not much to do about that after the fact, so we have to do a lot more work on expectations up front:
- Make sure the business knows that it is possible to have many interpretations of the requirements and that there will be refinement along the way.
- Make sure the business knows that they won’t get anything that isn’t in the requirements. Just because you talked about it in a meeting one time doesn’t mean it’s going to happen. If it’s not written down, it’s not going to happen.
- Make sure the business has contingency funding of their own so that as vision is clarified, it can grow to meet their vision.
The right side of the diagram shows how we close the gap when we gather more information. More time and effort will yield more data points that align with the customer vision. Tools such as use cases and wire frames provide additional data to close the gap between vision, requirements, and estimations.
It’s not exactly news to say that the more we invest in requirements and design up front, the more aligned we will be. That being said, there are diminishing returns to the requirements and design process. Does everything need to be designed to the most finite level? Absolutely not. In most cases, projects can tolerate differences between vision and execution. Few organizations can afford to analyze problems so thoroughly that there is no variation, and frankly, a lot of the time would be wasted.
What this diagram shows, I hope, is not just that we achieve greater alignment by gathering more data, but that when we choose an arbitrary cut-off point, there will be a gap. As long as we have some sense of the gap and contingency planning to handle it when we confront it, we’ll achieve the right measure of resilience to help us succeed.
I’ve tried another diagram with an oval to illustrate that while circles are nice and symmetrical, the other dynamic in all of this is that the gap between analysis and vision is not going to be uniform. There will be some parts of the vision that can be intuited and others that can’t. We take a risk when we need to intuit. Doing so can yield remarkable efficiencies, but can also lead to unexpected gaps. Knowing the risk, we’ll be in a position to close the gap when we need to.
The Vision Gap with a less consistent vision.
How would you draw your experience with this?



December 16, 2009 at 8:37 pm
Hi Christopher,
I am going to go against my better judgement and think about work when I should be relaxing at home. And for good reason. I think your two last posts have combined to make some pretty strong arguments about software development. You asked for stories in your last post, and I failed to give you any story, choosing rather to discuss nuance, as you put it.
Well, with this article, I am compelled to rectify that decision.
It’s funny, as a developer myself, one would think that I have the brain cells to realize the gaps that you are talking about, so that when I have a vendor develop software, I know the importance of requirements gathering. But it is really hard to wear two hats at once, isn’t it? One inevitably falls off.
As a developer, gathering user data from user interviews proves especially difficult when the users are so used to the “now solution” that they can’t really see the “possible solution”. There have been plenty of times when I have asked users what would make the product better, the sky’s the limit, etc., only to go back to my desk and realize they users will get whatever I create myself, because all I have in my notes is “change would be great”, without anything to follow up with.
I have also received requirements scribbled in crayon on a bar napkin. I’m not kidding.
However, as the user, I have not only asked for XYand Z, but the entire alphabet of requirements, only to be amazed at the end if it that a requirement asked for was forgotten because it wasn’t written down, even though I preached the need for it multiple times, etc.
Where it gets really tricky, and where your previous post comes to play, is when what you buy has a cookie cutter application, with only minimal development at worse, or minor tweaks at best, to customize it for the business needs. This in a way is worse than starting from scratch, because while it was purchased for what it has, it inevitably gives you countless headaches for its limitations.
I have definitely learned this first hand.
I have one other “shape” for you in this continuum. How about a light green circle in a dark blue square in a light blue trapezoid? The trapezoid signifies a documents gathering that is completely unexpected and unclear, which could be because the users don’t really even know what they want, or the developers don’t really understand the relationships that are needed within the overall structure.
What do you think?
December 17, 2009 at 11:23 am
Thanks for a very rich reply. You’ve made a couple of really great points that I’d like to follow up on.
The point that I want to address especially is that we can’t rely on brain cells for any of this. I would say most programmers, analysts, and business people are pretty smart. One of the problems we have is thinking that just because we are smart, we are going to come up with alignment.
It’s more realistic to think that in addition to being smart, we also need to have specific tools and processes in place, as well as common expectations about using the tools. It’s ok to capture an idea on a napkin in crayon, let’s just remember that it’s not a requirement until it’s formulated as a discrete, testable unit.
Regarding the shape, you are absolutely right: reality is a lot less symmetrical!
Regarding the task of trying to customize software that was built to be off-the-shelf, I really feel for you. That definitely falls under a mis-match between the adoption strategy and the software delivery strategy. That would probably be a useful article in and of itself. I wonder if you’d be willing to tell more? Perhaps you could be a “guest” contributor?
December 17, 2009 at 8:08 pm
I would definitely entertain the idea of being a guest contributor.
You wrote “regarding”, and nothing else, at the end of your reply. Should I expect more comments on my comments?