Automation
Engineering and Operations Automation
Summary
Automation is used for repeatable engineering and operational work, including delivery pipelines.
Reasoning
Repeating engineering and operational tasks by hand takes time, and the results can vary depending on who performs them. Automation produces consistent results, speeds up routine responses, and reduces dependence on knowledge held by a few people.
Automation also takes effort to develop and maintain. Whether it is worthwhile depends on the effort it saves and the risk it removes.
Implemented By These Standards
- Health Data Interoperability
- Schema Design & Evolution
- Code Style & Formatting
- Configuration Management
- Database Migration Tooling
- Dependency & Runtime Management
- Linting & Style Enforcement
- Static Code Analysis
- Version Control
- Cost & Impact Visibility
- Build & Artifact Management
- Continuous Delivery & Deployment
- Continuous Integration
- Rollback Strategy
- Backup & Disaster Recovery
- Metrics, Monitoring & Alerting
- Runbooks
- Container Orchestration
- Environment Strategy
- Infrastructure as Code
- Managed Services
- Accessibility Testing
- Application Security Testing
- Integration Testing
- Performance & Load Testing
- Test Automation
- Test Data Management
- Unit Testing
- Vulnerability & Dependency Management
Pipeline Automation
Summary
Repeatable delivery pipeline tasks are automated by default, and automation is incomplete while steps that could be automated remain manual.
Reasoning
Manual pipeline steps depend on someone taking the right action at the right time. This can delay delivery and make releases inconsistent. A missed or incorrectly performed step can change the result without leaving a clear record of what happened.
Automation runs the same steps each time and records the results consistently. Engineers receive faster feedback, can compare failures more easily, and spend less time performing routine pipeline steps.
Implemented By These Standards
- Schema Design & Evolution
- Configuration Management
- Database Migration Tooling
- Linting & Style Enforcement
- Static Code Analysis
- Version Control
- Build & Artifact Management
- Continuous Delivery & Deployment
- Continuous Integration
- Rollback Strategy
- Infrastructure as Code
- Accessibility Testing
- Application Security Testing
- Integration Testing
- Unit Testing
- Vulnerability & Dependency Management
Automation as Code
Summary
Automation logic is kept in version control and maintained like any other engineering code.
Reasoning
Automation repeats the same logic on every run, including any defects. Version control lets engineers review changes and trace failures to the changes that caused them.
Automation can become outdated as the systems and tasks it supports change. Regular maintenance and testing keep it working as intended.
Implemented By These Standards
- Schema Design & Evolution
- Code Review
- Code Style & Formatting
- Database Migration Tooling
- Linting & Style Enforcement
- Static Code Analysis
- Version Control
- Continuous Delivery & Deployment
- Continuous Integration
- Container Orchestration
- Infrastructure as Code
- Integration Testing
- Test Automation
- Unit Testing
- Software Supply Chain Security
Automation Supports Human Judgement
Summary
Automation checks predefined conditions consistently, while people judge whether a change is appropriate when context or trade-offs matter.
Reasoning
Automated checks are limited to their rules and inputs. Passing those checks does not establish that a change is right for its users or the system.
Human review considers the intended outcome and wider consequences. It can challenge assumptions and weigh trade-offs that automated checks cannot resolve.
Implemented By These Standards
- AI-Assisted Development
- AI-Assisted Incident Investigation
- Branching Strategy
- Code Review
- Database Migration Tooling
- Linting & Style Enforcement
- Static Code Analysis
- Continuous Integration
- Infrastructure as Code
- Accessibility Testing
- AI-Assisted Quality Engineering
- Integration Testing
- Test Automation
- Unit Testing
- Software Supply Chain Security