To understand the agile testing mindset, we first need to determine what makes a team “agile.” To me, an agile team continually focuses on becoming self-organized and cross-functional to be able to complete any challenge they may face during a project.
In addition (and based on the agile spirit), the team must put the customer first and ensure that the customer receives the best possible product at the end of each iteration.
In my experience, some aspects differentiate “agile” teams from other teams, such as:
Continuous learning. As in any other field in life, agile team members must grow as individuals to contribute to the team effort to succeed. They must learn agile practices, new technologies, tools, and technical excellence and master all aspects of the product.
Discipline ensures that each team member will follow the rules and guidelines of the agile manifesto and of the organization (as each organization has its own rules, boundaries, and goals).
- Excellent soft skills allow team members to work with one another, help in case of trouble, and most importantly, allow for team dynamics that focus on both the team and the individual.
- Embracing continual improvement will allow the team to improve the process and product in each iteration.
- Sharing knowledge promotes team members who do not have the relevant skills, knowledge, or experience needed to complete their goals.
- Trust and respect are fundamental aspects we want to see in any team and agile team. Team members who do not trust and respect their co-workers will become an impediment to the team.
Now that we understand the characteristics of a great agile team, we can see that successful agile projects result from teams built by great people who have the freedom to utilize their skills to generate great work.
THE NEW TESTER IN AGILE TEAMS
Agile teams are built from developers and testers working together towards a common goal. (The best teams I created were built without testers at all, but this is for a more advanced article.) Now that we’ve discussed the characteristics of a great agile team, it’s time to define the same thing for testers and ask what makes someone a success as a tester in an agile team. The basic answer is that what makes a tester succeed on an agile team is usually the same characteristics that make a highly respectful tester on any other team.
An agile tester doesn’t see himself as the team’s quality authority, protecting the customers from the programmers as he did back in the old days when he worked in a dedicated test department, usually at a separate physical location from the development teams.
For me, there is no difference between a tester and a developer; they are all equal and should follow the same team culture, mindset, and principles. Based on that, I can say that great testers who succeed in agile teams are willing to share their knowledge and test experience with other team members. They are eager to work hand in hand with developers and the product owner to promote the team and the overall quality of the product, using a collaborative approach that states that the entire team is responsible for quality.
Agile testers (and probably any other testers) that have the right soft skills, technical skills, and mindset promote the team and themselves by providing continuous feedback about the overall quality of the product. This allows the team to see the big picture and what should be done to increase software quality.
In addition, agile testers are continually searching for new ways to help the team increase their efficiency and produce high-quality products. What does it mean to search for new ways? Here are three examples:
- Testers can search for new technology tools that will improve the efficiency of the testing process and reduce manual efforts (such as automated frameworks that will shorten regression cycles).
- Testers can create local group meetings or roundtables with other teams to learn and adapt success stories that worked in their team
- Testers can share their knowledge with the rest of the team to increase quality ownership. During this process, the tester can act as a quality consultant to help other members remove quality barriers they are unfamiliar with.
The bottom line is that testers in agile teams should have a different mindset than the one they had in the environment of traditional software development. They must understand that their agile teammates (including more programmers than testers) share the same goal. Testers should like their teammates and enjoy learning from them (especially coding skills that will help them add more value). Testers should never limit themselves to solving only quality issues.
But wait, there’s more. Agile testers should also help the team address issues that arise during the iteration and afterward, especially regarding the technical aspects of the product. In addition, testers should know that the team trusts them to understand the big picture of the whole product rather than concentrating on a specific component.
Great testers rely on the team because they know that they have an instinct and knowledge of where and how software might fail and what solutions the team should implement to reduce the risk of failure.
However, I think that testers can do even more! Testers should use their expertise, knowledge, and experience in testing and help the team in other layers of the development process. A great tester isn’t afraid of being involved in design discussions and making suggestions to improve testability and reduce future risks.
Published on Java Code Geeks with permission by David Tzemach, partner at our JCG program. See the original article here: Do you possess the necessary characteristics to adopt an Agile testing mindset?
Opinions expressed by Java Code Geeks contributors are their own.