Technical Standards

These technical standards are a set of general guidelines for software development that I have curated over time to support the creation of high-quality, high-value software products.

Technical standards define what “good” looks like from a technical perspective. The scope is broad, covering all aspects of the software development lifecycle: requirements specification, system design, coding conventions, testing strategies, deployment, and monitoring. But the focus of technical standards is on the desired end state, not the means of getting there. Methods and tools that help us to achieve our design goals – things like iterative and incremental development driven by feedback loops – are out-of-scope.

The focus here is on concrete standards and verifiable end states, rather than abstract principles of programming and software design. For those topics, see my digital garden.

Technical standards are owned by the technical stakeholders in a software project. In an enterprise context, the act of including a technology in a technical standard signifies that it is approved for use in development, testing, and production. Organization-level standardization helps contain technical sprawl, particularly in large-scale distributed systems.

Requirements levels

The capitalized words REQUIRED, MUST, MUST NOT, RECOMMENDED, SHOULD, SHOULD NOT, OPTIONAL, and MAY are to be interpreted as described in IETF RFC 2119.

Index