How can you be sure you’re getting full development value for money?

Aug 20, 2021 by Mark Reynolds

 

When pressed, more enlightened decision-makers say they regard technology as a business and innovation partner. But all too often, the technology division is seen as one dimensional; simply accountable to their business stakeholders for work done and change delivered within the parameters of a given budget.

It’s a simple enough equation: Output divided by input. And a successful solution delivers the greatest output for the least cost.

But it’s not just about the volume of change delivered — producing broken code in an unreliable timeframe is unlikely to win the authors many friends. No, it’s also about the quality of change, delivering working code through to production without breaking or destabilising the existing system. Another vital characteristic is predictability, delivering the agreed scope on time, every time.

 

All or nothing

Like football, it’s a team game; you win together and lose together. And, as in the beautiful game, recruiting a group of high-performing individuals doesn’t guarantee high-level output. Your team has to function as a unit, with senior developers mentoring less experienced colleagues. Consequently, you need to measure the output of the whole team rather than individual team members.

Most software delivery metrics focus on coding, but this is only one part of the process. Unclear or unstable requirements and poor testing can result in a drastic reduction in output, so look at the whole picture — the total delivery lifecycle.

 

Measuring the right output

While it’s relatively easy to measure output in isolation, it’s virtually impossible to measure whole systems or teams — the input needed to produce it will vary greatly between systems. Output will differ significantly according to whether you’re working on an old, undocumented monolithic application with no testing or a brand new unit-tested set of microservices.

Whichever metrics you use, at least you can compare them at specific times to get an idea how your teams are performing and whether the trend is positive.

Factors that affect the rate of change:

  • Age and complexity of system and codebase
  • Type and scope of the change
  • Documentational quality
  • Greenfield versus brownfield project
  • Architectural complexity and flexibility (e.g., monolithic versus microservices)
  • Tools and technologies used
  • Automation levels enabled
  • Software development lifecycle (SDLC) and release cycle
  • Test environment availability
  • Business requirement quality and stability

 

Criteria

Software development’s greatest attribute is that everything is measurable. And as a delivery organization matures, an increasing number of items can be tracked via a dashboard, allowing the regular monitoring of trends. Items like:

Output

  • Stories delivered — a guide to business value
  • Pull requests per sprint — incremental delivery of value into test environments

Complexity

  • Size of the codebase — the magnitude of one system versus another
  • Coding style violations — how much of the code follows best practice for maintainability

Quality

  • Defects found in each phase of the lifecycle — how many bugs are finding their way through each stage of testing and into production
  • Capacity allocated to new functionality versus bug fixing — the effort spent retracing your footsteps

Predictability

  • Actual versus estimated effort — understand and refine estimate accuracy, learning from experience
  • Average delivery cycle time — how long it takes for a feature or user story to go from requirements specification to production

Process maturity

  • Knowledge index — spread of expertise across the team and different components
  • Requirements stability index — reliability of incoming requirements

Production stability

  • SME callouts — out-of-hours, critical issue investigations
  • Average time to resolve production issues — how soon the system can be fixed

Team stability

  • Employee motivation index — signs that your team is happy at work
  • Attrition — level of employee turnover (or churn) in the organization

 

Interpret your measurements

Measuring teams is fine as far as it goes, but what do the measurements actually tell you? Correlation between metrics can strengthen the signals and flag-up when it’s time for action.

Potential risks you could diagnose:

 

What drives output creation?

The scale of software engineering output depends on a combination of many factors, including individual excellence, teamwork and the company environment.

Clearly, you need to hire the best engineers you can find. At Zoreza Global, we have a large presence in parts of the world that give us easy access to top talent.

As well as technical skills, you want individuals with the right project experience and domain knowledge — people who have worked in your industry before and understand the nuances of your particular project environments.

Once you have the raw material, it’s about the way you set up and operate your teams. As mentioned earlier, just having a group of smart developers is not enough. Success relies on getting them to function as a cohesive, high-performance unit. This involves delivery processes and tooling, as well as best practices such as ensuring efficient knowledge management to avoid key person dependency.

Then there’s the ex-factor — building a culture of excellent performance, with exemplary training and exceptional motivation. HR processes have a central role to play here, promoting diversity and inclusivity to create a stronger team ethic and a more eurythmic workforce. The whole is stronger than the sum of its parts, and engendering a sense of belonging and respect, alongside peer and corporate recognition is a tried and tested way of developing and retaining your best talent. After all, staff retention is a key factor in ensuring predictable delivery.

With all that in mind, we must counsel you against assessing your development organization on a cost-per-head basis. Team and company considerations can have a telling impact on overall performance.

To misquote John Donne, No manager is an island, and the technology division is not entire of itself. In other words, no tech team performs in isolation.

Healthy collaboration between both individual technology teams, and technology and the business is a central pillar of software development success. However, technology teams can only fully engage with the business if they have sufficient domain knowledge to do so (which, I’m pleased to report, Zoreza Global teams do).

As you can see, getting optimum value for money from development teams isn’t just about cutting costs — nowhere near. There are a great many collaborative ducks of all shapes and sizes to get in a row before all parties can say they’re truly aligned.

 

Get in touch

At Zoreza Global we’ve been building and operating high-performing software engineering teams for more than two decades. Whether you’re building a new team or want to measure and increase the performance of an existing team, our experienced delivery managers and consultants can help you arrive at the right blend of metrics.

DOWNLOAD PDF VERSION

Related content

How does automation make insurance less of a distress purchase?

Blog

How does automation make insurance less of a distress purchase?

Wealth managers face an AI-driven revolution. Do you take advantage of the opportunities?

Blog

Wealth managers face an AI-driven revolution. Do you take advantage of the opportunities?

Managing risks to institutional knowledge

Blog

Managing risks to institutional knowledge