Software Engineering Online

Standards

The predominant contribution of standards is two fold:

  • Provide a compendium of recognized best practices (the “informative” role)

  • Provide a set of specific expectations for developers and customers of software systems (the “normative” role)

Software engineering standards focus on one or both of the following:

  • The process for performing the designated software engineering activity

  • The internal structure for the software engineering product that is to be produced

The general trend in standards development is to focus on the process.  The rationale behind this is that a robust process will produce a good products, but the converse is not necessarily true.  Having good outlines for development documentation (e.g., requirements, design, test plans) does not necessarily produce a good system.  The process specific standards sometimes identify content requirements for the documentation products, but no mandated specific outlines.

A major challenge inherent in the use of standards is that there is no “one size fits all” in software engineering solutions.  Projects vary greatly in size, degree of difficulty of the technical challenge, aggressiveness of the schedule, size of staff, need for post-release reliability, etc.  As a result, virtually all standards need to be “tailored”: a process of modifying the standards based expectations to fit a system’s specific set of needs.  The tailoring can often be done for a group of systems, even of a whole organization.  The tailoring (with associated options) needs to be revisited periodically to ascertain if any updates are required.



Suggestions