When it comes to software application development, it is crucial at every stage of the project, from planning to production, to have an overview of whether or not it is unfolding in accordance with your time and budget projections.
In order to measure this progress, there are three key performance indicators (KPIs) to watch. This triad of software benchmarking criteria are: Productivity, Quality and Duration (PQD).
The KPI Trio
In terms of Productivity, this can be analysed by looking at how many units of code is being produced each hour, day or other specified unit of time. The Quality of a project is essentially measured by looking at the percentage of defects that have been removed during the development process and how many remain at the product’s final release.
Duration is calculated by looking at the number of staff required to do a task within a unit of time, say an hour or a week. Theoretically, the more people dedicated to a project, the less time it should take. However this equation only works up to a point. There is a critical point beyond which a task suffers diminishing returns.
That is, no matter how many people are thrown at a project there comes a point where the result is not going to get any better or be done any faster.. it will just cost more money.
Having obtained Productivity, Quality and Duration metrics for your software project, the next thing is to assess how well these KPIs stack up against the industry norm, or average median value. For example, a normative benchmark for productivity determines that this type of project, or component, can be done at an average rate of X number of software function points (application elements) produced per person per month. If your results surpass this, does it mean that your project is better than average in at least one of the KPIs?
How ‘normative’ is the norm?
How universal are the norms against which you are measuring your PQD data?
This depends on who is doing the benchmarking and whether they are using truly universal benchmarking framework for evaluating software development organisations (eg. America’s CMMI), or are measuring the project/provider against a particular subset: say, all financial services software produced in India in 2007.
Or, is the scope of the comparison limited to all of the other projects done by the company undertaking the benchmarking? Clearly the results will vary.