Software Development Requires Objective Metrics and KPIs
Software development is expensive and organisations need to be sure these large investments will meet their intended goals. Software development team leaders need refined insights that enable them to:
1. Accurately determine the budget and timeframe for a project
2. Select the best software developers for the task
3. Keep projects on track
4. Keeping time frames on target by maintaining high productivity and quality of code
Why Objective Software Development Metrics Are Crucial
What data do leaders need to be able to identify the path toward the best results?
Team leaders need to weigh costs versus output. When considering these values we realise there’s multiple factors, though not all are known. The only known ‘constant’ for a software release is the requirements that the software must fulfil (User Stories, within the Agile approach).
Therefore it isn’t possible to determine the amount of work that will be needed to create the solution or to fix any bugs that arise throughout the process. Furthermore, increasingly widespread Agile methodology opens projects to changing client requirements.
The Cost and Output Component of Software Development
Starting with the cost aspect, costs are most likely to be based on the number of hours worked. If leaders choose to outsource software development, suppliers are unlikely to take on the risk of unknown quantities of work. Along with scope creep from changing requirements as mentioned.
If both cost and output are based on the same unknown amount of work (or hours) required for the software release, this can in effect be cancelled out on each side of the Cost/Output ratio. Value for money depends on units of cost per unit of work.
But reducing our approach to this simple formula still involves the vague idea of a measure of work. This must be a fixed unit and therefore not conflated with the amount of time spent on a work. Some developers are more effective than others.
We must factor in the effort per time; “effort” because this fairly compares productivity across tasks of different difficulty. The point that low cost doesn’t mean value for money is precisely why leaders must seek to optimise cost per effort rather than cost per hour; this rate data is readily available.
How BlueOptima Measures Developer Productivity
BlueOptima measures Coding Effort applied by developers between code commits. This data can be aggregated across time, teams, use case points and entire projects. Coding Effort provides a consistent basis for monitoring the pace of work, amount done so far in a project as well as past projects. Insight into effort invested into past projects and tasks inform estimation of the amount of work future projects require.
This is a basis from which to calculate the expected total cost of executing a project using rates of effort for different suppliers/teams, platforms and types of project; insight BlueOptima offers. This process produces a sophisticated forecast of cost for each software delivery option, enabling a meaningful comparison between various third parties and internal teams.
It might sound unusual that team leaders are having difficulties making informed decisions due to insufficient objective data. After all, the technology orientated nature of software development departments should mean quantitative metrics or KPIs are the norm.
When it comes to choosing KPIs or metrics, we must ask if they are reliable and add value to an organisation. The emphasis shouldn’t be reflecting on completed projects or features. Instead the focus should be on accurately estimating timeframes for delivery (and therefore cost). Furthermore, keeping projects on track and holding each team member accountable for their work during delivery, not afterwards.