Chapter 2 - Linear Software Project Estimation
Chapter 2 - Linear Software Project Estimation
What is Estimation
• “The single most important task of a project: setting realistic expectations.
Unrealistic expectations based on inaccurate estimates are the single largest
cause of software failure.”
• Estimation is a process to predict the time and the cost that a
project requires to be finished appropriately.
Definition of Estimation:-
Estimation is the approximation of a result that one can use even if
they are using information that is not clear or is incomplete. It is like
making an educated, reasonable guess based on the information
given. If an estimate is more than the actual amount, then it is
called an overestimate.
Why its important to you?
• Program development of large software systems normally experience 200-300%
cost overruns and a 100% schedule slip
• 15% of large projects deliver…NOTHING!
• Key reasons…poor management and inaccurate estimations of development cost
and schedule
• If not meeting schedules, developers often pay the price!
The Problems-
• Predicting software cost
• Predicting software schedule
• Controlling software risk
• Managing/tracking project as it progresses
In order to accurately estimate the project the common
questions that come into the mind of a project manager at
the start of the project are–
• A project with 50,000 LOC would be represented as 50 KLOC in the COCOMO model, making it easier
to manage and estimate.
⮚ Step1: Identify the teams that need to perform the estimation activity.
⮚ Estimation experts
⮚ Estimation coordinator
⮚ Author
⮚ Step2: Author present the project details including client’s needs,
system requirements, expectation, and task to the group of experts.
⮚ Step3: Finalize the acceptable adjustment value.
⮚ Step4: Prepare the list of tasks and distribute to the group of
experts.
⮚ Step5: Experts make their estimates for each task.
⮚ Step6: Coordinator prepares a summary of estimate for each task,
identify the acceptable task.
⮚ Step7: Experts continuously discuss tasks and assumptions where
the percentage of variance is not acceptable.
⮚ Step8: Revert to step 5 and repeat steps until all tasks are assigned
estimate that have an acceptable percentage of variance value.
Work Breakdown Structure (WBS)
• Dividing into Logical Units/Tasks
• Creating a WBS is a prerequisite for any estimation activity.
• It enables you to conceptualize an abstract entity, such as a project,
into distinct, independent units.
• it gives idea about the size and complexity of the project.
• helps in planning, scheduling, and monitoring a project realistically .
• Work Breakdown Structure (WBS) based techniques are good for
planning and control. WBS was a standard of engineering practice in
the development of both hardware and software. In this technique
the complex project is divided into smallest pieces known as sub-
functionalities (smallest components) which are considered as tasks
Wideband Delphi
• In the 1970s, Barry Boehm and John A. Farquhar originated the Wideband Variant of
the Delphi Method. The term "wideband" is used because, compared to the Delphi
Method, the Wideband Delphi Technique involved greater interaction and more
communication between the participants.
• In Wideband Delphi Technique, the estimation team contain the project manager,
moderator, experts, and representatives from the development team, constituting a
3-7 member team. There are two meetings −
• Kickoff Meeting
• Estimation Meeting
• Kickoff Meeting
• Agenda:
1.Introduction
1.Overview of Wideband Delphi methodology.
2.Importance and goals of the estimation.
2.Project Scope
1.Define and discuss the scope of work.
2.Clarify requirements and assumptions.
3.Roles and Responsibilities
1.Assign participants (moderator, estimators, etc.).
2.Explain individual contributions.Estimation ProcessOutline the iterative
estimation steps.Set timelines for consensus rounds.
Duration: 30–45 minutes]
Attendees: Project team and key stakeholders
• Agenda:
• Review Scope and Assumptions
1. Confirm task details and clarify assumptions.
2. Initial EstimatesEach participant provides individual estimates
anonymously.
3. Discussion of VarianceModerator facilitates discussion on significant
differences in estimates.
4. Revised Estimates
• Participants adjust estimates based on the discussion.
1. Finalize Estimates
• Agree on a consensus estimate for each task.
• Next Steps
Wideband Delphi Technique – Steps
• Step 1 − Choose the Estimation team and a moderator.
• Step 2 − The moderator conducts the kickoff meeting, in which the team is
presented with the problem specification and a high level task list, any
assumptions or project constraints. The team discusses on the problem and
estimation issues, if any. They also decide on the units of estimation. The
moderator guides the entire discussion, monitors time and after the kickoff
meeting, prepares a structured document containing problem specification, high
level task list, assumptions, and the units of estimation that are decided. He then
forwards copies of this document for the next step.
• Step 3 − Each Estimation team member then individually generates a detailed
WBS, estimates each task in the WBS, and documents the assumptions made.
• Step 4 − The moderator calls the Estimation team for the Estimation
meeting. If any of the Estimation team members respond saying that
the estimates are not ready, the moderator gives more time and
resends the Meeting Invite.
• Step 5 − The entire Estimation team assembles for the estimation
meeting.
• Step 5.1 − At the beginning of the Estimation meeting, the moderator
collects the initial estimates from each of the team members.
• Step 5.2 − He then plots a chart on the whiteboard. He plots each
member’s total project estimate as an X on the Round 1 line, without
disclosing the corresponding names. The Estimation team gets an
idea of the range of estimates, which initially may be large.
• Step 5.3 − Each team member reads aloud the detailed task list that
he/she made, identifying any assumptions made and raising any
questions or issues. The task estimates are not disclosed.
• The individual detailed task lists contribute to a more complete task
list when combined.
• Step 5.4 − The team then discusses any doubt/problem they have
about the tasks they have arrived at, assumptions made, and
estimation issues.
• Step 5.5 − Each team member then revisits his/her task list and
assumptions, and makes changes if necessary. The task estimates
also may require adjustments based on the discussion, which are
noted as +N Hrs. for more effort and –N Hrs. for less effort.
• The team members then combine the changes in the task estimates
to arrive at the total project estimate.
• Step 5.6 − The moderator collects the changed estimates
from all the team members and plots them on the Round 2
line.
• In this round, the range will be narrower compared to the
earlier one, as it is more consensus based.
• Step 5.7 − The team then discusses the task modifications they have made
and the assumptions.
• Step 5.8 − Each team member then revisits his/her task list and
assumptions, and makes changes if necessary. The task estimates may also
require adjustments based on the discussion.
• The team members then once again combine the changes in the task
estimate to arrive at the total project estimate.
• Step 5.9 − The moderator collects the changed estimates from all the
members again and plots them on the Round 3 line.
• Again, in this round, the range will be narrower compared to the earlier one.
• Step 5.10 − Steps 5.7, 5.8, 5.9 are repeated till one of the following criteria
is met −
• Results are met to an acceptably fine range.
• All team members are unwilling to change their latest estimates.
• The allotted Estimation meeting time is over.
• Step 6 − The Project Manager then assembles the results
from the Estimation meeting.
• Step 6.1 − He compiles the individual task lists and the
corresponding estimates into a single master task list.
• Step 6.2 − He also combines the individual lists of
assumptions.
• Step 6.3 − He then reviews the final task list with the
Estimation team.
All Steps in One Flowchart
Individual Preparation forms
• After kickoff meeting, moderator writes down
assumptions and tasks generated by team &
distributes them.
•
TMs independently generates a set of preparation
results, thatfor
– Estimate contains
each of the tasks
– Any additional tasks that should be included in WBS
missed by Team during kickoff meeting.
–
Any assumptions that TM made in order to create the
– estimates
Any effort related to project overhead (status meetings,
reports, vacation, etc) should NOT be taken into account.
– Should be added to the “Project overhead tasks”
section.
Potential delays, (like certain tasks can’t start until after
• specific dates) NOT be taken into account. Should be
Eachadded to theshould
estimate “Calendar waitingintime”
be made section.
terms of effort, not
calendar time.
Estimation Form
Summarized Estimation Results sheet
Advantages and Disadvantages of Wideband Delphi Technique
Advantages
• Wideband Delphi Technique is a consensus-based estimation technique for estimating effort.
• Useful when estimating time to do a task.
• Participation of experienced people and they individually estimating would lead to reliable results.
• People who would do the work are making estimates thus making valid estimates.
• Anonymity(invisibility) maintained throughout makes it possible for everyone to express their
results confidently.
• A very simple technique.
• Assumptions are documented, discussed and agreed.
Disadvantages
• Management support is required.
• The estimation results may not be what the management wants to hear.
Functional Point (FP) Analysis
• Allan J. Albrecht initially developed function Point Analysis in 1979 at IBM and it
has been further modified by the International Function Point Users Group
(IFPUG).
• FPA is used to make estimate of the software project, including its testing in terms
of functionality or function size of the software product. However, functional point
analysis may be used for the test estimation of the product.
• The functional size of the product is measured in terms of the function point,
which is a standard of measurement to measure the software application.
Objectives of FPA:
The objective of FPA is to measure functionality that the user requests and receives.
The objective of FPA is to measure software development and maintenance
independently of technology used for implementation.
It should be simple enough to minimize the overhead of the measurement process.
It should be a consistent measure among various projects and organizations.
Types of FPA:
1. Transactional Functional Type –
1. (i) External Input (EI): EI processes data or control information that comes
from outside the application’s boundary. The EI is an elementary process.
2. (ii) External Output (EO): EO is an elementary process that generates data
or control information sent outside the application’s boundary.
3. (iii) External Inquiries (EQ): EQ is an elementary process made up of an
input-output combination that results in data retrieval.
2. Data Functional Type –
1. (i) Internal Logical File (ILF): A user identifiable group of logically related
data or control information maintained within the boundary of the application.
2. (ii) External Interface File (EIF): A group of user recognizable logically
related data allusion to the software but maintained within the boundary of
another software.
Following are the points regarding FPs
• 1. FPs of an application is found out by counting the
number and types of functions used in the
applications. Various functions used in an application
can be put under five types, as shown in Table:
Types of FP Attributes:-
Measurements Parameters Examples
1.Number of External Inputs(EI) Input screen and tables
Function
Low Avg High
Units
EI 3 4 6
EO 4 5 7
EQ 3 4 6
ILF 7 10 15
EIF 5 7 10
Calculation of Function Point (FP)
• Function Point (FP) is an element of software development which helps to approximate the cost
of development early in the process. It may measures functionality from user’s point of view.
Counting Function Point (FP):
Step-1:
F = 14 * scale
(General system characteristics are 14 parameters that’s why F=14)
Scale varies from 0 to 5 according to character of Complexity Adjustment Factor (CAF). Below table
shows scale:
0 - No Influence
1 - Incidental
2 - Moderate
3 - Average
4 - Significant
5 - Essential
Step-2: Calculate Complexity Adjustment Factor (CAF).
CAF = 0.65 + ( 0.01 * F )
Step-3: Multiply each individual function point to corresponding values in
TABLE.
Step-4: Calculate Unadjusted Function Point (UFP). TABLE (Required)
KPAs:
14. Quantitative Process Management (QP)
15. Software Quality Management (QM)
CMM – Level 5 – Optimizing level
Organizations working at this level not only collect process and product metrics, but analyze
them to identify scopes for improving and optimizing the various development (engineering)
and management activities. Lessons learnt from specific projects are incorporated in relevant
processes.
Emphasis on-
• Process improvement
• Tools to identify weaknesses existing in their processes
• Make timely corrections
•Identification and use of latest tools and technologies including innovative ideas.
KPAs:
16. Defect Prevention (DP)
17. Technology Change Management (TM)
18. Process Change Management (PC)
Software Configuration Management- SCM
What is meant by software configuration?
To "configure software" means selecting programmable options that make the program
function to the user's liking. To "configure hardware" means assembling desired
components for a custom system as well as selecting options in the user-
programmable parts of the system.
What is SCM?
• In Software Engineering, Software Configuration Management(SCM) is a process to
systematically manage, organize, and control the changes in the documents, codes,
and other entities during the Software Development Life Cycle. The primary goal is
to increase productivity with minimal mistakes.
What is the purpose of software configuration management?
The software configuration management process identifies the functional and physical
attributes of software at critical points in time, and implements procedures to control
changes to an identified attribute with the objective of maintaining software integrity
and traceability throughout the software life cycle.
Any change in the software configuration Items will affect the final product. Therefore,
changes to configuration items need to be controlled and managed.
Tasks in SCM process
• Configuration Identification:- Configuration identification is a method of determining the
scope of the software system. With the help of this step, you can manage or control
something even if you don't know what it is. Ex. Identification of configuration Items like
source code modules, test case, and requirements specification.
Example:
• Instead of naming a File login.php its should be named login_v1.2.php where v1.2 stands
for the version number of the file
• Instead of naming folder “Code” it should be named “Code_D” where D represents code
should be backed up daily.
• Baselines:- A baseline is a formally accepted version of a software configuration item. It is
designated and fixed at a specific time while conducting the SCM process. It can only be
changed through formal change control procedures. In simple words, baseline means
ready for release.
• .
• Change Control:- Change control is a procedural method which ensures quality
and consistency when changes are made in the configuration object. In this step,
the change request is submitted to software configuration manager. Ex. Control
ad-hoc change to build stable software development environment. The request
will be checked based on the technical merit, possible side effects and overall
impact on other configuration objects.
• Configuration Status Accounting:- Configuration status accounting tracks each
release during the SCM process. This stage involves tracking what each version
has and the changes that lead to this version. Ex. Keeps a record of all the
changes made to the previous baseline to reach a new baseline
• Configuration Audits and Reviews:- Software Configuration audits verify that all
the software product satisfies the baseline needs. It ensures that what is built is
what is delivered. Configuration auditing is conducted by auditors by checking
that defined processes are being followed and ensuring that the SCM goals are
satisfied
Key Benefits Of Configuration Management
• Helps in developing coordination amongst involved team members from
all groups
• Assists in managing costs included in updating the system by avoiding
duplication
• Ensures that your business system is well understood and functions
carefully
• Satisfies all requirements of the organization including service, solution,
and product deliverables
• Enhances efficiency, control, and visibility across the system
• Ensures a reliable, fast, and improved process by correcting incorrect
configurations that could influence performance
• Offers effective change management process and quick renewal of
services in case of component failure
Popular Configuration Management Tools
• Puppet
• Chef
• Ansible
• Red Hat Ansible
• CFEngine
Any Questions..?
Thank You….!