The primary goal of the Saigun is to achieve continuous high quality and productivity. The maturing of the Saigun's development process required implementation of multiple key practices, which direct specific actions affecting quality throughout the process.
By implementing key practices, the Saigun has a systematic method of detecting and eliminating defects, with a goal to do so as early in the development lifecycle as possible.
Inspections and peer reviews are the key to having maximum impact on quality. At Saigun, every individual is trained in the inspection process, and inspections are used at every stage of the development lifecycle. All design documents are methodically inspected, and peer reviews following established checklists are required on all code. The entire inspection process is coordinated by a select group of specially trained inspection moderators, and the results are captured for analysis and subsequent action.
Retrospectives are a proven method for improving quality and processes, and they have long been employed by Saigun. This key practice provides important insights into specific aspects of the process that were successful or unsuccessful, and it documents specific areas requiring change. As part of the CMMI model adoption process, we added the formal task-at the program level-of tracking the top three recommendations through completion.
Defect analysis is another critical practice Saigun, providing a formal means to uncover defects, identify the most common types of defects, determine their root cause, and set a course of action for preventing such defects from recurring. This analysis explores specific changes that can be made in review cycles, training, testing, and other areas. In addition, defect analysis at the subsystem level has led to vital improvements in project management and better communication of dependencies among various teams.
All managers and the majority of engineers Saigun are trained in project management fundamentals. This effort ensures that each project is well organized and managed, with all milestones, risks, and dependencies clearly identified and tracked. As a result, quality assurance tasks are planned from the beginning, and feature sets can be adjusted to ensure that all quality assurance tasks are retained in meeting the schedule.
Applying a testing methodology that shifts the focus away from "catching defects before they get out the door"-and toward catching them early as possible in the lifecycle instead-has had a profound impact on both quality levels in Saigun, as well as on the cost-efficiency of the Saigun's development process.At a fundamental level, developers are writing code with the forethought to make it easier to test. In addition, developers are charged with ensuring a high percentage of code coverage, testing functionality throughout every primary branch. This important step sets the stage for a more streamlined testing process down the line.
Of primary importance is ensuring quality in the top-of-branch-or mainline-of the software configuration management system. The fact is, quality in the mainline affects quality throughout the entire development process. By raising the quality of the mainline, Saigun has been able to perform more thorough customer-based testing downstream while reducing the cost of correcting defects introduced by individual branches of code.
To elevate quality in the mainline, a mainline stability test was implemented. This test validates functionality and reliability based on a variety of high- and low-end configurations. Testing is progressive, with individual branches of code tested as they are submitted into the mainline. If a test fails as a result of any submission, the process is halted until the offending branch of code is identified. The problem is corrected or the branch removed, mainline stability is re-validated, and then testing is opened again for branch submissions.
Project managers are held accountable for the number of mainline test shutdowns caused by their code submissions, thus shifting the measure of success from functionality of submissions on-time, to quality of submissions on-time.4321