• A standard is a rule or basis for comparison that is used
to asses the size, content, value or quality of an object or activity. • Two types of standards – Describes the nature of the object to be produced – Defines the way the work is to be performed • Review Standards – specifies content, preparatory materials, participants, responsibilities and resulting data and reports • Review Procedures – describes how the work is actually to be done, by whom, when and what is done with the results Definitions • Authoritative direction – Policy : A governing principle, typically used as the basis for regulations, procedures or standard and generally stated by the highest authority in the organization – Regulation : A rule, law or instruction, typically established by some legislative or regulator body with penalties for noncompliance – Specification : The precise and verifiable description of the characteristics of a product Definitions • Characterization of how a task is to be performed or the required characteristics of the result – Guideline : A suggested practice, method or procedure, typically issued by some authority – Procedure : A defined way to do something, generally embodied in a procedures manual – Standard : A rule or basis for comparison, typically established by common practice or by a designated standards body Definitions • The way in which tasks are accomplished – Convention : A general agreement on practices, methods or procedures, typically arrived at by explicit agreement – Method : A regular, orderly procedure or process for performing a task, typically defined by an expert – Practice : A usual procedure or process, typically a matter of habit or tacit agreement – Process : A defined way to perform some activity, typically established by technical specialists The Reasons for Software Standards • Standards are needed when many people, products or tools must coexist • The fact that everyone knows and understands a common way of doing the same tasks makes it easier for the professionals to move between projects reduces the need for training and permits a uniform method for reviewing the work and its status • Standards also promote the consistent use of better tools and methods • The lack of an approved standard leaves the organization with no framework to make decisions Benefits of Standards • While standards alone will not make the difference between project success and failure, they clearly help Establishing Software Standards • While it is important to establish standards, it is also important to concentrate on those standards that can be implemented in a reasonable period and that will provide the most immediate benefit to the organization • Organizational standard categories (should have equal mix) 1. Management and planning standards and procedures • Configuration management • Estimating and Costing • Software Quality Assurance • Status reporting 2. Development process standards and methods • Requirements specification • Design • Documentation • Coding • Integration and Test • Reviews, walkthroughs and inspections
3. Tool and process standards
• Product naming • Size and cost measurements • Defect counting and recording • Code entry and editing tools • Documentation systems • Languages • Library system The Standards Development Process 1. Establish a standards strategy that defines priorities and recognizes prior work 2. Distribute, review and maintain this strategy 3. Select individuals or small working groups to develop the top- priority standards 4. Development effort should build on prior work, define areas of applicability, specify the introduction strategy, and propose an enforcement plan 5. The draft standards should be widely distributed and reviewed 6. The standards should be revised to incorporate the review comments and the re-reviewed if changes are extensive 7. The standards should initially be implemented in a limited test environment 8. Based on this test experience, the standards should again be reviewed and revised 9. Implement and enforce the standards across the defined areas of applicability 10. Evaluate the effectiveness of the standards in actual practice • If too many people are involved in the creative process, much time will be wasted and the result is likely to lack technical coherence • It is rarely wise to adopt another organization’s standard without local customizations • Standards should be modified and adjusted based on the experiences in using and enforcing them • If standards are not maintained they will become a routine procedure that takes time without adding value • SQA should not be the owner of standards as they are responsible for enforcing them • If a standard needs frequent maintenance then the area is likely not ready for standardization • Standards should be reviewed at least once every three to five years • Use automated tools whenever possible to enforce standards Standards vs. Guidelines • Appropriate when no • In some cases standards judgment is needed. may be inappropriate • Used when items are • Involves technical judgment arbitrary and done • Example: specification of uniformly limits on module size • Examples: definitions of • In questionable cases, a coding, selection of guideline should be used. programming languages, and use of common design methods • Some standards are essential for maintenance of business or technical control.