The Ideal Quality Control Person for an Agile Team

I’m not sure if I’m in the minority on this one, but I believe the best fit for the Quality Control role on an agile software development team is a developer hell bent on all things testing and configuration management related. These people are not easy to find. Too many see QC positions as a low rung on the ladder leading to bigger and better things like software development. I don’t see it that way. I see the ideal QC person (QCer) on an agile team as one who can help the team focus on the quality of its software.The Brain - Tonight, quality software. Tomorrow, we take over the world! QC’s focus is on quality, but it’s the entire team’s responsibility to build quality into the end product.

The ideal QCer on an agile team knows how to do all sorts of testing such as: unit, integration, functional, acceptance, performance tests, etc. This does not mean that the QCer is the one responsible for writing these tests, but he/she needs to be able to understand these types of tests well enough to know if the tests are solid. A QCer who cannot do this is at a severe disadvantage in an agile environment. He/she will constantly be at odds with developers who swear they’ve got the right amount of test coverage overall on their code. I’ve found that developers have more respect for QCers who knows how to dig into the details as well as test at the higher levels. When the QCer is not able to get down to these lower levels, they can sometimes struggle to find their place in the process. The types of testing they’ll do will often have to wait until the end of a user story and it only covers a portion of the testing at that point.

Now, on larger projects, you can probably make use of a variety of levels of QC people. The more senior QCer will have the skills I’ve described, while others will only test at higher levels. It’s also not unusual to have QC people dedicated to configuration management on larger projects. The ideal QCer on an agile team should have the ability to understand and contribute to the configuration management (CM) process; including continuous integration. CM is critical to delivering quality software.

I realize I may be asking for too much in a QC role on an agile team. Some will argue that having strong software engineers on the team will eliminate the need for a QCer that provides this depth of knowledge in testing and CM. I’m not convinced. I think strong software engineers will be able to provide a fair amount of guidance on CM and the various levels of testing, but their time will be split in a number of other areas as well which does not provide enough focus on quality like a full time QC person can.

  • jlorenzen

    I agree. Just good luck finding them. 1 out of every 100 developers desire to fulfill a QC role.

  • I think you have to breed them and even then doesn’t the clock start counting down the moment they sit in the “QC chair” until they are burnt out? Do people stick with it for a long time?

  • Joshua

    Too many people see QC as less valuable than development and that plays a HUGE part in burn out. If developers realized the ways in which QC on agile teams can help deliver a better product, then I think some of this burn out would go away.

    Also remember, QC is so much more than just testing.

  • Pingback: i must be an acrobat : a blog by joshua hoover » The Cathedral and bzr()