In the previous part of this 2-part series, we identified how taking a Lean approach to testing can highlight various wastes that testers face in a project team, and external wastes that end users deal with. This concluding part will identify some solutions that can help with reducing the three types of waste, Muri, Mura and Muda and how continuous improvement can lead on to creating value for the customer.
A Lean Approach to Testing - Part 1
In the first of this 2-part series, we will look at the various inefficiencies that are faced by testers in a project team, and for the users of the software that we are helping to deliver.
No Time to Waste
You have probably heard of the 7 wastes (or 8 or even 9!) which focuses on reducing anything that does not add value within a system. This concept was developed at Toyota relating to manufacturing and later applied to software development practices in 2003.
Where is the Value?
As we know, we cannot test everything. This is especially true for End to End testing. This activity is often carried out at the end of the Implementation phase after System testing has completed. There will be many paths through the software and to test them all will be a large task. So only critical paths are tested through the system that provides an acceptable level of test coverage. Add automation into the mix, and this can become extremely challenging at the end of the delivery cycle. Teams often accept that the effort required for automating the End to End tests is too much of a risk to a timely delivery. Often, it is cut down to small manual End to End tests as an afterthought that adds little value to the overall quality or post-release teams. Ironically, this is where it adds the most value!
It all starts with Quality
Testers do not just “do testing” in an Agile team and have many roles to play during the delivery of software. Testers are fully involved in the development lifecycle, meaning quality starts from day one. Although everyone in the team is responsible for quality, the test team tend to drive this and lead by example to promote good working practices, as well as being at the forefront when identifying product risks.
Within any software development team, testing involves investigation and analysis to identify product risks. Testers also provide information to stakeholders about the quality and complexity of testing so confidence levels are well understood. Depending on the methodology used, the success of a release may be largely based on the effectiveness of the test role.
In traditional methodologies, testers mainly contribute to delivery at the end of the process. If the testing phase only begins after analysis, design and implementation phases have been carried out, adapting to change becomes more difficult. Major issues found during this phase are usually so embedded, they are too risky to rework. If budgets and time pressures are a factor, it is always testing that suffers. Producing a high standard of testing becomes more and more challenging, and the blame culture starts to set in.