Sunday, July 15, 2012

If then, why not now?

Our theme today is "If then, why not now?", suggesting that if by waiting we think things will get better (or be better), why don't we take the actions to make things better now?

We see this in risk management with the "Cone of Uncertainty", something that Dr Barry Boehm--more famous for the CoCOMO model and the Spiral model--wrote about in his book "Software Engineering Economics" (though he called it a funnel).

A temporal dimension is built into the Cone of Uncertainty. In other words, the cone is "uncertainty vs time"; the mouth of the cone is in the far future. It's in the far future that we're optimistic. Things are bound to be better "then". In the present and near future, we're more pessimistic (there's less time to deal with issues that are upon us), though pessimism and optimism may be symmetrically distributed (it's as likely to go well as to go bad)

So, it's not as good "now" as we think it will be "then". That sets up the uncertainty of the future. Boehm called it a funnel because in his metaphor lots of uncertain events were scooped up or allowed to enter the wide front-end of the funnel, but only a few risks actually materialized and found their way all the way through.

So, back to the opening question: what can we do now that will make things better than if we waited for the funnel to do its magic? We could cast the question another way to stimulate a thought: if we spend time and energy now optimizing for "then", wouldn't there be some benefit to optimizing for a result closer to now?

(In essence, this is part of the agile thought process: instead of waiting all the way to the end ("then"), let's start getting some of the project benefit now.)

Of course, the then/now question is rhetorical: there's no answer for it outside a specific project context. Nonetheless, is there ever a case for procrastination? Why not get on it now, take some actions now, to get a better effect now, rather than waiting?

Or, to ask it the agile way: why put all the effort into optimizing for an end result... why not redirect some of the effort toward benefits closer to now?