What do the words tester or QA engineer bring to mind? They're those people who think of ways to break the software, right? Isn't QA the team that comes in after the coding is done, to tell the programmers what they did wrong? It doesn't take all that much skill to be a tester; anyone could pound on a keyboard and check whether the software works, right?
Wrong. Think again.
In traditional projects, requirements are defined up front, usually by business analysts or product managers. Testers have learned to analyze each requirement—looking for completeness, ambiguity, correctness, and much more—so that they can write detailed test cases. However, development teams using this type of phased and gated methodology often tie the testers' hands, giving them no way to get requirements changed if they find contradictions or unclear specifications. By contrast, testers on agile teams get the opportunity to accommodate and embrace change. By observing how testers contribute value on agile projects, we can see how agile testing principles and practices may be applied, regardless of the development methodology being used. The key is making testers full partners with developers, giving them access to business experts, and involving them from the very beginning of each project.
Undervalued and Unappreciated
Testers often aren't used to their full potential. Their skill sets are underestimated and overlooked. Many testers have abilities, experience, and aptitude that make them useful throughout the software lifecycle. In agile projects, where testers have the opportunity to add value from the very beginning of the project, the many ways in which the testers contribute have become obvious. However, there's no reason that testers can't provide more value on any development team, regardless of the methodology used.
Testers have suffered a bad reputation over the years. Too many people fail to value testing, seeing testers as people who couldn't succeed as programmers, or unskilled workers who just bang away at the keyboard. As a result, testers are often paid less than programmers of equal experience and skill. What talented professional wants to work in an unappreciated job, for low pay? This attitude toward testers can become a self-fulfilling prophecy.
It's time for everyone to start seeing testers in a new light. By testing, we mean more than the traditional QA role. We don't mean just testing the end product. We also mean working closely with customers to clarify their needs, enhancing requirements with concrete examples of desired system behavior, challenging the status quo, acting as information providers to give feedback to the team throughout the development lifecycle, as well as helping the team with continual process improvement. Testers lead by example, focusing on business value. They encourage the team to adopt values and principles that promote quality.