This small course covers basic concepts of Function Point Analysis, and Software Non-Functional Assessment process.
It explains the importance of using Function Point Analysis in simple & lucid language.
It explains some practical software project scenarios, where Function Points and SNAP can be applied.
At the end, it discusses benefits of using Function Points for IT organizations.
2. Why we should count Function Points?
❖ What are Function Points?
❖ Why our clients ask for Function points?
❖ We are Designers & Project Managers and FP counting is not our work
❖ Function Point Counting is very complex and not consistent
❖ We do not have time to count Function Points
❖ Software development and delivery would be affected if we spend time in
calculating FP
❖ Is it possible to size all development / design / testing work using Function
points?
❖ What’s in it for us? How do we benefit from FP?
Project Team
3. What are Function Points?
✓ What are Function points?
✓ Function point counting is a software sizing method
✓ Distance is measured in Kilometers, Area is measured in Square Feet and Software Size is
measured in Function points
✓ It is a measurement of information processing content of a system’s delivered functionality
✓ FPA Measures the Functional Size by looking at the (Functional) Transactions and (Logical)
Data Files that are relevant to the User in the Business
✓ A function point count is accomplished by using the information in a language that is
understood by both business user (s) and developer(s)
Project Team
FP Expert
4. Why clients ask for Function Points?
✓ Why clients ask for Function points?
✓ Function points size is widely accepted standard for measuring software size across IT industry
✓ ISBSG (International Software Benchmarking Standards Group) uses IFPUG Function points and SNAP
as sizing standards, for performing productivity analysis and benchmarking
✓ Imagine that, you are a Client and you would like to know the productivity of all vendors who are
providing you software services, and also you would like to reward a vendor who is more productive
✓ As a client, you must know cost effectiveness (Cost/FP), productivity (Efforts/FP), quality (Defects/FP)
of your vendors
✓ As a client, you will be interested in reducing Cost/FP, Efforts/FP and Defects/FP so that you can
build and maintain your software platforms at an optimum cost while maintaining high quality
✓ Having FP size for all work packages/releases helps to have standard and consistent measurement of
size
Designers
FP Expert
5. Why Designers should count Function Points?
❖ We are Designers and FP counting is not our work
Designers
FP Expert
✓ Component Designers are well connected with E2E designers (outside the application)
and Developers (within applications), so that they are able to justify the functional/ non-
functional changes in the requirements
✓ Designers have the bigger picture, as how individual Application fits into a larger
architecture / end to end architecture of the client
✓ Designers can map the technical details, into Functional Transactions and Data Functions
✓ Lead Designers can guide their teams in counting Function points
6. How to understand Function Points?
❖ We think, Function Point Counting is very complex and not consistent
Designers
FP Expert
✓ FP counting is independent of technical implementation, programming language and platform
✓ FP counting is based on counting practices and is very well defined
✓ Function point counting uses the concept of Application Boundary which is easy to understand
✓ FP counting is dependent on the user’s external business view of the application
✓ FP counting is very transparent way of sizing software, which is understood by clients, business users, and
designers/developers
✓ High quality training can help to understand the FP concepts
✓ Practical counting experience would increase the expertise over a period of time
Application
Internal
Logical File
(ILF)
External Input (EI)
External Output (EO)
External Inquiry (EQ)
External Input (EI)
External Output (EO)
External
Interface File (EIF)
External Application
7. How to count Function Points in less time?
❖ Counting Function points is time consuming. Are there any ways to reduce the time?
❖ Software development and delivery would be affected if we spend time in calculating FP
Designers
FP
Expert
✓ Yes, There are following ways which can reduce overall counting time, with minimal impact on accuracy of
the FP count
▪ Estimated Function points by NESMA counts FP size at high level with
deviation of only +/-5 %.
▪ Gartner Fast Function points is faster and easier to learn and has high counting speed. FP accuracy is
within +/- 2-6% of Detail FP count.
▪ These methods can be used to arrive at FP count, during early stages of project such as RFP.
▪ Delivery Managers can use this FP count to arrive at Cost and then use it in Commercial Proposal.
▪ If you maintain FP baseline, then it can standardize all transactions and data functions making further FP
calculations easy.
▪ FP baseline template can be used and customized for multiple clients.
▪ If there is scope creep during various stages of project lifecycle, you can size new/changed requirements to
arrive at changed FP size
▪ You can negotiate cost with clients, by highlighting them changed FP size.
▪ By planning time for FP counting in the estimates, Delivery Managers can ensure that, your delivery would
not be impacted due to this FP calculation work
8. Do we need anything beyond Function points?
❖ Is it possible to size all development / design / testing work using Function points?
❖ How about performance improvement, user manual preparations, copying data internally within tables, improving UI, building same
software on two platforms, adding configurations in tables?Designers
FP Expert
✓ Broadly all work is divided into two categories – Functional and Non-functional work
✓ Functional work is sized using Function points
✓ Some of the non-functional work can be sized using SNAP (Software Non-functional Assessment Process). This can include user
manual preparations, copying data internally within tables, improving UI, building same software on two platforms, adding
configurations in tables
✓ Following work may not be sized using FP or SNAP both:
▪ Maintenance & Support / Second Line Support / Third Line Support
▪ Business Analysis / Market Research / Consulting to chalk out product strategy
▪ Rapid Impact Assessment / Feasibility Study / Design Consultancy
▪ Standalone Environment Management – Hardware upgrade
▪ Network testing and performance tuning – as a stand alone work
▪ Knowledge Transition from one vendor to another vendor
▪ Configuration Management – as a standalone work
▪ Service Design and Management as a part of post sales order processing & management of various products
▪ Back office operations
▪ E2E Delivery Management or E2E Design across applications (as a standalone work)
▪ Disaster Recovery and Infrastructure support
▪ Providing Technical Writer support
9. How do we benefit from FP?
❖ What’s in it for us? How do we benefit from FP?
Project
Managers
FP Expert
❖ You can calculate FP size at requirement phase and at high level design phase
❖ You can calculate FP size for various components/modules to estimate & plan schedule
❖ You can track changes in FP size if there is any change in scope
❖ You can negotiate with client based on changed FP size and scope
❖ You can monitor Cost/FP, Efforts/FP and Defects/FP at the end of the project/release
❖ You can use these metrics to improve cost efficiency and productivity of the project
❖ You can manage quality better of future project deliveries
❖ You can plan resources better for future project deliveries
10. Sizing various scenarios
✓ You can count creation of new physical table for ‘Order Details’ as ILF, in FP
calculation.
✓ All the screens / functionality for ‘Add Order’, ‘Modify Order’ and ‘Delete
Order’ should be counted as EI Transactions, in FP size.
• We are creating new physical tables for storing ‘Order Details’ in Telecom
Application. How can we size it?
• We are developing new screens for ‘Add Order’, ‘Modify Order’ and
‘Delete Order’ functionality in Telecom Application. Can we size it using
FP?
11. Sizing various scenarios
✓ If the output consists of complex derived data or mathematical calculations, count
it as EO else you can count it as EQ.
✓ You can count the web interface as ‘External Interface File (EIF)’ in the ‘Order
Management Application’. You are building an interface with external application
with primary intent to refer the data maintained by that external application,
hence this is EIF.
• We are developing functionality to show a list of all Mutual Funds having ‘5 Star
rating’ and ‘annual returns > 10%’, in Mutual Fund Application. We are not sure
whether this is EQ or EO Transaction?
• We are building new web interface between our ‘Order Management Application’
and ‘Customer Management Application’, to fetch customer address and contact
numbers. How should we count this web interface in ‘Order Management
Application’?
12. Sizing various scenarios
✓ Since ‘Create Fixed Deposit’ journey involves functional change, you can count it in
FP transaction as Changed EI. Also, you can count it using “Data Entry validation”
sub-category in SNAP count.
✓ Generating account statement in PDF format provides multiple output formats to
user, hence you can count it using “Multiple output methods” sub-category of SNAP.
This is not a functional change, hence FP is not applicable here.
• We are adding new data entry validation in ‘Create Fixed Deposit’ journey of
Banking application, where by we are ensuring that FD can not be created for > 10
years. How can we size it using FP and SNAP?
• We are adding new way of generating account statement, for banking application.
In addition to web report, user can now save same report in PDF format. There is no
change in functionality. How can we count it?
13. Sizing various scenarios
• We are adding data encryption in Banking transactions. This is purely technical change.
How can we count it in SNAP?
• We offer new products and services in Telecom application, by performing data
configurations. Since this is manual configuration activity, we can not count it using FP
transactions. Can we count it in SNAP?
✓ Adding data encryption in Banking transactions, deals with structure / format, in a
transaction and not directly relevant to functionality that is seen by the user.
You can count it using “Data Formatting” sub-category of SNAP.
✓ By offering new products and services, you are providing additional unique business value
to users that is provided by adding, changing or deleting reference data/ code data from
the database.
This can be counted using sub-category “Delivering Added Value to Users by Data
Configuration” in SNAP.
14. • We are adding feature for ‘Processing of same input from a new network in Telecom Rating
software’.
All parameters coming into the application are same and processing logic is also same,
hence we are not sure how to count this.
• We are using in house and third party components both in Retail shopping web site. This
involves additional technical complexity apart from functional changes, but we are not
able to size all technical complexities
✓ In ‘Processing same input from a new network’, you are adding more input/output
interfaces without changing the functionality. It is not considered functional change and
hence such changes are not sized using FP.
You can size it using “Multiple Input/output Interfaces” sub-category of SNAP.
✓ You can size the non-functional complexity of using multiple components in Retail
shopping site, using the sub-category ‘Component based software’.
It covers pieces of software used within the boundary of the assessed application to
integrate with previously-existing software or to build components in the system.
Sizing various scenarios
15. Sizing various scenarios
• We are enhancing “Online Help” in e-commerce application.
How can we count this work?
• We are improving performance of Payment journey in Billing application, by creating a
view on existing set of database tables, so that journey refers this view instead of
underlying tables.
This is internal view and we are not able to size it using FP. How can we size it?
✓ If providing ‘Online Help’ involves any functional change, you can count using EQ
transactions in FP.
If this is static non-functional Help, then this can be counted using sub-category ‘Help
Methods’ in SNAP.
✓ Creating internal views can be counted using "Database Technology" sub-category in
SNAP.
Since this is non-functional requirement, SNAP can be used here.
16. Sizing various scenarios
• We currently have functionality to accept Internet Data pack selection through web
page, and now we are providing this same functionality through SMS.
Is this countable using FP?
• We are doing lot of technical work to support our e-commerce web site across multiple
web browsers, but not sure whether we can size this.
✓ Functionality to accept internet data pack, includes providing same functionality using
two channels i.e. Web page and SMS. You can not count it in FP.
You can use ‘Multiple Input Methods’ sub-category of SNAP to size it.
✓ Supporting e-commerce web site across multiple web browsers, can be counted using
sub-category ‘Multiple platforms’ in SNAP.
Operations that are provided to support the ability of the software to work on more
than one platform, can be counted using SNAP.
17. Software Project Management Challenges
• Measuring productivity of software project / team
• Accurate estimation of efforts for software development / enhancement
• Managing continuous change in user requirements and scope
• Tracking and improving quality of code
• Delivery of software within budget
Software Sizing using “Function Points” can help Project Managers overcome
some of these challenges
18. Effective Project Management using Function Points
• Map project scope to FP size
• Estimate Efforts accurately using
benchmarks
• Estimate and Schedule resources
better
• Assess risk of re-engineering of
application better
Plan Project
• Monitor scope creep using FP
size
• Access and Prioritize
requirements better
• Negotiate with customer using
FP size
Execute Project
• Plan resources for support better
• Plan ASM budget better
• Benchmarking of Cost/FP,
Efforts/FP and Defects/FP
• Identify areas for improvement
Analyze Project
21. Course Name: Function Point Analysis & Estimation
Prerequisites
• Microsoft Office Suite with Excel, Word
• Adobe Acrobat Reader
• Virtual Training Software license (Example: Go to Meeting, Go to Training etc.)
Course Delivery
• 16 hours (2 Days)
Post Training Support
• Telephonic and email assistance in resolving any queries from participants for a period of one month.
Course Deliverables
Following soft copies will be provided to all the participants.
• Course content in PDF file.
• Sample Case studies with answers in PDF file.
22. Course content in detail
Day 1 (Duration - 8 hours)
• Overview of Function points
• Advantages of Function points
• Types of Function Point counts – Indicative, Estimated, Detailed
• Scope of the count and Application boundary
• Counting rules for Data Functions – ILF
• Counting rules for Data Functions – EIF
• Counting rules for DET and RET
• Counting Development FP for Data Functions in Real Life using example
Day 2 (Duration - 8 hours):
• Counting rules for Transaction functions
• Processing logic for Transaction functions – EI, EQ, EO
• Counting FP in Practical situations
• Counting Development FP for Transaction Functions in Real Life using example
• Enhancement FP - Counting rules and method
• Counting Enhancement FP in Real Life using example
• Counting Application FP using General System characteristics
• FP counting exercises (About 5 exercises based on different practical scenarios)
• Mapping software size (FP) to Efforts to assist in effort estimation
• Q/A Session