Home > Software Quality Tips > Software Project Management > How to stop developer vs. tester, quality-killing blame game
Software Quality Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

SOFTWARE PROJECT MANAGEMENT

How to stop developer vs. tester, quality-killing blame game


Zach Nies
11.03.2009
Rating: -3.67- (out of 5)


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


In agile software development, the whole team owns quality; but clearly many teams face barriers to accomplishing that goal. In particular, I repeatedly hear four troubling comments about the state of development teams' testing and quality assurance (QA) efforts.

  1. "We don't have enough time to test, because the developers give us working builds way too late in the cycle."
  2. "I wish our quality was better, but it's out of my control to change anything."
  3. "Poor quality must be our fault as testers, since we are the ones responsible for testing."
  4. "We should test more, or we should develop slower, or we should specify our requirements better - that should improve quality."

In this tip, I'll address these problems, their causes and some best practices for beating those problems and achieving sterling software quality in agile development.

Humans, not technology, ruin software quality

In my field work, I see basic and predictable human responses getting in the way of achieving higher quality. You can certainly improve quality through changes in process, and many of those changes are at the center of agile adoption. But I often see teams struggling with the human aspects of those process improvements. By paying attention to the ways everyone naturally avoids responsibility, you will be able to move past the barriers that contribute to poor quality.

I've learned a great deal from Christopher Avery's Resposibility Process. Essentially, Avery shows that when problems arise, everyone experiences a predictable series of thoughts that protect them from taking responsibility and block them from learning and improving. It starts with blaming someone or something. When you move past blame, then you justify the event with a story you tell yourself. If that story doesn't fully work, then you turn the blame to yourself and feel shame. Once that shame ...


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google



RELATED CONTENT
Software Project Management
How to improve software project requirements estimates tutorial
Mobile, Web app QA testing tips for handling operating system changes
5 ways to answer executives' unfair software test, QA questions
Extending application lifecycle management to the enterprise
How project managers can recover from worst case scenarios
Developing the best IT project response strategy
How to handle IT project management in a recession
The value of a project manager: Why a PM is the CEO's best friend
The challenges of dispersed software development
Techniques for managing multiple software projects

Software Testing
Free Web proxy security tools software testers should get to know
Best practices for Scrum and when to apply them
How to deal with iteration issues in Agile
Five steps to fostering better software tester and QA results
Easing software performance testing and usability modeling pressures
How to apply modeling techniques to support software testing
Calculating mean time to failure in performance testing
The lowdown on PCI compliance
5 ways to answer executives' unfair software test, QA questions
10 steps to acing Web app security assessments

Agile software development
How to deal with iteration issues in Agile
Flexibility and teamwork proven traits of Agile team maturity
Using Agile, scaling back helps software projects in recession
How to improve software user acceptance testing practices
How testers can handle switching to Agile's short iterations
Testers debate differences between waterfall, Agile test automation
Tasktop brings task management into the application lifecycle
Test-driven testing face-off: Waterfall vs. Agile
Accelerating Agile testing with computer assistance
Agile by the numbers: Survey finds more adoption, but age-old problems

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
acceptance test  (SearchSoftwareQuality.com)
iteration  (SearchSoftwareQuality.com)
planning board  (SearchSoftwareQuality.com)
planning game  (SearchSoftwareQuality.com)
release  (SearchSoftwareQuality.com)
release plan  (SearchSoftwareQuality.com)
spike  (SearchSoftwareQuality.com)
stand-up  (SearchSoftwareQuality.com)
story  (SearchSoftwareQuality.com)
timebox  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary


wears off, you will feel a sense of obligation. If the shame and obligation become too unbearable, then you will quit or detach to escape from those feelings. All of these thoughts prevent you from taking responsibility and ultimately moving forward. Sound familiar?

Breaking down blame-game walls

Finger-pointing between the testing team and the development team is the most common blame game played.

  • The testing team says, "Our quality around here is bad because the developers give us working builds way too late in the cycle."
  • The development team replies, "We have quality issues because the testers aren't doing their jobs."

A typical team structure has the two teams separated by time and space. They are working at different phases of development and in different buildings or countries. Nothing fosters an environment of blame like a wall, or a continent, between people. Having co-located teams is powerful because it is much harder to blame someone if he or she is sitting in the cube right next to you. If distributed development is a fact of life at your company, you can still improve by time by testing inside the iteration.

Another way to reduce blame is to give a team a shared sense of purpose. If the team -- both developers and testers – is working toward a common, shared goal, they will move past blame faster because they are more likely to view each other as part of the same group.

Equal members in the iteration

Once the team moves past blame, then comes the justifying comments. Typically these are comments about things being out of their control.

  • A developer may say, "I wish our quality was better, but I can't change anything."
  • With distributed teams I often hear, "It's really hard to work effectively with such a distributed team, but that's just the way it's going to be around here."

A retrospective process can be used to break out of this thinking. If you hear someone justify the status quo, address that concept and ask what two things we can do as a team to change it. Remember that responsibility is a personal thing and not something you can impose on others. Asking people what they would like to change can help free them from the status quo thinking and excuses.

The wall that often exists between developers and testers can contribute to justifications. A powerful way to move past this is to have testers and developers be equal members in the iteration. When people have an equal say in the planning and execution of the iteration, their shared intention will help them move past justification.

The five "whys," not the five "whos"

Statements of shame follow after justifying comments. A common thing I hear from testers is, "We have a quality problem, and it must be our fault since we are the ones responsible for quality." This is a mindset where people can easily get stuck. If testers take the shame for quality, it is much easier for everyone else to blame them, too, and avoid taking responsibility themselves.

One way to break the mindset of shame is to conduct a "five whys" session on a quality issue in your next retrospective. In "five whys," you focus on getting to the root cause of an issue by repeatedly asking "why" to drill deeper toward the underlying cause. It's important to note that this is "five whys," NOT "five whos." With each "why," it can be easy to stop at blame or shame and point the finger at a specific person. Five whys is a constructive way to move past the who and focus on the why.

Shared responsibility for quality

Having moved past shame, obligation is next. A team member says, "We have a quality issue here. We should test more, or we should develop slower, or we should specify our requirements better."

Most people confuse obligation with responsibility. It feels like taking an action is the right thing to do and is proof that you aren't avoiding responsibility. The problem is that obligation doesn't involve honestly confronting yourself to see if you're following your intention and going toward what you want, even when that's the difficult path.

If the team agrees that quality is the responsibility of the whole team, obligation can get in the way. With teams where quality is everyone's responsibility, I often see the developers very involved in technically enabling the feedback loops that are fundamental to improving quality. If the testing team is obligated to solely shoulder the entire burden of testing, it prevents others on the team from having the space to take responsibility.

If these concepts resonate with you, I would encourage you to take your new awareness and your intention to deliver great software and confront how you can take responsibility. Many teams struggle with quality and are frustrated that so-called process improvements aren't dramatically improving things. Hopefully these tools will help you move past the barriers many teams face in their own behaviors.


About the author: Zach Nies has 20 years of engineering and product development experience. He has served on standards bodies such as the W3C's HTML working group and currently serves on the board of directors for Agile Denver. He is now Rally Software's vice president of products.


Rate this Tip
To rate tips, you must be a member of SearchSoftwareQuality.com.
Register now to start rating these tips. Log in if you are already a member.


Submit a Tip




DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Software Design & Testing - Project Management
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts