|
Standard and Guidelines
From the white paper:
Guidelines and standards are at the core of any process or methodology for software development. They specify the format and content of each deliverable required or produced; they may also specify the steps to take within a given activity. A guideline suggests or recommends an approach or format, while a standard requires it. In either case, you should support the guidelines or standards (via documentation, templates, and tools) and verify them--and, in the case of standards, enforce them--via reviews.
By adhering to guidelines and standards, we help achieve four goals:
 to help verify that a given delivery or activity is complete and correct;
 to ensure that a given deliverable has the proper format and content for use within other activities in the process or for reuse in later efforts
 to ensure consistency among other developed applications;
 to make it easier for those who did not create the deliverable to understand and use it.
As such, guidelines and standards are a key part of quality assurance. Adhering to them doesn't guarantee quality, but it does make quality easier to achieve. Meanwhile, failure to adhere to them almost certainly guarantees greater difficulty in achieving quality. Some may seem so obvious as to not be documented; however, those are exactly the points at which miscommunication can occur.
Guidelines and standards in object-oriented software development can include:
 the overall software development process, including activities and resulting deliverables (scope documents, requirements documents, project plans, etc.);
 notation and format for deliverable documents, such as use cases, object models, dynamic models, functional models, event traces, and so on;
 architecture and design guidelines, including use of particular frameworks and mechanisms (patterns) for given situations;
 object class and hierarchy design guidelines, including canonical class form;
 method standards, including for pre- and post-conditions, parameters, and return values;
 implementation language standards, including use of idioms, exception/error handling, assertions, debugging, and other language-specific issues;
 communication standards, including file and directory organization, file format and layout, source code format and documentation, and naming conventions.
Guidelines and standards are effective only when they are documented and adherence to them is reviewed. To that end, they should be complete enough to be useful, yet not so complex as to make adherence burdensome or difficult.
|