JKS & Associates

Best Practices

Software Consulting

 

Up

horizontal rule

What are some of the best practices in software engineering?

The Airlie Software Council identified nine (9) Principal Best Practices observed to be used by the software industry, and deemed essential for nearly all software development projects. The Council was formed in 1992 and included participation from the best and some of the most recognized experts in software from industrial and academic environments.  These nine best practices include :

1. FORMAL RISK MANAGEMENT

The discipline of risk management is vital to the success of any software effort. A formal risk management process requires corporate acceptance of risk as a major consideration for software program management, commitment of program resources, and formal methods for identifying, monitoring, and managing risk.

2. AGREEMENT ON INTERFACES

To deal with the chronic problem of vague, inaccurate and untestable specifications, the Council proposed that a baseline user interface must be agreed upon before the beginning of implementation activities, and that such a user interface must be made and maintained as an integral part of the system specification. For those projects developing both hardware and software, a separate software specification must be written with an explicit and complete interface description.

3. FORMAL INSPECTIONS

Inspections should be conducted on requirements, architecture, designs at all levels (particularly detailed design), on code prior to unit test, and on test plans.

4. METRIC-BASED SCHEDULING AND MANAGEMENT

Statistical quality control and schedules should be maintained. This requires early calculation of size metrics, projection of costs and schedules from empirical patterns, and tracking of project status through the use of captured result metrics. Use of a parametric analyzer or other automated projection tool is also recommended.

5. BINARY QUALITY GATES AT THE INCH-PEBBLE LEVEL

Completion of each task in the lowest-level activity network needs to be defined by an objective binary indication. These completion events should be in the form of gates that assess either the quality of the products produced, or the adequacy and completeness of the finished process. Gates may take the form of technical reviews, completion of a specific set of tests which integrate or qualify software components, demonstrations, or project audits. The binary indication is meeting a predefined performance standard (e.g., defect density of less than four per function point). Activities are closed only upon satisfying the standard, with no partial credit given. Quality gates can be applied at any time during the project--- including solicitation.

6. PROGRAM-WIDE VISIBILITY OF PROGRESS VS. PLAN

The core indicators of project health or dysfunction---the Control Panel indicators---should be made readily available to all project participants. Anonymous channel feedback should be encouraged to enable unfavorable news to move freely up and down project hierarchy.

7. DEFECT TRACKING AGAINST QUALITY TARGETS

Defects should be tracked formally at each project phase or activity. Configuration management (CM) enables each defect to be recorded and traced through to removal. In this approach there is no such thing as a private defect, that is, one detected and removed without being recorded. Initial quality targets (expressed, for example, in defects per function point) as well as to counts defects removed in order to track progress during testing activities.

8. CONFIGURATION MANAGEMENT

The discipline of CM is vital to the success of any software effort. CM is an integrated process for identifying, documenting, monitoring, evaluating, controlling, and approving all changes made during the life-cycle of the program for information that is shared by more than one individual or organization.

9. PEOPLE-AWARE MANAGEMENT ACCOUNTABILITY

Management must be accountable for staffing qualified people (those with domain knowledge and similar experience in previously successful projects) as well as for fostering an environment conducive to high morale and low voluntary staff turnover.

How many of these best practices are carried out on your project? Would any of these practices help reduce or eliminate some of your encountered problems during your development projects? In my consulting experience, formal risk management is the best practice that is utilized the least on projects. The most popular reason such practices are not followed is that "there is no time to do them."

© 1998-2004 by John Suzuki
Last Revised : 9/15/2004

horizontal rule

[Up] [Home Page]