How many testers does an organization doing software development need? Lots of ratios get bandied about. Personally, I’ve never felt that there was a really good ratio of testers to developers on any project I’ve worked on. My experiences have ranged from the truly horrible (just me for almost 20 developers) to the mediocre (me full time and another person part time for about 10), to the tolerable (me for four devs). Not surprisingly, this is why I find my job so exhausting when I’m in the midst of a development/testing cycle.
I read an article on Joel on Software today where he mentioned that you should have one tester for every two developers, and one-to-one ratios for certain projects. Sounds like a dream come true! He also makes some other points which I strongly agree with, namely that QA should be an independent organization and not part of the project structure itself. Most places I’ve worked, that’s been the case, though not where I am now (hoping to change this before it becomes an issue). I could talk at length about why the tester should not report to the project manager for purposes of performance management, but suffice to say that a certain measure of independence is required in order to maintain neutrality and avoid conflicts of interest (believe it or not, some project managers out there have a hard time fairly rating a tester who keeps entering defects against their developers’ code!). In any case, I just can’t imagine working somewhere where the developer to tester ratio is one to one, though reportedly that’s what they do at Microsoft.
Johanna Rothman answers the question with a well-considered “it depends.” She suggests considering your products requirements and complexity, your project’s process, and the level of ability of your people when making this decision. This is good advice but it’s also a tiny little bit of a cop-out. For instance, I think it’s totally reasonable to say that when I was testing that app with four clients, four servers, and two possible environments (upgrade vs. new); the ratio I dealt with (that was the 20 developers to little old me situation) was pretty intolerable. I mean come on…if it takes 20 people to write a program, how can it possibly only take one person to test it? Get real!
I personally think the ideal ratio is about one tester for every three to four developers. If it’s a large, lengthy, complex project, it may be desirable to have one to one, at least for a while, especially if the developers need help with unit and integration testing. And contrary to popular belief in some quarters, if you automate testing it doesn’t necessarily mean you’ll need less testers. What it often means is that the testers you have will have more time to do exploratory testing and find more edge condition defects, because the straightforward, repetitive tests have been automated. Once you’re able to identify those “far out” bugs, you won’t want to lose that ability — better a tester finds an obscure bug than a customer!
And please all you project managers out there – have mercy on your testers. Please don’t let your ratio get worse than one tester to five developers if your project is active (i.e., not in maintenance mode). If you do, you’re just asking for an ugly case of QA burnout.