I spent last week at Agilepalooza in Minneapolis. What a great event! We talked about Agile development processes and Agile mindsets. We learned about Dude’s Law from David Hussman, and why we need to concentrate on the actual product and not just how Agile we were in developing it from Jeff Patton. I personally was very heartened to see how the emphasis on “doing it by the book” is starting to really decrease.
At the end of the day, I was lucky enough to sit on a panel with David, Jeff, Joel Tosi, and Mike Nygard. We would answer various questions from the audience, and basically just talk about agile software development. One thing that really struck me was how many questions boiled down to “how do we manage the QA phase” or “the developers code till the end of the iteration, then the testers have to work late to make sure a story is *done* before the end of the iteration”. This really struck a chord with me. When did testing become a second tier activity? In Scrum, Extreme Programming, or any agile development project, we always think of the whole team, which includes testers, programmers, and pretty much anyone else who might be a part of the whole effort to get great software delivered. So how can we change the attitude about testing? What can we do to keep the testing members engaged throughout the process, and feeling like the vital members of the team that they are?
I have a couple of suggestions, but would love to hear about others. My first thought is the most basic. Let’s get rid of the designations like developer, or engineer, and make everyone a team member. Next, let’s make sure that testing activities are part of the everyday life of the whole team. And my most heartfelt desire: check in testable code early and often. It really can’t wait until the last two days of the sprint. Not only will we have a happier family and a more well tested product, we may find that such early checking in will inspire better design and a higher level of craftsmanship all around.