Sometimes it seems DevOps is engaged in a tug of war between adapting to change and standardizing practices to increase efficiency and function at scale. DevOps streamlines the development process, but you don’t want to miss out on the ability to creatively address new circumstances. Thankfully, the two ideals are not mutually exclusive; Automation can help you focus on standardization while still prioritizing adaptability for a ‘best of both worlds’ approach to DevOps.
Standardization is most important when:
- Multiple teams or departments need to collaborate despite different processes, vocabulary, or metrics.
- Regulatory compliance issues demand increased control over how various processes function.
- Budgetary demands necessitate closer management of resources across all involved groups.
However, too much standardization can make your systems and processes too inflexible, to the point where your team suffers from issues like:
- A lack of innovation or a prescriptive solution to every problem—even when the solution does not effectively serve the outcome.
- Slower solutions or processes that can be quickly handled by a team instead of waiting on a standardized system to implement a solution.
Automation provides the answer. Customizing your automation to the right processes is key so that your team isn’t caught up in sluggish manual tasks that could be automated. Selectively automating also prevents teams from becoming mentally complacent or reliant on their automation software for tasks that are better suited to human innovation.
For example, many DevOps teams speed up governance tasks by using a ‘standard change,’ an accepted change that is low risk and common enough to be standardized. By their nature, code changes can’t really be ‘standard’ since almost any change can create problems in production, ranging from minor usability issues to major outages. Not every step can be automated, but a ‘standard change' can be set with specific automation applications and rules with governance (change management) processes; this should result in code being accurately changed while the update release is not unnecessarily slowed.
Through It all, the ‘automate where possible’ mandate still applies—just with the understanding that those processes that demand more human ingenuity fall into the ‘not possible’ category.