Last year I was Scrum Master to a web team migrating magazine sites from Drupal 6 to Drupal 7. The team was organised with separate developers and testers, using an online scrum board system.
Breaking the Logjam
One of our developers had been working on a data migration story for four weeks, and whenever he sent it to test, the code would fail manual tests for one reason or another. Sometimes these reasons would alternate. This was costing a lot of money for no progress.
I suggested that he write some automated regression tests. These would inform him instantly if his latest change had broken anything. At this point, someone else said “But who’s going to pay for the tests?” I took the position that not writing them was already costing too much. So he wrote some tests.
After writing those tests, he was done in three days. The logjam was broken.
In retrospect, it would have been considerably cheaper in this case to do Test Driven Development. It would also have reduced our Work In Progress (WIP) by around half, because we would not have been handing developed code off to be tested, then handing it back if it failed.
Reducing WIP
This is how scrum, with XP practices, reduces WIP:
Start with a traditional team board.
1.The WIP is 4, counting develop, test, failed tests and “completed awaiting product owner approval”.
2. Do TDD – then there is no separate test column on the board.
The WIP is halved to 2 because
a. The developer does not start another story while the previous one is in test, and
b. There is no stack of “failed test” stories awaiting more development.
3. Have the Product Owner work closely with the team and approve or feedback on each change as it becomes ready, then you don’t need a Completed column on the board.
The WIP is halved again to 1 because there is no WIP awaiting PO approval.
As you can see, automated testing does more than just reduce WIP. In this example, we were able to use it to break the logjam from a failing develop and test cycle and prevent further wasted time and money.
Pingback: Agile Development Spawns a Lexicon