# Function Point Analysis

kri shan
Ranch Hand
Posts: 1467
What is the Function Point Analysis and how it helps for project estimation and scheduling?

Lasse Koskela
author
Sheriff
Posts: 11962
5
Function Point Analysis is a technique for assigning function points to the software being developed based on a number of rules. The aim is to be able to predictably estimate the required effort once you have the total number of function points for the product. I haven't tried FPA myself and I don't know anyone who has used it for real so I can't comment on how well it works.

I assume you've already gone through the first few pages of what Google returns when searching for "function point analysis"? There's also a book on the topic, if you're interested.

kri shan
Ranch Hand
Posts: 1467
HI Lasse, then how are you doing effort estimation (based on the number of use cases / use case functionality) ?

Scott Ambler
author
Ranch Hand
Posts: 608
I've unfortunately done FPA in the past and frankly find it a complete waste of time.

Effective estimates:
1. Are done on small things.
2. Done by people who have done the work before.
3. Done by the people responsible for doing the work.

FPA is a great way to justify a bureaucrats job, that's about it. If you work for a big consulting company and want to increase your billable hours, FPA is a wonderful way to do it. If you want to build software, FPA is a bad joke.

- Scott

Lasse Koskela
author
Sheriff
Posts: 11962
5
Originally posted by kri shan:
HI Lasse, then how are you doing effort estimation (based on the number of use cases / use case functionality) ?

Past experience. I evaluate the complexity of a given problem against my past experiences with similarly complex problems. If such past experience (i.e. close enough to the given problem) is not available, I resort to experimenting a bit (with pen and paper, the IDE, whiteboard, whatever) until I have a better idea of what's involved and then give an estimate.

Ilja Preuss
author
Sheriff
Posts: 14112
One good strategy for estimation is the XP Planning Game.

Basically, you break down the requirements into small chunks that you think you could do in perhaps some days. Than give each chunk a number: 1 is easy, 2 will take roughly twice as long as 1, 3 three times as long. Anything bigger needs to be split up.

Then you *measure* how many of those points your team can do in a week, simply by implementing the most important chunks. Doing the math will give you a reasonable estimate for how long the whole project will take.

Ilja Preuss
author
Sheriff
Posts: 14112
Moving to the Process forum...

Dinaker Yanamandala
Greenhorn
Posts: 9
Function points are used for schedule/estimation during requirements phase.
i believe there are about 7-8 different types of functional points.

A lot of cost/schedule estimation tools use function points in pre-architecture phase.

kri shan
Ranch Hand
Posts: 1467
Hi Dinaker, What are the different types of functional points ??

Abdulla Mamuwala
Ranch Hand
Posts: 225
Hi Kri shan

I have done my Masters thesis on Function Point Analysis, in which I have done a detailed research on the different kinds of function point analysis techniques. If you want I can email you my thesis, may be it might help you answer some of your doubts.

Ilja Preuss
author
Sheriff
Posts: 14112
Originally posted by Abdulla Mamuwala:
Hi Kri shan

I have done my Masters thesis on Function Point Analysis, in which I have done a detailed research on the different kinds of function point analysis techniques. If you want I can email you my thesis, may be it might help you answer some of your doubts.

I guess there might some more people be interested (I'd like to take a look at it, too - I have no idea how FPA works...). Can you make it downloadable somewhere?

Dinaker Yanamandala
Greenhorn
Posts: 9
http://www.sei.cmu.edu/str/descriptions/fpa_body.html

I was refering to outputs, inputs, inquiries, files, and Interfaces which are 5 not 7 or 8 as i mentioned.

FPA is one of the best ways to estimate schedule/cost during inception phase where you have a very high level requirements.

Abdulla Mamuwala
Ranch Hand
Posts: 225
Hi Ilja

Java Universe

Please click the Thesis link under Asteroids, it is marked with an asterick(*).

Please note that in my thesis I have used the concept of entropic model to FPA, therefore the first two chapters talk about the entropic model. Starting from the third chapter onwards FPA is discussed in detail. You will also find a copy of index to the thesis, which might be useful to locate the resources you are interested.

Ilja Preuss
author
Sheriff
Posts: 14112
Got it, thanks!

Did you need to get a certain number of pages? The double line spacing makes for a straining read - good thing that I could change that before printing it...

Abdulla Mamuwala
Ranch Hand
Posts: 225
Hi Ilja

My University formating pattern required me to have the double spacing, but it did help

Pieter Schmidt
Greenhorn
Posts: 5
Originally posted by kri shan:
HI Lasse, then how are you doing effort estimation (based on the number of use cases / use case functionality) ?

You can perform use case point estimation (UCP) which can useful to get a 'ball-park' figure early on in the project. I have used this technique recently on a project I was managing and the result was within 20% of the final amount of time taken. If you want to find an article and also a fully functional tool for download go look at this site http://www.liemur.com/Articles/UseCasePointEstimation.html

Mark Spritzler
ranger
Sheriff
Posts: 17278
6
"drone"-

JavaRanch Naming Policy.

You can change it

here.

Thanks! and welcome to the JavaRanch!

Mark

pawel szczypek
Greenhorn
Posts: 1
Ilja

Can you sent me your master thesis on FPA. I can't get there through the link you provided.

My mail: pawel.szczypek@wp.pl

Tx

James Coplien
author
Greenhorn
Posts: 22
I have found function points to be another one of those things that falls into the category of reading goat entrails and stars in the heavens. They are like methodology in that they become the explicit socialization focus, in a given culture, for talking about its own largely tacit experience. I don't think it's the function points that have value, but the discussion around them. Plans are useless: planning is invaluable (Eisenhower).

I come from telecom where most of the interesting work doesn't come from functional requirements. 80% of the code in a class 5 switch reflects non-functional requirements. How many function points is "30 seconds of down time per year for all reasons"? And--no--it doesn't break down into smaller functional requirements. It is an emergent property that arises as a gestalt.

Maybe function points work in MIS, and maybe they work because there is such a high constant overhead per task (the methodology crap) that the actual complexity of the task is irrelevant.

I don't find the XP planning game to be any different -- except, because it really only works in small groups, the variance is greater (bad news) and there is more socialization of history and experience (good news). The value of the XP planning game (most of whose elements you find in the Organizational Patterns) is found in the patterns Completion Head Room, Work Queue and Recommitment Meeting. That is, it's brutally honest about what to do when estimation goes wrong, as it inevitably does in a changing world.

I think the bottom line for me, which recurs above in this thread, is experience.

I will have a look at the thesis as I'm always willing to have my mind changed, but I'm going in as a skeptic.

Ilja Preuss
author
Sheriff
Posts: 14112
Originally posted by James Coplien:
Maybe function points work in MIS, and maybe they work because there is such a high constant overhead per task (the methodology crap) that the actual complexity of the task is irrelevant.

I don't find the XP planning game to be any different

One interesting trend is that more and more XP teams are reporting that they don't estimate stories any longer. They break down their stories until they are at a size of just a few days of work, and then only count them, which already gives them a reasonable estimate. Due to the high number of stories, variations in size just compensate for each other.