Standards are the keystone of the SQS. They provide the basis against which reviewing and monitoring are conducted. Areas of standardization cover the entire SLC from the definition of the SLC itself through the methods by which software is withdrawn from use. All aspects of the SLC are open to standardization, even the process by which the standards themselves are created. Standards may be purchased, obtained from professional and user groups, and specifically developed for or by the organization.
No matter how standards come into being, however, they must be relevant to the organization and the software development process; that is, they must be reflective of the needs of the organization. Standards must be appropriate to the environment in which the software is to be developed and used.
Recommended approaches and guidelines are alternatives to standards in those situations in which some consistency is needed but absolute consistency may be inappropriate.
Finally, the application of standards must be uniform and enforced across the full organization, at least at the project level. While it is desirable from a consistency point of view to impose the same standards on all software development groups within an organization, it is not always feasible from a business standpoint. Within a single project, however, there must be standards uniformity.