Skip to main content

Engineering guide / Software quality

Make the next change easier to understand and verify.

Consistent code helps people work together. It does not establish that a feature behaves correctly, fits the system or can be operated safely. Maintainable software needs a connected set of practices: clear rules, explicit design decisions, thoughtful review, useful tests and feedback from the running service.

Different checks, different questions

A clean build is useful evidence with a limited scope.

Imagine adding order cancellation to an existing application. A formatter can normalize the new code. Types can check declared contracts. Neither decides who may cancel, what happens after dispatch, or how a repeated request affects the order. Those questions need explicit behavior, design and verification.

Consistency supports comprehension
Shared naming and formatting rules reduce avoidable variation. They make a change easier to read, but cannot decide whether its business rule is correct.
Correctness depends on the requirement
A test can faithfully confirm the wrong expectation. Review the intended behavior and meaningful exceptions before treating a passing assertion as acceptance.
Maintainability includes future work
Another person needs to understand the decision, locate the affected behavior, change it and check the result. Documentation and usable tests are part of that work.

Six connected quality practices

Give every practice a purpose and an evidence boundary.

For the illustrative cancellation change, each practice addresses a different source of uncertainty. Select depth according to the actual consequence of an error.

Conventions that people can apply

01

Quality question: Can another contributor read this without decoding a new style?

Purpose
Naming, structure and formatting rules give contributors a shared way to express ordinary code.
Starting evidence
The repository's written conventions, existing patterns and configured automated checks.
Apply it to the change
Use the established names and structure for the cancellation code. Automate objective style rules where practical and separate unrelated formatting from behavior changes.
Responsible judgment
Maintainers decide the local convention and distinguish required rules from personal preferences.
Evidence produced
A readable diff and results from the relevant formatter, linter or static checks.
Does not prove
That cancellation is permitted in the right circumstances or that every runtime value is valid.
Maintenance value
Later contributors can focus on the behavior instead of relearning presentation conventions.

Design decisions with their reasons

02

Quality question: Where should this rule live, and what else depends on it?

Purpose
A consequential decision about boundaries, state or interfaces needs a rationale that survives the original author.
Starting evidence
Current data ownership, dependent consumers, alternatives and constraints that shaped the choice.
Apply it to the change
Decide where cancellation state is authoritative and how other components learn about it. Record a significant tradeoff rather than only drawing the final component diagram.
Responsible judgment
The technical owner and affected teams assess the boundary and its consequences.
Evidence produced
A decision record with context, chosen approach, consequences and status.
Does not prove
That the implementation follows the decision or that a previously accepted design remains suitable forever.
Maintenance value
A future change can revisit the original constraints. Preserve the old decision when a new one supersedes it.

Review that challenges the behavior

03

Quality question: Does this change solve the intended problem without avoidable complexity?

Purpose
A reviewer examines meaning, system fit and cases that automated checks may not express.
Starting evidence
The intended cancellation behavior, the diff, relevant surrounding code and verification results.
Apply it to the change
Trace an allowed cancellation and a rejected one. Ask how repeated requests, concurrent updates and downstream effects are handled where those situations apply.
Responsible judgment
A reviewer with relevant expertise assesses the change; product owners resolve ambiguous business behavior.
Evidence produced
Resolved review questions, accepted tradeoffs and identified follow-up work.
Does not prove
That every execution path has been exercised or that an unfamiliar specialist concern has been assessed.
Maintenance value
Review spreads understanding and catches choices that would make subsequent changes harder.

Tests that would detect the wrong result

04

Quality question: Which failure would this test actually catch?

Purpose
Checks express expected behavior and guard important boundaries at an appropriate level.
Starting evidence
Acceptance examples, known failure modes, real interface contracts and the behavior of dependencies.
Apply it to the change
Check cancellation eligibility in focused tests, persistence at the data boundary and a critical user flow where appropriate. Ensure a deliberately wrong result would fail the relevant assertion.
Responsible judgment
Engineers choose useful coverage; reviewers assess whether the tests exercise the requirement.
Evidence produced
Repeatable results tied to the behavior, with skipped or unavailable checks stated.
Does not prove
That a mock matches the deployed dependency, every input was covered or a coverage percentage equals quality.
Maintenance value
A later refactor can reveal a changed contract before the change is accepted.

Release and operating evidence

05

Quality question: Will the tested change work in the environment that receives it?

Purpose
Configuration, deployment sequence and service behavior can differ from a developer's test environment.
Starting evidence
The release artifact, configuration, dependency versions, operating responsibilities and recovery approach.
Apply it to the change
Check the cancellation change in the intended release context. Define how the authorized operating team will detect an unexpected result and respond.
Responsible judgment
The release and service owners decide readiness and manage any live observation or recovery.
Evidence produced
Environment-specific checks, release decision, monitoring signals and a usable response plan.
Does not prove
That a successful local test is production proof or that an uneventful limited rollout exposes every rare fault.
Maintenance value
The team can connect a reported problem to the released change and its operating conditions.

Learning that improves the next change

06

Quality question: What should become easier or more explicit after this work?

Purpose
Review findings and actual defects reveal missing knowledge, checks or ownership.
Starting evidence
The resolved issue, its cause, affected behavior and evidence of the correction.
Apply it to the change
If cancellation can be repeated incorrectly, repair the behavior and add a relevant regression check. Update the explanation or decision record when the old one is misleading.
Responsible judgment
Maintainers prioritize the improvement and verify that it addresses the actual cause.
Evidence produced
A corrected behavior, useful regression protection and current supporting documentation.
Does not prove
That adding more rules or tests automatically resolves the underlying problem.
Maintenance value
Future contributors inherit the lesson through the code and its evidence, rather than relying on someone remembering the incident.

Read the result precisely

What does a green check actually establish?

These examples are deliberately narrow. A result supports the behavior and environment it exercised, not every claim someone might attach to it.

EvidenceCan supportCannot establish aloneReview judgmentCancellation example
Formatting and lintConfigured rules passBusiness correctnessRule suitabilityConsistent names and structure
Type checkingDeclared contracts fitAll external input is validBoundary validationAllowed state representation
Design recordReason for a decisionImplementation conformsCurrent tradeoffsAuthoritative state owner
Behavioral testsSelected expectations holdComplete requirement coverageUseful assertionsReject cancellation after dispatch
ReviewInspected design and logicAll runtime paths passRelevant expertiseRepeated request semantics
Operating checksObserved release behaviorEvery future conditionExposure and responseDetect unexpected order states

Review one complete change

Connect the requirement to the evidence.

Use a real change to assess quality practices. A list of tools is less informative than seeing how a team makes and verifies a decision.

  1. 01

    Describe the behavior

    State the intended result and important exceptions. For cancellation, identify allowed states, authorized actors and effects on connected work.

  2. 02

    Locate the boundary

    Find the code, data and interfaces that own the behavior. Check whether a design decision or compatibility promise constrains the change.

  3. 03

    Implement a readable change

    Follow established conventions and keep the diff coherent. Explain a necessary tradeoff instead of introducing speculative abstractions.

  4. 04

    Verify at the right levels

    Choose checks that address the failure modes. Review their assertions, the actual user behavior and any environment-specific limits.

  5. 05

    Preserve the handover

    Record unresolved work, operating responsibilities and any changed build or release instructions. Leave the next contributor a usable account of what was established.

Keep the standard useful

Improve code health without turning polish into a barrier.

A standard should help people make sound changes. It needs room for engineering judgment and a clear distinction between a required correction and a preference.

Separate requirements from preferences
Make mandatory conventions explicit. Explain correctness or design objections through evidence; label optional polish so it does not obscure a consequential issue.
Keep exceptions visible
When an urgent change leaves work behind, record the reason, affected risk and follow-up owner. An exception should not silently become the normal standard.
Maintain the checks themselves
Remove misleading assertions, investigate flaky results and keep test setup understandable. A check that the team routinely ignores provides weak evidence.
Match review to expertise
A familiar code style does not make every reviewer qualified for every concern. Bring in the relevant expertise when a change affects a specialized boundary.

Questions about software quality

Ask about the method behind the result.

Useful answers connect an engineering practice to the behavior it protects and the uncertainty it leaves.

Are coding standards just formatting rules?
They can include naming, structure and local engineering conventions. Formatting is the easiest part to automate. Design, business behavior and operating readiness still need their own evidence and judgment.
Does high test coverage mean the software is good?
Coverage describes code reached under a particular measurement. It does not establish that assertions are meaningful, requirements are correct or external systems behave like test doubles. Inspect representative tests and their limits.
Should every change need an architecture document?
No. Reserve a decision record for a significant choice whose context and consequences future contributors need. Routine edits can use the existing decision and explain their purpose in the change description.
Should reviewers require perfect code?
Google's review guidance favors changes that improve overall code health without requiring every optional refinement. That does not justify accepting a known correctness problem or ignoring a requirement relevant to the change.
What evidence should a buyer request?
Ask the team to walk through a recent authorized example: the requirement, relevant design choice, review, checks, known gaps and release considerations. Avoid asking for another customer's confidential code or treating a tool list as proof of quality.

Source basis

Sources behind the control model.

  • 01

    Google Engineering Practices

    The Standard of Code Review

    Guidance balances progress with improving code health, distinguishes technical evidence from preference and rejects perfection as a routine approval requirement.

  • 02

    Google Engineering Practices

    What to look for in a code review

    Review criteria cover design, functionality, complexity, useful tests, naming and documentation. The article's cancellation example is illustrative, not a case from this source.

  • 03

    AWS Prescriptive Guidance

    Architectural decision record process

    Describes decision context, consequences, ownership and review. Accepted decisions are preserved and superseded through a new decision when the approach changes.

  • 04

    Google SRE

    Testing for Reliability

    The sections on test limits, traditional test layers and production configuration explain why passing tests alone do not establish reliability. Operational examples require their own environment and authority.

[ WORKFLOW / SYSTEMS AUDIT ]
THE FIRST ENGAGEMENT

Start with one real workflow

A Systems Audit is the usual starting point. If the opportunity is already clear, we can move directly into a focused build.

Show Us the WorkflowStart with the free automation readiness checklist

OBSERVEQUANTIFYDECIDEBUILD