Humor: Software Project Estimation Techniques For Different CMMI Levels

Submitted by Kamal Wickramanayake on February 5, 2007 - 07:00

Note: This article carries humor and the estimations techniques given below have nothing to do with CMMI levels (Except for the fact that I am trying to find similarities between the real estimation techniques and the humorous techniques as found in Weinberg’s post.). But I have given some of my “true” views on estimations at the bottom. - Kamal

Weinberg the Great would write in his post Estimating Projects: A History of Failure about the mantic art of project estimation suitable for different CMMI (Comprehensive Magistrate of Magical Integrity) levels of maturity. I could digest it up to this level:

CMMI Level 1 (Erotic):

Find someone at random (a fresher or a senior) who knows the terminology and his first estimate is the one!

CMMI Level 2 (Telestic):

Collective wisdom leads to the “truth”. Get the views of many including the freshers who do the work, seniors who pass the work and managers who observe the work. The least figure will win the contract and delight many at least until the initial 80% of the estimated effort is spent on nothing.

CMMI Level 3 (Mantic):

At this level, you need to estimate with care and the technique should reflect your way to level 5. Use expert judgment and to be serious and more accurate (or “average”), use Wideband Delphi with suitable modifications for your environment.

CMMI Level 4 (Poetic):

You have passed many levels and owns a history. Incorporate your organization’s past recorded experience and estimate based on analogy. Show that mathematics can be used to add numbers together and verify the results. The freshers and the seniors can arrive at the same numbers if they have the historical data (though usually outdated).

CMMI Level 5 (Ecstatic):

You are manipulating lengthy projects and need to focus on Phase Planing and Iteration Planning which is also essential for schedule tracking and get yourself burnt since the initial 20% of the estimated effort is gone. The old with much likings in the past can do the same thing and talk about Rolling Wave Estimations with Successive Refinement.

Why You Cann’t Be The God?

In reality, the innovation of the software development tools, techniques, processes, styles,… are so rapid that ALMOST NONE of the techniques have withstood the test of time so that the technique could stabilize enough to produce reasonable numbers. Whatever the technique used, this requires that representative factors of the current times are injected into the estimation process either implicitly or explicitly. Impregnated architectural guidelines throughout the project and a well managed iterative and incremental delivery mechanism are at the roots of a successful project without which the maestro would easily estimate the effort to infinity. You fail!

What to do then?

Well, no solution. You have to follow the others and estimate your project with one or more techniques. According to Dwight D. Eisenhower (34th President of the United States 1953-1961),

“Plans are useless, planning is essential”

simply because there’s much difference between what you predict and what actually happens (or merely for the fact that you and I cannot predict the future). But you need something to start with and keep yourself moving until you reach some other thing. That withstands the test of time:

“Estimations are useless, estimating is essential”