Management and programmers are both stressed out by project estimates. Software teams often over-commit, compounding the problem. A lot goes into making better estimates and commitments, but this talk gives you a simple place to start, by expanding your vocabulary about "When Will You Be Done" to include Commitment and Target, as well as Estimate. It also explains how Commitments can shape outcomes, and where you and your organization stand.
Everybody¡¯s uptight when it comes to software project estimates, budgets, and schedules. But we can make the fear go away.
The first step is a simple addition to your vocabulary
Adding two words you already know, Commitment and Target, will make your ¡°How long will it take¡± conversations easier, and lead to better outcomes.But first, let¡¯s make sure we understand Estimate.
An estimate is a prediction. It¡¯s uncertain. If you ask me, ¡°How long does it take to get to the airport,¡± I¡¯ll say, ¡°Half an hour, maybe 45 minutes, most of the time¡± Even if I know the route precisely and have done it before, stuff happens. There¡¯s a lot more to a software project than a drive to the airport, so when asked, ¡°How long,¡± we honestly can only give a range.But you say, ¡°If I give a range when my boss asks for an ¡®estimate,¡¯ they¡¯ll have a cow!¡± They might, but it¡¯s a misunderstanding. ¡°Will you marry me?¡± ¡°I¡¯d say there¡¯s about a 2/3 chance that eventually I will!¡± You gave an estimate when they wanted a Commitment.
A Commitment is one number, with an expectation that it will be that number, or less¡ªunless something unusual and understandable happens. It involves trust and consequences. Think about driving to the airport again. I can leave 90 minutes before my flight departs, or two hours before, but I can¡¯t do both. I Estimate, decide how much of a chance I want to take, and make a Commitment. An Estimate is a range and a probability. A Commitment is one number, with a pretty high chance that I can deliver, or bear the consequences.If you share that vocabulary, when someone asks, ¡°How long will it take?¡± you can respond, ¡°Estimate or Commitment?¡± and avoid a misunderstanding. Estimates and Commitments are both honest answers. They have different uses.
But what if they say, ¡°I need this in six weeks!¡± That¡¯s not a question, so can¡¯t answer it. Instead, what usually wells up is an emotion¡ªfear or anger. That lowers your IQ, so you have to head it off. Add another word¡ªTarget.
Target gives the request, and the requestor, the respect they deserve.Assume they have a good reason, and stay in dialogue with a question like, ¡°Tell me more about the six weeks¡ªwhat¡¯s driving that?¡± Don¡¯t ask them to justify the target¡ªwork at understanding it, and what¡¯s at stake if it¡¯s not met.I¡¯ll never forget the day in July when I was called into a meeting with my company¡¯s founder and a personal friend of his, during the dot-com boom. ¡°We have to launch on the fourth of October,¡± he said. I was scared. Not only was there no way, there was absolutely no way, but somehow I asked, ¡°Why?¡±¡°That¡¯s what I¡¯ve promised my investors,¡± said Mr. Johnson.
Also, somehow, I asked for time to Estimate. When we met later, I was able to say, ¡°I¡¯m sorry, Mr. Johnson, but I ran the numbers. Even if we put our best team on it, starting today, we¡¯d have to break our own productivity record by a factor of three, and I don¡¯t think that¡¯s very likely.¡±¡°No, I agree, it¡¯s not,¡± said Mr. Johnson. ¡°This really isn¡¯t what I wanted to hear.¡±
¡°Is there any way I can help you?¡±¡°Yes, you can help me understand what I can promise by the 4th of October.¡±
We were now on the same side, and that¡¯s the key with a Target, especially an unachievable one.Rein in your emotions, stay in dialogue, and learn what¡¯s behind the Target.Then create an Estimate¡ªa range of possibilities¡ªto help you and your new teammate come up with a Commitment that you can keep. No one benefits from a missed Commitment, even one that sounded pleasing when it was made.
A lot of things can happen on the way from Estimate to Commitment, but I only have time to touch on one, and that¡¯s the idea that a little over-commitment is a good thing. Put another way, Estimates are about prediction, but Commitments are about leadership. This idea expresses itself in two common ways.The Stretch Goal idea is that people rise to a challenge; if we set the bar a little too high, they may not clear it, but we¡¯ll get the best possible outcome.Parkinson¡¯s Law says that work expands to fill all available time, so if we make a low-risk commitment, with ¡°extra¡± time and money, people will just waste it. We need to tighten up the commitment to eliminate the waste.Most people, and even whole organizational cultures, have a definite posture when it comes to commitments, even if it¡¯s unstated.
To understand your own posture on commitments, think about the results you would expect in two different environments.Imagine a culture in which commitments are clearly too lax. Would you expect to see most projects coming in right on the numbers, practically coasting, or would you expect to see a lot of heroics, ending in train wrecks?Now imagine a culture in which commitments are clearly too aggressive. Would you expect to see most projects coming in right on the numbers, practically coasting, or would you expect to see a lot of heroics, ending in train wrecks?What are your typical outcomes? What does that suggest about your posture regarding commitments?
The reasoning behind Parkinson¡¯s Law and Stretch Goals is that the Commitment can actually shape the outcome, for the better. Estimation is about passively predicting outcomes, while Commitment is about leadership.And history has shown that it¡¯s true. Commitments do shape outcomes.History¡¯s also shown that, when it comes to engineering and software development, the outcome of over-commitment is often one that no one would have chosen.
Like most business software problems, your estimation and on-time, on-budget delivery problems are a lot more about people and communication than they are about technology.Introducing Targets and Commitments as distinct from Estimates can help, as can a little bit of thinking about the effects that overly aggressive, as well as overly lax, commitments can have on your project outcomes.