Early Function Point Analysis and Consistent Cost Estimating. "You cannot apply FPA in early stages of the software development process, so the practice of budgeting software development Function Point Analysis (FPA) is useless."
"You need a high level of detail of the software requirements before you can successfully apply FPA."
"Cost estimating and budgeting early in the software development lifecycle using FPA takes lots of time and is inaccurate. It’s not worth the effort".
No! No! No! These are widespread misunderstandings, that prevent people to benefit from FPA at virtually any moment!
Adri Timp’s presentation shows how to apply FPA in early stages of development or enhancement and how to maintain a consistent size and cost estimation approach throughout the software development lifecycle:
- Estimating the functional size of a development or enhancement project, if not all of the details of the software
requirements are known;
- Estimating the functional size if all the details of the software requirements are known, but it is required to significantly speed up the FPA process, using default values for complexity;
- Estimating the functional size, if only the data functions are known;
- Dealing with autonomous growth: autonomous growth occurs through revealing functionality while detailing the
specifications and this functionality was not originally counted;
- Dealing with scope creep: scope creep leads to new functionality which would not have been found even with more detailed specifications;
- How to maintain a consistent size and cost estimation approach throughout the software development lifecycle.
The Functional Sizing Standards Committee (FFSC) of IFPUG will release a uTip guide about this subject later in the year.
Early Function Point Analysis and Consistent Cost Estimating (2015-04-30) - Adri Timp
1. Adri Timp
IFPUG Functional Sizing Standards Committee
Adri.Timp@ifpug.org
ISMA-10
Charlotte, April 30, 2015
2. Agenda Topics
The need for formal FPA approximation methods
Two approximation methods
High Level FPA Method
Indicative FPA Method
Accuracy of these methods
Maintain a consistent size and cost estimation
approach throughout the development life cycle
(how to account for growth)
April 30, 2015 ISMA-10 2
3. Common misconceptions
regarding the use of FPA
FPA cannot be applied in early stages of the development
process, so in the practice of budgeting FPA is useless
Highly detailed functional user requirements are needed
before FPA can be applied
Cost estimating using FPA takes lots of time, it’s not worth
the effort
April 30, 2015 ISMA-10 3
4. Measuring or Approximating FP
The CPM states (CPM 4.3.1, part 2, page 3-8):
Determine whether you are approximating or measuring
the size
Approximating permits assumptions to be made about
unknown functions and/or their complexity in order to
determine an approximate functional size
Measuring includes the identification of all functions and
their associated complexity
April 30, 2015 ISMA-10 4
5. IFPUG & Approximating
The CPM does not provide a method for approximating
This is a challenge for IFPUG, because the organization does
not formally address the need for early and fast FPA
Some vendors have their own “Early and fast FPA methods”,
claiming their methods are “better” than IFPUG FPA
There is no standardization, so no comparable results
Approximation methods extend the applicability and so the
acceptance of IFPUG FPA
April 30, 2015 ISMA-10 5
6. Estimating the functional size
Two major reasons to estimate the functional size of a
project instead of performing a detailed FPA are:
Details of the functional user requirements are not known
There is not adequate time to perform a detailed FPA
April 30, 2015 ISMA-10 6
7. Detailed IFPUG FPA method
Identify all functions (ILF, EIF, EI, EO, EQ)
Identify DETs, FTRs, and RETs
Rate the complexity of each function (Low, Average, High)
Assign the function point values and total
April 30, 2015 ISMA-10 7
8. Two FPA estimating methods
High Level FPA Method (bird’s eye view)
Identify all functions (ILF, EIF, EI, EO, EQ)
Rate the complexity of an ILF and EIF as Low
and an EI, EO, EQ as Average
Assign the function point values and total
Indicative FPA Method (rough order of magnitude)
Functional size = 35 x number of ILFs + 15 x number of EIFs
Factors (35, 15) based on a projected ratio including likely
transactions for each data function
Experience has shown that it is a suitable approximation
April 30, 2015 ISMA-10 8
9. Example Indicative FPA Method
April 30, 2015 ISMA-10 9
Based on the high level Functional User Requirements
the following Logical Files are identified
Customer and Product data (ILFs)
Supplier data (EIF)
10. Example High Level FPA Method
April 30, 2015 ISMA-10 10
Functional User Requirements
User needs to add, change, delete Customer data,
wants to inquire on Customer, and also requires four
reports on Customer with calculated data
User wants to add, change, delete Product data, wants
to inquire on Product, and also requires a report on
Product with calculated data
User wants to inquire on Supplier using supplier
number, and also requires a report on Supplier with
totaling results
13. Accuracy of High Level & Indicative methods
About 100 developed and implemented applications were
analyzed by NESMA on the accuracy
The implemented applications were measured using all
three methods. The results are in the following graphs
There is a good correlation (straight line) for both the
High Level FPA Method and the Indicative FPA Method,
compared to the Detailed FPA Method
April 30, 2015 ISMA-10 13
15. High Level FPA graph
Results of a High Level FPA are typically very well
Some companies use High Level FPA only (no detailed FPA
any more), because they believe there is no statistically
significant difference in the results of both approaches
If it works for a company, it works
It significantly speeds up the sizing process and might
lower the threshold within an organization to accept FPA
But even more importantly, it enables you to size in early
stages of development!
April 30, 2015 ISMA-10 15
17. Indicative FPA graph
Results of the indicative FPA estimates are quite good
However, there may be considerable deviations (up to
about 50%) in some cases
Be careful using the indicative function point estimate
The strength of this method is that one easily gets a
rough estimate (the rough order of magnitude) of the size
April 30, 2015 ISMA-10 17
18. Sizing during the project life cycle
During the development life cycle, whatever FPA method
is used, the results are always an approximation of the
delivered functionality
Even the Detailed FPA Method provides an estimate,
because the RETs, DETs, and FTRs may not be correctly
identified or may change, resulting in a delivered
functional size that is higher or lower than was estimated
early in the development life cycle
April 30, 2015 ISMA-10 18
19. Consistent Sizing & Cost Estimating
For Consistent Sizing and Consistent Cost Estimating an
FPA Approximation Method alone is not enough…
From the beginning it is necessary to account for growth
Growth is the increase in function points later in the
project
Growth can occur due to autonomous growth and/or
scope creep
April 30, 2015 ISMA-10 19
20. Autonomous Growth
Occurs through revealing functionality while refining and
having a closer look at the functional user requirements
Is functionality already included in the requirements, but
not originally recognized and so not (yet) counted
Not real change due to additional user requirements, but
just a change in counted function points as the project
progresses
A (virtual) growth in function points, but no growth in
user requirements
April 30, 2015 ISMA-10 20
21. Scope Creep
Occurs through addition of new requirements by the user
Generates function points that would not have been
found even after refining the requirements
Example: “After due consideration, I also want to have the
option to delete customers”
Is easier to manage and to understand than autonomous
growth
If requirements are added, it is a change, the size of the
project really changes and the impact to the budget
should be addressed
April 30, 2015 ISMA-10 21
22. Track and take into account
Autonomous Growth
For an effective use of FPA it is important to maintain a
consistent size and cost estimation approach throughout
the development life cycle
For consistency and credibility, take into account the
effect of autonomous growth (revealed function points)
For good cost estimation and prediction, organizations
should track growth percentages from one phase to the
next
April 30, 2015 ISMA-10 22
23. Autonomous Growth Example (1)
Example of autonomous growth for a fictional organization
FPA estimate of requirements in Feasibility Study is 100 fp
Further refining will reveal 40% additional function points, that
can not yet be “seen”
Thus, the projected functional size is 140 FPs
April 30, 2015 ISMA-10 23
24. Autonomous Growth Example (2)
Effort estimates should be based on the projected functional
size of the project
If an organization has a productivity rate of 10 hrs / FP and the
FPA during the Feasibility Phase would end up in 100 FPs, the
effort estimate would be (100 + 40%) x 10 hrs / FP = 1400
hours
Accounting for autonomous growth reduces budget overruns
due to the additional function points even though the
application and the user requirements themselves do not
grow
April 30, 2015 ISMA-10 24
25. Autonomous Growth Example (3)
Compare images taken of a coastline by a satellite: the
coastline seems to be quite straight, and the size
(distance) may appear to be 1,000 miles
But, looking closer and measuring the coast line
determines, that the actual size (distance) is 1,400 miles
April 30, 2015 ISMA-10 25
26. Take into account Scope Creep
It is also common that size grows due to additional
requirements by the user (i.e., scope creep)
This is real growth - which is different than autonomous
growth
To address scope creep, the project can set aside an extra
budget in function points for the user to specify eventual extra
functionality (new function points) later in the project
(management reserve)
When planning the project, factor in scope creep, as well as
the schedule and budget impacts that will occur when the user
requests additional functionality
April 30, 2015 ISMA-10 26
27. Sizing at the end of the project
It is essential to update the functional size upon
completion of the project (implementation count) (see
CPM, part 2, page 4-4)
To get a right picture of the realized productivity rate
(hours/fp)
To get a right picture of the autonomous growth
To get a right picture of the scope creep
To update the company’s data base of empirical data, to be
used for budgeting future projects
April 30, 2015 ISMA-10 27
28. Summary High Level FPA Method
Can be used to size an application early in the
development life cycle. Taking into account the effect of
autonomous growth of each phase one gets a fairly stable
function point size throughout the project.
Can also be applied as alternative to a detailed FPA
method: the outcome is not significantly different, while
the time to execute the FPA is considerably less
Will further increase the acceptance of IFPUG FPA as
method for sizing and cost estimating
April 30, 2015 ISMA-10 28
29. Summary of Indicative FPA Method
Can be used to get a very fast, rough indication of the size
of a project or an application (rough order of magnitude)
Is not suited for contract management
April 30, 2015 ISMA-10 29
31. FAQ
The Functional User Requirements in the Feasibility Study
are, by definition, high level. I did my very best and
counted 200 function points. Due to experience in the
past in this company it is known, that the Autonomous
Growth after this phase is 40%. So I drew up a budget
based on 280 function points.
In the next phase, Analysis, the user said, that he may
“order” an additional 80 function points, because of the
“reserve” I created
Is that correct?
April 30, 2015 ISMA-10 31
33. Early Function Point Analysis
and Consistent Cost Estimating
IFPUG uTip#02
Release summer 2015
www.ifpug.org
uTip available as free download
Adri.Timp@ifpug.org
April 30, 2015 ISMA-10 33