the time for testing and re-work to a reasonable amount.
We don't have time for those quality measures; we are in a rush. But the race does not always go to the swift. The landscape is littered with the carcasses of firms that delivered systems to market quickly, but with so many problems that they alienated their customers and lost anyway. The software field contains many forgotten names of vendors and products that once glittered with promise. The fact that they were first to market has long since become irrelevant.
This article is entitled "Speeding the Software Delivery Process," but it could be called "Speeding the Testing Process." The testing and quality assurance activities on a project have a rich potential for streamlining and improvement, and so are worth our attention.
So, How Do We Speed Delivery?
There is no silver bullet or quick two-minute answer to the question "How can we improve time to market without sacrificing quality?" There isn't one simple, magical thing we can do to speed delivery. Rather, we need to pay careful attention to several factors. Success comes from managing seemingly minor items which all can impact time to market.
A common approach to speeding the testing is simply to exhort the testers to "work smarter and harder" and to cut the scheduled test time, but this approach usually undermines the effectiveness of the test. "Damn the torpedoes, full speed ahead," is a great rallying cry-until you hit a torpedo.
Can we use the test and QA processes to speed not just the testing but also the overall product delivery cycle? Yes, definitely. There are many ways to reduce the test cycle time and speed the overall delivery process, including:
- managing testing like a "real" project
- strengthening the test resources
- improving system testability
- getting off to a quick start
- streamlining the testing process
- anticipating and managing the risks
- actively and aggressively managing the process
For the remainder of this article, I will elaborate on points 1 and 2 in the above list. Subsequent articles in this three-article series will discuss the remaining points 3-7.
1. Manage Testing like a "Real" Project
This suggestion may seem obvious, but the lack of sound project management is a common cause of delays and mediocre (or worse) quality.
Have a workable test plan . Taking the time to develop a plan that is more than a sketch on a napkin is a radical idea in some organizations. But without an organized plan, you can fall into testing blindly and reactively.
- Educate yourself early and as thoroughly as possible on the system functionality, the users' success factors, the likely risks and vulnerabilities, and the test environment and testing tools.
- Understand the "pull/push" nature of test projects. If support activities, like developing test procedures or test tool training, are not done during the first third of a project, in the hurly-burly of pushing toward the project deadline they never will be done.
- Enhance your estimating and negotiating skills. Estimating realistically is difficult, but can be done-it is an acquired skill to be vigorously pursued.
- Remember to identify and allow for contingencies.
- Incorporate mechanisms in the test plan, to monitor progress vs. plan and update the test plan periodically as conditions change.
Develop realistic estimates. Without estimates and schedules that can be relied on, we are already out of control. But most test team leaders and testers are not confident of their skills in this area.
Understand and control the factors that can lead to project slippage. For example, an apparently simple, last-minute change to a feature can play havoc with