Collaboration is important in an Agile setting. Having an Agile Development Team working together, understanding one another’s role, and functioning as a cohesive unit is integral to achieving success. Collaboration does not come easy. You have some folks doing coding and some doing testing. Testers need the coders to complete work to do their job. Coders need to wait on testers to confirm their work and fix defects when necessary. Teams that figure out how best to collaborate on User Stories will deliver the best products.
Collaboration Traps to Avoid
It is easy to get into a cyclical trap where collaboration fails. Typically, you see programmers taking a User Story off of the backlog and doing all the coding. Once they finish, they hand it off to the tester to do their work to ensure it is functioning properly. The issue here is that the tester is sitting idle, waiting on the programmer. What was the tester doing the whole time while programming took place? And what happens while testing takes place? What is that programmer doing?
Never work testing one Sprint behind. This is a trap that is easy to fall into with Agile projects. When coding takes place in one Sprint and testing happens in the following Sprint, this stretches out how long it takes to complete one User Story. Now one User Story takes two Sprints instead of one. Testing a Sprint behind also makes programmers wait to get feedback. If defects arise, the programmer may not remember what he or she did exactly. It may be harder to get back to the familiarity they had with the code base. A defect is easier to correct if it is detected immediately.
The Proper Way to Collaborate
Focus on collaborating by breaking down the User Stories and working in sequence. Have the programmer and the tester on the Agile Development Team break down User Stories in small chunks. The tester can figure out their test cases while programming takes place. The coding can happen in small enough chunks so the tester can do their thing while the next small batch of code completes.
The goal is to avoid a large batch transfer. You do not want testers having to deal with huge packs of code to test all at once. Having small chunks of code to test repeatedly makes more sense. It keeps the programmer and the tester working together. If quality issues arise in the code, he or she can immediately pick up on that and provide early feedback.
The programmer and tester need to communicate how to break down the code into small enough pieces such that value test cases can execute. Automation of testing is the ideal scenario, especially to ensure adequate regression tests.
The Incremental Approach to a User Story
The incremental approach to a User Story is most successful. Work done concurrently, in small and quick cycles, is important. Just as the programmer finishes a piece of the User Story, the tester can execute a test case and they can carry on, working as a team towards the completion of a set of value-added features. Collaborate as an Agile Development Team and enjoy value realization sooner.
At ClearlyAgile, our Agile coaches provide fun, interactive, hands-on classes where we guide you through various activities like User Story mapping and feature buying to help seed and prioritize your product backlog.