invented meathod for measuring the size of a software project
. Designed to abstract the specific technologies used in a given application in such a way as to allow all applications to be measured on a level playing field
In order to accomplish this, Function Point Analysis requires an application to be analyzed from the end-users's POV, taking into account such things as the data flow across the application boundary, and the logical groups of data maintained and/or referenced by the application. In so doing, Function Point Analysis largely ignores the complexities of programming in a specific language or, for that matter, carrying out specific programming tasks that may be required to build the application in question. Rather, Function Point Analysis primarily considers the inputs and outputs that the application will deliver, and more or less assumes that these are independent of the underlying infrastructure or language used.
Because Function Points Analysis is done from the end-user's perspective, often times technical folks (programmers, developers etc.) have the hardest time understanding them. Bottom line is it takes a bit of training and a lot of practice to become proficient at Function Point Analysis.
Function Point Analysis is flawed. Applications that do not perform a lot of I/O but do perform a lot of internal processing appear to be small projects when measured using this method, even though the polar opposite may be the case. Likewise, projects that involve a lot of look and feel changes also are considered small using this method. In fairness, this is somewhat true - how much do you really accomplish when you change the look and feel of something? - but this in no way speaks to the effort of actually doing it.
Of course, once you can measure the size of a project, people want to use this data to estimate the effort involved. To accomplish this, delivery rates are used - a delivery rate is a number indicating how many function points can be delivered per person per month. Fortunately, these delivery rates are somewhat flexible, and are generally based on industry experience.
The International Function Point Users Group maintains the Function Point methodology, and also provides members with delivery rate data.