Software development issues hold back digital transformation

 

As the outgoing GE CEO, Jeff Immelt, put it, “Industrial companies are in the information business whether they want to be or not.” This is how important software is becoming in asset-intensive industries. At the other end of the scale, software start-ups strive to short-circuit tried and trusted business processes with dramatic efficiency gains. This extra competition adds to the pressure on enterprises to boost operational efficiency.

IT budget is therefore increasingly spread across multiple departments. Sales, marketing, HR – managers of these lines of business will be assessing whether the software development projects that power their digital initiatives should be outsourced, retained in-house or delivered through a mix of the two.

Software challenges

As companies across all industries foray into software development, they face the new challenge of driving efficient project delivery. As Gartner analyst Darryl Carlton said, “Despite the best advice available, information systems are not being built with the same degree of reliability, integrity and predictability as other engineering disciplines.” Optimal management of projects to avoid timeframe and budget overruns requires closely monitoring project progress; a challenge particularly when outsourcing software development.

>See also: New tactics for an old problem: digital transformation for the UK economy

Continuous, clear visibility of the value that outsourcers are delivering to clients is conducive to a trusting relationship that produces the best possible results. This requires reliable, objective, and readily measurable Key Performance Indicators (KPIs). Such KPIs must also drive behaviour from the service provider to complete a project in a way that fulfils the client’s goals.

Typically, the ultimate objective of outsourcing software development is to lower the cost of production for the work delivered (provided the outcome is of acceptable quality), compared to internal resources. KPIs used for monitoring progress need to provide a measure of the effort invested in delivering software development services, and the quality of outcomes.

Executives need a clear understanding of value for money throughout each individual project, empowering them to steer the engagement along an optimal path. Fair, continuous evaluation of progress requires consistent and transparent KPIs at each point in time during the work.

While outsourcing vendors can compete on day rates for software development resources, this data alone is insufficient to understand the value for money that the developers or teams might deliver. Moreover, competing for the lowest day rate per developer will probably result in a lower experience and skill level leading to lower effective productivity and ultimately worse value for money.

Evaluating talent

Securing the right talent is among the key criteria to minimise project overruns. Clients need insight into the productivity and quality of the work delivered by individual developers per billable hour. Individual developers cannot be assessed purely by productivity, their work must be robust and maintainable. So, judging which developers are the most effective may be subjective, if not formulated appropriately. KPIs must be able to cover these aspects of individual developer performance on an objective basis.

A strong sign of productive software development is the speed at which teams are delivering work. A delivery rate KPI can be measured by looking at the overall return on investment of software development releases, a line of code count to measure the increase in volume of the codebase, person-hours to measure the time dimension in calculating delivery rate and a function point count, which indicates the delivering of functionality throughout the project.

However, it is worth noting that counting lines of code and Function Points do not reliably correlate with the effort invested by engineers nor are these measures comparable across various projects or platforms.

Measuring quality

A high delivery rate from an outsourced partner is only valuable if the software is of acceptable quality. Companies use various approaches to measuring the quality of their software, for example, counting violations of rule-based standards. These violations aim to identify faults in the code likely to produce bugs and ongoing maintenance challenges.

>See also: Leadership crisis in digital transformation

However, these thresholds are at best consensus-driven and at worst arbitrary and can cause disagreements between clients and service providers. These can be awkward disagreements for clients of service providers because the service provider tends to be closer to the software in development and aware of the technical debt entailed in the fulfilment of functionality.

As an alternative approach to using these arguably arbitrary standards to identify poor quality source code, businesses can identify the most likely causes of software stability and maintainability issues. A two-dimensional view of productivity together with quality of software development allows managers to control the value for money they receive, as defined by their priorities for each project.

Increasing demand for software developers to deliver organisations’ digital visions makes it ever more important to ensure teams and outsourcers offer you good value for money. Successful results are rooted in using the right metrics.

 

Sourced from Jason Rolles, CEO, BlueOptima

Avatar photo

Ben Rossi

Ben was Vitesse Media's editorial director, leading content creation and editorial strategy across all Vitesse products, including its market-leading B2B and consumer magazines, websites, research and...