Software developers don’t like to test, and clients don’t want buggy software. How are you handling that conundrum? Once upon a time, you might have formed a QA group. In this modern Agile age, things are leaner and meaner. That doesn’t mean you can lower quality standards. Can you forge a path to high-quality deliverables without having an explicit test group? In this article, we explore what it means to use the whole team approach in Agile testing.
Whole team approach key benefits
- Increased morale & collaboration
- Improved quality
- High performing team
Shift your mindset
Do we really need to test my code? I ran it on my dev environment, and it worked perfectly, so let’s publish it. Well, that is one approach but doesn’t reflect the whole team mindset. Instead, try to foster the idea that quality is everyone’s responsibility.
In Agile, the whole team approach means everyone working together to ensure project success. Normally this includes a small group of people with a diverse skillset working tightly together. The mindset change also includes focusing on the group’s strengths and not individual weaknesses.
Some approaches segment tasks down to a narrowly focused role. The whole team strategy asks people to contribute in every way they can. This means encouraging hiring people with a variety of valuable skills. Talents such as business analysis, adaptability, design, programming, communication, and testing ability are valued in an Agile community.
Recruit T Shaped People
- T shaped people are those with a broad list of thinking skills
- And with a deep understanding in atleast one domain
- Finding bugs & exposing defects
- Reporting UX issues
- Breaking Software
- List items to support project success
- Define how to prevent bugs
- Discuss ways to reduce risk
- Help make others better
On more traditional teams, it is common for programmers to write code, get it working in their dev environment, and then “throw it over the wall” to testers. These specialists who then analyze the software, report suspected defects back to the programmers. This paradigm often brings tension and the different groups taking defensive postures.
If everyone involved in the projects embraces the idea they are all working together towards quality, it helps foster a team spirit. When resources feel they are working together, there is a better level of collaboration. This collaborative spirit can lead to using tests for essential things. Tasks like documenting requirements and defining development techniques, start to take shape around group ideas.
A person that has a strong vertical skill is going to be a high performer in some specific cases. However, the overall project may be elongated if it is packed with too many of these resource types. Additionally, this management behavior leads to performing application development in a synchronous style. A person must finish their work so that the next process has the required input to get started.
Multiple viewpoints and having a variety of thinking abilities on your team always lead to better overall performance. This means higher quality products. How does this happen? Why would this be true?
Value thinking skills
Communication: By having more finesse, you can deliver uncomfortable updates tactfully.
Flexibility: Situational adaptability could mean at one minute reviewing workflows with business leadership and in the next, discussing architecture with technical resources.
Listening: Identifying what wasn’t said can help clear up missed assumptions or critical constraints.
Technical Awareness: Understanding programming concepts and system architecture lead to more probing questions about vulnerabilities.
A narrow focus on technical skills can lead to not enough appreciation of a critical project element. Overlooking project factors like business goals, compliance rules, and success criteria causes more risk. Quality goes up when team members include a breadth of skills, as well as depth.
Measure by performance
While discussing theory can be a fun academic exercise for some, the business places value on profit. Companies don’t support technical solutions for the sole purpose of innovation. Rather, they use it as a tool for boosting the bottom line. Accordingly, our testing methodology must support this overall goal.
In Agile, we are pushing to deliver value to the business frequently at a faster pace than traditional methods. We continually code and test in small increments in order to shorten the feedback loop. When our entire project team is committed to a testing mindset, a rapid delivery pace with high quality is more sustainable.
Set higher expectations
What level of risk are you accepting right now, in regards to quality? What can you commit to? At the start of this, we acknowledged the fact clients demand high quality regardless of other constraints. So, make your testing strategy meaningful.
With a whole team approach, a testing mentality is embedded in many of the activities done throughout the project life cycle. It becomes an everyday activity and not merely a phase. No matter where you are with your testing approach today, consider this last thought as a concluding idea. When a developer knows that they’ll be connected and accountable to quality, they are remarkably motivated to produce high-grade code, to begin with.