Collective Wisdom from the Experts 185
a query to respond to a wildcard search. The programmer had fully intended
to code only complete word searches. We were able to talk to the customer and
determine the correct interpretation before coding started. By collaborating,
we prevented the defect, which saved us both a lot of wasted time.
Programmers can collaborate with testers to create successful automation as
well. They understand good coding practices and can help testers set up a
robust test automation suite that works for the whole team. I have often seen
test automation projects fail because the tests are poorly designed. The tests try
to test too much, or the testers haven’t understood enough about the technol-
ogy to be able to keep tests independent. The testers are often the bottleneck,
so it makes sense for programmers to work with them on tasks like automa-
tion. Working with the testers to understand what can be tested early, perhaps
by providing a simple tool, will give the programmers another cycle of feed-
back that will help them deliver better code in the long run.
When testers stop thinking that their only job is to break the software and find
bugs in the programmers’ code, programmers stop thinking that testers are
“out to get them,” and are more open to collaboration. When programmers
start realizing that they are responsible for building quality into their code,
testability of the code is a natural by-product, and the team can automate more
of the regression tests together. The magic of successful teamwork begins.