Software development is a costly business. Some of our clients come to us with the explicit aim of cutting roll out costs. More often, they come to us knowing that by improving testing processes they can maximise investment in their software development team. By increasing efficiency of testing processes and therefore the effectiveness of defect prevention, there will be cost savings, whether they appear on the bottom line or are reinvested in further development.
Of course, the reality for some software projects is that it’s less about cutting costs and more about ensuring that the spend doesn’t spiral completely out of control . . .
There are two themes to cutting costs for software roll out:
- Faster time to market: speeding up the development process can mean you are spending less on development teams and testing tools. It should certainly be true that by getting the product or service to the market sooner, the business as a whole sees its return on investment more quickly
- Efficiency: a more efficient process means less people are needed to do the same level of work, while efficient use of tools means you are not spending more than needed here too.
As a software quality management consultancy, our focus is on building better processes and testing environments because we believe this is the key to a faster time to market and a more efficient delivery of software. Based on our clients’ experience, here are our top suggestions for cutting the cost of software roll out.
Start with clear objectives
Software development costs spiral out of control for a reason. Often it’s because the original objective and scope has been lost and the team has been pulled in different directions.
Flabby projects that run overtime, risk finding that the original need has gone or customer expectations have changed. Clarity about objectives and timescales may not cut costs per se, but they are critical to a software roll out that is on budget. More than that, knowing what you want to achieve means you can target your spend effectively – whether that is on tools, the test environment, training or developers.
We would recommend documenting objectives and using these as a starting point for processes and plans.
Develop consistent testing processes
A consistent testing process has numerous advantages. Firstly efficiency as it means that software teams aren’t taking time to re-invent processes each time – there are consistent processes held in shared repositories and documentation that everyone knows and should be using.
This also means that there is a reduced learning curve across teams and allows developers to move seamlessly between projects, without having to learn new systems and processes.
There are a vast number of tools and approaches to testing, but without efficient and consistently applied processes underpinning them, you are wasting money.
As your software project becomes more complex, don’t forget to review and improve your testing processes. If the ‘wheels come off the bus’ because of the stress placed on your team, then costs can easily spiral, especially if team members then leave.
Use metrics
If you have clear objectives and a consistent process, then the way to monitor these is by setting key metrics and regularly reviewing them. There will be a set of measurable inputs and outputs that are relevant to your project, whether that’s developer hours, code lines produced, errors etc. By monitoring these, you will identify problems quickly and be able to address them before falling behind on the project plan.
Risk-based testing
Risk-based testing is an approach to software testing that hinges on identifying possible risks, and prioritising the relevant tests to mitigate them, based on the severity of the failure to the business.
Not all elements of a software development project are high risk. A common, undifferentiated testing process means that you put as much time and effort into testing low-risk areas as high-risk areas. Taking a risk based approach means you can conversely reduce testing in other areas.
Partly it’s the balance of more testing in some areas but less in others that creates the cost saving, but also the cost of fixing high-risk elements later in the process can be significant, so by addressing these early you are likely to reduce overall cost.
Shift left testing
Shift left testing is the process of moving testing that normally comes at the end (or right) of a process flow of a project life cycle, to the start (or left).
It reduces the cost of software roll out by moving from a testing approach that is focused on defect detection to one that is concerned with defect prevention. By preventing defects, it reduces problems further down the line that would be more costly to fix.
Early static testing
In many ways related to the shift left approach, we find that companies that introduce static testing early in the software development process have smoother, more efficient and ultimately more cost effective software roll outs.
By identifying flaws in the code early on, you can get to the root cause of errors before they happen. Again, focusing on defect prevention not defect detection.
Using tools to their full capacity
Testing tools are expensive, particularly if they are not used to their full potential. It’s easy to be sidetracked by the latest software or testing suite, but it’s vital that the tools selected are fit for purpose and do what you want them to do. Teams waste time and money by trying to fit their processes to a new tool, rather than selecting a tool that enables their current processes to work more efficiently.
Taking a DevOps approach . . . maybe
DevOps is all the rage at the moment because it can radically reduce the time to deploy software by bringing together the development and operations teams. Creating a CI/CD pipeline as part of a DevOps culture will reduce time to market, but whether it will cut costs in the short term is a different question. Because of its reliance on automation and tools, it’s costly to put in place and can require a culture change within the IT team.
The final point here is that popular buzzword strategies may not cut the cost of software roll out in the short term and it’s important to really understand what you want to achieve before being dazzled by their promises! Just focusing on improving the processes you have and the consistency with which you implement them may be enough to cut costs.
These are just a few of the strategies we have used with clients to cut the cost of their software roll out. If you’d like an objective assessment of your software testing processes and whether there is scope for improvement then get in contact. Our clients have repeatedly found that investment in expert advice in the short term, contributes to cost saving in the longer term.
Interested in finding out more about cutting the costs of your software roll out? Get a free health check with us and discover where else you could be saving money.
Leave a Reply