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: Automating laborious tasks clears the schedule for higher-value work.
Attendant Risks
- Operational Risk: Automated processes may be less observable than manual ones.
- Complexity Risk: Introducing automation adds to the complexity of a project
- Feature Fit Risk: The automated process might not capture the variability of requirements of the original approach
- Communication Risk: The quality and performance characteristics may be obscured by automation.
- Process Risk: Automation introduces a process, which therefore means a new source of Process Risk.
- 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.
- Internal Model Risk: Automation of reporting and statuses can lead to false confidence about 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 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.