Automation
Also Known As
- Automated Testing (in Extreme Programming)
- Automation (in Lean Software Development)
- Continuous Delivery (CD)
- Continuous Integration (CI)
- Formalisation
- Mechanisation
- Process Automation
- Pull Systems (in Lean Software Development)
Related
Addresses / Mitigates
- Operational Risk: Introduces more consistency in process operations and removes opportunity for human error
- Schedule Risk: Too much focus on automation can distract from more important tasks
Attendant Risks
- Complexity Risk: Introducing code adds to the complexity of a project
- Feature Fit Risk: The automated process might not capture the variability of requirements of the original approach
- Invisibility Risk: The quality and performance characteristics may be obscured by automation.
- Process Risk: Automation introduces a process
- Agency Risk: Automated processes have their own agency and might not work as desired.
- Security Risk: Automation can introduce security issues if automated processes are given elevated privileges.
- Map And Territory Risk: Automation of reporting and status can hide the truth of a system's health.
Used By
- Extreme Programming: XP emphasizes the use of automated tests to ensure the software works as expected.
- Lean Software Development: Lean uses automation to eliminate waste and improve efficiency, especially in testing and deployment processes.
- Scrum: Automation of tests and integration (CI/CD) is common in Scrum practices.
Description
"Automation describes a wide range of technologies that reduce human intervention in processes, mainly by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines.": - Automation, Wikipedia
One of the key ways to measure whether your team is doing useful work is to look at whether, in fact, it can be automated. And this is the spirit of DevOps - the idea that people in general are poor at repeatable tasks, and anything people do repeatedly should be automated.
See:
See Also
Extreme Programming
An Agile software development methodology that emphasizes customer satisfaction, teamwork, and frequent delivery of small, functional software increments.
Lean Software Development
An Agile software development methodology that emphasizes eliminating waste, building quality in, creating knowledge, deferring commitment, delivering fast, respecting people, and optimizing the whole.
Scrum
An Agile framework for managing and completing complex projects.