Master Project Estimation with Function Point Analysis

As project managers, we know how important an accurate project estimation is for the success of any project. With the right estimates, project teams can manage expectations, allocate resources effectively and avoid any budget overruns. Despite organizations putting efforts into this process, many projects fail due to inaccurate estimates. In fact, a significant percentage of projects exceed their budget by over 50%, leading to frustration and resource wastage. Poor estimates can also delay timelines and derail the entire project causing stress for everyone involved.

In this article, I will discuss about a method that has been traditionally used by organizations for project estimation and is considered as one of the most effective ways. I will also cover some real examples to help you understand the concept better.

What is Function Point Analysis?

Function Point Analysis (FPA) is a technique used to measure the size and complexity of a software application based on its functionality. It involves breaking down the software into its individual functions, such as input screens, output reports, inquiries, files, and interfaces. Each function is then assigned a weight based on its complexity. By adding up the weighted values of all the functions, FPA provides an objective measure of the software’s size, which can be used for estimating project effort, cost, and schedule.

Function Point Analysis (FPA) focuses on counting functional units, which allows teams to visualize the project’s scope better. By analyzing how much functionality is needed, FPA helps ensure resources align with project demands.

Understanding Different Function Points

Defining Function Points: Data and Transaction Functions

Function points come from two main categories, data functions and transaction functions. Let’s look at these in detail:

  1. Data Functions: Data Functions represent the data structures within the system. These capture how data is stored, maintained and processed in our own system. For example, a customer database could be a data function. The two main types of data functions are:
  • Internal Logical Files (ILFs): Data that is stored and managed within the system. For example, a customer database would be an ILF, as it stores information about customers that the system manages.
  • External Interface Files (EIFs): Data used by the system but stored outside. For example a system might interface with an external weather service to retrieve weather data. This weather data would be considered an EIF.
  1. Transaction Functions: Transaction Functions represent the processes that the system performs on the data. It focuses on the operations performed on data. Examples include a user logging in or processing an order. Three main types of transaction functions are:
  • External Inputs (EIs): Inputs provided by users that interact with the system. For example, a user entering a new customer record into the system would be an EI.
  • External Outputs (EOs): Outputs sent from the system to users or other systems. For example a system generating a monthly sales report would be an EO.
  • User Inquiries (UIs): Requests for information from users. For example, a user querying the system for a customer’s order history would be an EQ.

Differentiating between elementary and intermediate processes helps clarify how these functions are applied in projects.

Calculation of Function Points

Before we start understanding the calculation, we need to understand that there are two different types of calculation. Adjusted and Unadjusted Function Points.  Unadjusted Function Point (UFP) is a basic measure of the project without considering the technical complexity or environmental factors that can influence development effort. Adjusted Function Point (AFP) is a more accurate measure of the functional size, considering both the functional components and the technical complexity.

Before calculating unadjusted function points, we have to follow 3 steps:

  1. Identify Functions: List all data and transaction functions.
  2. Classify Each Function: Use standard classifications (e.g., simple, average, complex).
  3. Assign Weights: Each function has a weight based on its complexity.

The formula for unadjusted function points (UFP) is:

UFP = Σ(Weight × Number of Functions)

For example – If you have 10 simple EIs, 5 average EOs, and 3 complex ILFs, the UFP would be:

UFP = (3 × 10) + (4 × 5) + (5 × 3) = 65

Now if we want to calculate Adjusted Function Point, we have to consider additional factors like performance, security and operational ease and then assign a value (0-5) to each factor based on its influence.

AFP = UFP × (0.65 + 0.01 × Total Complexity Adjustment Factors)

Example:

If the total complexity adjustment factors is 20, then:

AFP = 65 × (0.65 + 0.01 × 20) = 84.5

This formula allows a project to account for unique challenges it may face.

Advantages and Limitations of Function Point Analysis

One of the most significant benefits of using FPA is that it improves accuracy rates to a very greater extent. Many reports suggested that organizations which are implementing FPA reported up to 30% more accurate estimates. This method also enhances communication among team members and stakeholders, making it easier to discuss project details.

When in comes to a major drawback, on thing that we need to keep in mind is the complexity of this  method. Firstly, it can be complex to define accurate function points since the subjectivity involved may lead to various interpretations. Additionally, FPA might not fit as smoothly into agile or iterative frameworks, where requirements often evolve rapidly.

Function Point Analysis and Agile Methodologies

Although we just discussed how it can be difficult to fit FPA smoothly an Agile framework, adapting FPA for agile environments is still possible. To do that teams should first focus on breaking down larger function points into sprint-sized chunks. This allows for better estimation of sprint velocity and helps prioritize tasks. Considering the nature of Agile framework and external business environment, FPA needs to be implemented with continuity to drive continuous improvement. By measuring estimation accuracy over time, teams refine their processes in long run. This leads to enhanced performance and better project outcomes.

Conclusion

In this article, I discussed some ways through which using Function Point Analysis can offer concrete advantages for project estimation. It can enhance both accuracy and transparency in your project team making it a valuable tool for teams. This concept is not only important for project managers wanting better results, but also for people who are preparing for professional exams in the area of project management like PMP. You can learn More such concepts in detail with a training program. Some actionable steps that you can take next is to train your team so that everyone identify and classify these function points. Also look for software and resources that can facilitate FPA.

Leave a Reply

Your email address will not be published. Required fields are marked *

About Us | Privacy Policy | Editorial Policy | Disclaimer | Terms and Conditions | Report A Problem | Contact Us