Best Practices from the
From the Fall 1995 issue of the Complexity Management Chronicles
This newsletter reports on the best practices we have seen while working with our clients. We have categorized these practices by industry group.
This client transferred one of their best developers into the test team. The developer mentored the test team and significantly improved the entire team's testing depth and breadth on challenging projects.
Financial Service Companies:
One client developed excellent metrics enabling management to understand project progress. Here is a list of a few key metrics: total tests completed out of the total number of tests, number of bugs opened over time, number of bugs which have re-occurred, number of bugs closed. This client displayed all their metrics in graph format to speed comprehension.
The same client instituted exit and entry criteria that had to be met before software could be "promoted" from one test phase to another. This ensured that necessary tasks were handled as early in the cycle as possible and as we know, the earlier something is corrected, the cheaper it is to correct.
"Fast cycle" development methods were employed by two clients. To produce software quickly, limited functionality was provided. Limited functionality, i.e. smaller releases, meant less to test in any given release. By implementing smaller releases, the risk to the corporation was less. Frequent installations enabled the development team to "practice" roll-outs more often and improve their performance.
One client, reeling from paying out compensatory damages to customers, began adhering to project life cycle, i.e. a standard development methodology. Following a methodology enabled tasks to be performed at the most optimal time and enabled all team members to know what deliverables they could expect. These procedures brought the organization up to a level 2, "Repeatable Process", on SEI's CMM.
The testing area controls the builds at many client sites. This enables testers to make forward progress on testing and makes for a cleaner roll-out.
The experience of retailers, who have utilized distributed architectures for many years, is extremely relevant to development shops adopting client server.
Retailers routinely use testing labs. Labs are dedicated rooms where all combinations of hardware/software present at various stores is installed. Before rolling out new software, it is tested in the lab on all possible environment configurations.
Retailers also utilize alpha and beta testing. They have alpha sites, stores located near corporate headquarters, where new software can "fail fast". This ability to "fail fast" and make swiftly make corrections proved instrumental in implementing a significantly enhanced product at a client of ours.
Retailers routinely use formal regression test suites. This structure enables them to execute tests without much upfront planning and to promote Customer Service or operational personnel into testing roles.
Our retail clients tightly control their roll-outs of new software to the stores. One retailer has a staff of two devoted to it. Client server implementers are learning the hard way about controlling roll-outs. (We witnessed two client server implementations where the client side roll-out did not receive sufficient attention with negative consequences, embarrassment to the firm in one and chaos in the field in the other.)
In closing, space limits our ability to list all the best practices we have seen or to fully detail the practices listed above. For more information, please call us.
©Complexity Management 1995
Complexity Management Chronicles, a newsletter for software quality assurance professionals, is published in print form four times a year. Send your name and snail-mail address to the e-mail address below if you would like to be on the mailing list - at no cost to USA mailing addresses.