Reducing Waste In The Software Development Lifecycle
We all know that when you find defects late in the development lifecycle, it is going to take more time (and cost more money) to fix them than if they were discovered sooner. It makes sense that if you can identify and eliminate waste early in the process, you can reduce cycle times and gain the flow-on benefits of reduced costs. But the challenge has always been to understand the best way to ensure we find defects (or potential defects) as early as possible – and there is no one-size-fits-all answer that will be appropriate for every environment.
The need and importance of regression testing is not generally denied but decisions on the scope of regression testing, its scheduling and/or frequency are highly debated as they have major implications for costs and delivery times. Historically, companies that are larger and rely on high customer confidence (for example, those in the banking and finance sector) have tended to rely on large regression testing suites to be their safety nets for change. Smaller companies with smaller budgets and fewer reputational risks have tended to try to go with smaller, more tactical testing solutions (although this is often because of an inability to fund a larger test suite rather than by a lack of desire).
As the cost of testing and quality continues to increase, more and more companies are looking for new ways to reduce the costs of testing and software delivery, while also reducing delivery timeframes. This means that large scale regression testing is becoming unsustainable and we need to innovate to address costs while maintaining or even improving overall quality. The drive to innovate in order to reduce costs and cycle time has seen the emergence of many new development methodologies and associated test practices, although in my opinion these have had limited success and often ended in greater costs and or project failures. This is something I’ll address in a future post but for now, back to the issue of waste, as it seems to me that eliminating or reducing waste is the most logical place to start.
So, how do you do this? Start by taking a good hard look at what is wasted effort or adds no true value to your process and you can find some real opportunities to make simple but effective improvements. Manufacturing has applied this concept far better than software development - for example, concepts such as Lean and Kaizen have led to improved timeframes and cost ratios. In the software world, I’ve found that one opportunity for improvement organisations often overlook is stability of the test environment. When your test environment is unstable or not fit-for-purpose, it can have big consequences. If the environment falls over for even an hour or so, the costs and flow-on effects can be significant, particularly if you have a large team of testers relying on it for one project. Another aspect to consider is whether you can automate some of the processes in your test environment, rather than simply automating test scripts. If you can automate common processes, your testers will be able to focus their time and efforts on the results rather than on running the background processes to get those results, and that is where real value can be added.
About John Bunting (JB) – National Test Manager, Optimation
- Former roles include Practice Leader at QualIT, Test Director at Telecom, Head of Testing Services at BNZ,
- Over a decade delivering test services and strategy