[tweetmeme source=”aabdulmoniem” only_single=false]

Hello! Back again, it has been a while from our last review on this great book, Software Estimation.

We have already reviewed the first part of the book which discusses the critical concepts about software estimation.

Now, we are moving on to another stage. This book now turns to a discussion of detailed estimation techniques that can be applied to specific estimation problems.

This chapter is just an introduction to lay out the ground for the upcoming chapters which will discuss specific techniques.

What I have learned?

There are many considerations you have to take into account before choosing the right estimation technique to your specific problems.

What is being estimated? Do you have features, and you want to estimate schedule and effort?

Do you have budget and development time frame, and you want to estimate how many features can be delivered?

In this book, estimating size refers to estimating the scope of technical work of a given feature set—in units such as lines of code, function points, stories, or some other measure. Estimating features refers to estimating how many features can be delivered within schedule and budget constraints. These terms are not industry standards; I’m defining them here for the sake of clarity. Project Size Small: <= 5 total technical staff. Best estimation techniques is “bottom -up” techniques based on estimates made by individuals who will do the job.

<= 5 total technical staff. Best estimation techniques is “bottom -up” techniques based on estimates made by individuals who will do the job. Large: >= 25 people lasts for 6 to 12 months or more. Best estimation techniques are in the early stages, the best estimation approaches tend to be “top-down” techniques based on algorithms and statistics. In the middle stages, a combination of top-down and bottom-up techniques based on the project’s own historical data will produce the most accurate estimates. In the later stages of large projects, bottom-up techniques will provide the most accurate estimates.

>= 25 people lasts for 6 to 12 months or more. Best estimation techniques are in the early stages, the best estimation approaches tend to be “top-down” techniques based on algorithms and statistics. In the middle stages, a combination of top-down and bottom-up techniques based on the project’s own historical data will produce the most accurate estimates. In the later stages of large projects, bottom-up techniques will provide the most accurate estimates. Medium: 5 to 25 people and last 3 to 12 months. They have the advantage of being able to use virtually all the estimation techniques that large projects can use and several of the small-project techniques, too. Software Development Style For purposes of estimation, the two major development styles are sequential and iterative. Industry terminology surrounding iterative, Agile, and sequential projects can be confusing. For this book’s purposes, the primary difference between these kinds of projects is the percentage of requirements they define early in the project compared to the percentage they define after construction is underway.

Evolutionary prototyping: Iterative.

Extreme Programming: highly iterative.

highly iterative. Evolutionary delivery: normally practiced as iterative.

normally practiced as iterative. Staged delivery: S equential.

equential. Rational Unified Process (RUP): Sequential.

Sequential. Scrum: Iterative from multi-sprint point of view. Development Stage Early: On sequential projects, the early stage will be the period from the beginning of the project concept until requirements have been mostly defined. On iterative projects, early refers to the initial planning period.

On sequential projects, the early stage will be the period from the beginning of the project concept until requirements have been mostly defined. On iterative projects, early refers to the initial planning period. Middle: It is the time between initial planning and early construction.

It is the time between initial planning and early construction. Late: Refers to the time from mid-construction through release. Accuracy Possible The accuracy of a technique is a function partly of the technique, partly of whether the technique is being applied to a suitable estimation problem, and partly of when in the project the technique is applied. Some estimation techniques produce high accuracy but at high cost. Others produce lower accuracy, but at lower cost. Normally you’ll want to use the most accurate techniques available, but depending on the stage of the project and how much accuracy is possible at that point in the Cone of Uncertainty, a low-cost, low-accuracy approach can be appropriate.

Most of the remaining chapters in this book begin with tables that describe the applicability of techniques in the chapter. Here’s an example:

Applicability of Techniques in this Chapter—SAMPLE Group Reviews Calibration with Project-Specific Data What’s Estimated Size, Effort, Schedule, Features Size, Effort, Schedule, Features Size of project – M L S M L Development Stage Early—Middle Middle—Late Iterative or Sequential Both Both Accuracy Possible Medium—High High