Five canonical techniques: expert judgement (incl. Delphi), estimation by analogy, Parkinson’s Law, pricing to win, and algorithmic models. Algorithmic models (COCOMO etc.) dominate in practice; the others remain useful as cross-checks or fallbacks.
Several experts on the proposed technique and application estimate project cost. There are discussed and compared until an agreement is reached.
Some expert judgement techniques involve polling each expert independently, in some cases for three estimates, pessimistic (p); optimistic (o) and most likely (m).
Then estimate is computed by e = (p + 4m + o)/6
Delphi technique: asks several experts to make an individual judgement of the effort using any method they wish. Then, the average effort is calculated, and presented to all of the experts.
Each expert is given a chance to revise, discussion maybe involved. This process repeats until a concensus has been reached.
A model is developed using historical cost information based on some software metric (usually its size) to the project cost.
When a project effort needs to be estimated, an estimate of the metric is computed.
Using the model, effort is predicted.
The most general form is := Effort = A Size^B M
where
A is a constant factor based on organisational practices.
Size is the size of the software estimated in a metric of choice.
B is a value between 1 and 1.5 derived experimentally.
M is a multiplier made by combining various attributes (process, stability of reqs, experience, skill).