A couple weeks ago I had the opportunity to attend the StarEAST conference in Orlando. As in past years, it was inspiring to see so many qualified testers and QA managers all under the same roof. Speaker sessions were relevant, humorous and interesting, and from the list of topics, it's evident that junior and veteran testers alike have started to adopt trends like Agile testing and automation without ignoring things like exploratory testing, test management and planning.
I would even go so far as to say many attendees were far beyond learning and embracing new trends; they’re eager to roll up their sleeves and get their hands dirty with automation tools, Agile practices and cross-functional teams. Testing is definitely a practice you can thrive in.
Unfortunately, there are still some clouds on the horizon - you saw that coming, didn’t you? Jokes about “stupid developers” are still lurking in the corners, stories of “throwing things over the wall to development” continue to repeat themselves, and making fun of developer geekiness still prevails. Admittedly, I enjoyed these jokes as much as everyone else, but they always give me a bitter aftertaste; why is this barrier between testers and developers so hard to overcome?
Shouldn’t we all be on the stage together talking about real-life experiences where testers and developers helped build great products together?
Shouldn’t we be sitting together running tests and debugging code to create the most beautiful software out there?
Ultimately, if we don’t overcome this cultural divide, how will we ever expect to do “real” Agile testing with testers and developers delivering great quality to our users together?
The thing that bothers me the most is that the time for this to happen has never been better! Let me explain:
- Testers are often using the same tools that developers are using for creating (automated) tests.
- Test automation is being embraced more and more by testers as well as developers.
- Both testers and developers are embracing the continued value of exploratory testing as an essential practice for testing new functionality in a product.
- Unit testing and test coverage discussions are becoming natural ingredients in new development projects.
- The value of Test-Driven Development and BDD is being embraced more and more by development teams, often in conjunction with Spec-by-Example.
- Testers are becoming just as important as developers and product managers when fleshing out requirements and evaluating the complexity of new features.
And to top this all off, the whole Agile movement is leading the way! Remember, Agile is all about communication, collaboration and cross-functional teams, which is exactly what needs to be in place to overcome the “legacy” prejudices still prevailing between developers and testers.
So what can be done today?
Many of us (including me) instinctively feel that breaking cultural barriers like those described above can be extremely hard, even if there are a lot of things going for it. But I think we also all recognize the benefits at hand and the opportunity given. Many speakers at StarEAST touched upon this subject. Here are a couple of their suggestions for breaking down these walls:
- Introduce pair test-programming; let your testers and developers sit together to develop and run tests, to discuss requirements and to assess non-functional aspects (performance, security, usability, etc.).
- Install and learn each other’s tools; developers should have a grasp of test management tools, testers should be able to check out the source code and run automated tests. This builds mutual understanding for the complexities at hand with automation frameworks, refactoring, etc.
- Go to hackathons together! Imagine having an expert tester on your team at the next local API hackathon; the quality of your entry will be so far ahead of the competition they won’t know what hit them (thanks to all exploratory testing being performed in parallel with creation of unit tests and automated UI scripts).
- Treat testers and developers as one integrated team; sit together, do stuff together, incite collaboration.
Maybe I’m knocking on an open door here. Have you already torn down the wall between developers and testers in your team? Are they all joking together about sales and marketing? Share your insights or objections with us – I for one would love to hear your story!