In software development, 2 factors are used to measure productivity. They are:
- the effort required to build the system (input measure)
- the size of the software that is delivered (output measure)
Productivity is calculated using effort / size. Note that there are various methods to measure software size. Each has its own features.
However, productivity is only 1 aspect of software development. Other important factors include: speed to market, quality, staff retention and cost. They must be measured to evaluate performance and form part of a benchmarking program.
Why You Should Measure Productivity
- To determine if one methodology produces a faster result than another
- To find the most cost-effective techniques and tools
- To have an optimum team size
- To track the overall cost difference between using experienced resources versus inexperienced
- To compare your team to industry competitors
Learn about the productivity of JAVA projects in the ISBSG Repository.
Productivity Factors to Consider
How You Can Determine Size
There are various ways to determine software size. Function points are commonly used. The International Function Point User Group (IFPUG) is the body that manages certification and sets the rules to determine what constitutes a function point.
Are you tracking the effort spent on your project?
Most companies have time tracking applications already in place. It is important to track the time that matches that phases you want to include in your productivity measure. Often, functional requirements are written by the user, and this phase would then be excluded from the productivity measure. By setting up the time recording system with the identifying codes, you enable easy extraction of data for the productivity measure.
Have you Factored in Change Requests?
When a project requirements document is signed off, change requests may be made. These changes should be measured and added/subtracted to the overall size measurement.
Comparing Your Project to the IT industry
Once you have your productivity measures (ie. project effort and size), you can submit them to ISBSG and get a free Benchmark report. This will show you how your project compares to project data in the ISBSG Repositories.
Project characteristics that must be considered include development tools, techniques, team size, platform, language and industry. Analysis of this is available in the report – Software Project Characteristics that impact Development Productivity. See Report Subscriptions for more information on ISBSG Reports.
Tracking changes within your team
As your project changes its resource profile, you can measure the impact in terms of overall cost. You may bring on an expert resource that has a higher cost. Did they help lower project costs? Perhaps they contributed in other ways: less change requests, less defects and higher customer satisfaction. All these need to be considered to form an accurate costing analysis.
One common outsourcing concern is that the new provider will take longer or be more expensive than developing the software internally. Having target productivity measures ensures that every attempt is made to discourage this from happening. Many contracts have penalties if the targets are not met or or bonuses if targets are exceeded.
The most important point to consider is the baseline. What is your productivity currently? If you have no history, then what productivity do projects similar to yours have? This information is available via the ISBSG Productivity Data Query or by purchasing the ISBSG data.
Learn how ISBSG can help your project productivity
In this industry report, challenges in Productivity Measurement in the software industry are addressed. Learn how ISBSG data can be used to benchmark productivity of completed projects, releases and sprints.