Bob Hartman, from the Agile for All blog writes about the agile antipatterns insanity – continue doing the same things that always fail, thinking they will work better the next time without changing anything.
I agree with every word, especially with the pattern of testing late, and code freezes during each iteration
I see this on many of the teams I'm coaching.
Go read what Bob has to say…
One reason I hear from teams that Bob didn't mention is that testing earlier would mean testing time and time again the same areas leading to Waste (assuming you acceptance test a user story, then another user story, both in the same area).
As someone who likes to think in Lean terms, when a team throws Waste at me, it usually makes me proud. In this case though, its the other way around I think:
- First, assuming reasonable engineering skills, the amount of codebase rework between these user stories will not be high, so the need to repeat testing for regression will not be very high.
- Second, if you DO have a need to regression test, fine, automate it and make it cheap to test as many times you want, inside your CI environment.
- Third, on the acceptance test side, with reasonable testing design skills, the tests for each of the user stories should not have much in common, so there is no waste here as well
On the contrary, to leave a user story untested for any period of time, is WIP waste.
You should test, fix bugs, before moving to other user stories, or at least while working on the next user story but not
the next iteration.
That was my line of thinking.
What do you think?