“Adding people to a late software project makes it later.”
By David Sakko, QA Engineer, and David Hyland-Wood, Director of Technology, Ephox
The engineering team at Ephox tries to respect Brooks’ Law and keep it wholly. Breaking the law is nonetheless a constant temptation for managers when faced with schedule slippage. Every manager thinks, “There must be something we can do.”
As a matter of fact, there is something to be done but, surprisingly, not by adding more developers to a delayed project. Under certain, very specific conditions, quality assurance (QA) test engineers may be added to a project to decrease the linear time required for QA check cycles.
Does QA face the same problem as development?
There are many reasons to suspect that QA faces the same problems that cause developers to fall foul of the law:
- Ramp up time (new people require training on the product to be tested)
- Communications overhead (adding testers increases the coordination necessary)
- Limited divisibility (many tasks cannot be broken down into smaller components).
Adding people late in a release cycle can also result in the paradoxical problem of finding new bugs, which will need to be fixed (or at least recorded and prioritized for a later fix). Putting off testing runs the risk of not allowing developers necessary time to address newly discovered problems.
Use the right tools, at the right time
Modern QA teams make good use of available tools. Having a good way to track bugs, maximizing test automation, recording test cases, and having well-defined manual test plans are utterly essential. Tools suitable for bug tracking (such as Jira, Bugzilla, HPQC, Clearquest), and for test management (such as TestRail, Zephyr, HPQC, Quality Manager, QATraq) can help.
Ongoing staff training can minimize ramp-up time. We can put developers, designers, interns and other staff onto testing but only if trained on both the products and platforms we wish to test. Starting early, preparing plans, and reducing complexity can help, too.
A solution for managers struggling with Brooks’ Law
To maximize divisibility of testing tasks, we try to ensure that we have as many platforms as our product supports, and we try to have multiple platforms when needed for our test engineers. We don’t want our testers to fight over toys!
Using these approaches allows us to maximize the number of testers we can apply to a QA test cycle. In a recent release of Textbox.io, we were able to reduce eight linear days of manual testing on iOS and Android mobile platforms to a single day by stepping through our test plans in parallel. We could not have reduced it much farther; test plans often contain internal dependencies that restrict them from being broken up arbitrarily.
Our conclusion* was that Brooks’ Law can be subverted for QA testing within strict limits if, and only if, execution of test cases occurs without additional training of testers. We determined that the number of people to be added can only increase up to the number of test platforms available for testing.
This small refinement to Brooks’ Law is a minor corner case. Nevertheless, it provides a new and occasionally useful technique for software managers who find themselves behind schedule.
If you manage a development team and would like to learn more about QA, please reach out via firstname.lastname@example.org.