In the past, we saw testing as the later phase, if not the last, in waterfall pipeline. The project manager always says “Finish the coding early so we can have time to catch and fix bugs”. This sounds straightforward and no brainer but if we look back all of those projects were mostly failed.
According to Lean Thinking it is not a good idea to try to finish work in big batch and test it in bulk. The reason is, if there is a misunderstanding in the design, the more code we do the more bugs we fix, and of course, the more rounds of testing. It is all wasted.
In Lean, there are three levels of problem solving. The lowest one is Reactive which is when we create the problem and fix it later. The second is Proactive in which we have the solution prepared before the problem occurs. And, the best one is Preventive, the one we keep the problems from happening. It is the most cost-effective one.
The waterfall way of work is Reactive. That is why it is very wasteful. The team needs to spend much time on fixing and re-testing the products. On the other hand, in Agile, the testing ideas are discussed before the real code is implemented. It is similar to when the teacher gives the students all questions and answers before the test, the students will make good scores.
The Preventive testing in Agile should not be stopped just on discussing and sharing the testing ideas. To eliminate more waste, the quality must be built-in in every step. There are many methods to help this, for example, Domain Driven Design (DDD), Test Driven Development (TDD), Acceptance TDD (ATDD), Continuous Integration and Continuous Delivery (CI/CD), etc. These methods will help to free up our precious QA to be able to do the more valuable work for example, explorative test, usability test, etc.
The Lean/Agile Testing may seem hard to implement at first but in the long run it will promote a quality culture that everyone focuses on preventing the defect to lurk in to the product code base, which will result in better teamwork, lower cost and shorter time to market.
— Home Assignment from Agile Testing Certification – Bangkok