“The best time to plant a tree was 20 years ago. The second best time is now.”
– Chinese Proverb
Any investment you make in automation starts to pay off quickly, and it soon starts to snowball. There is no good reason to postpone your investments in automation because the business case for it is rock solid. If you are only driven by delivering features, and make no time for improving how you deliver them, at some point, you will be outclassed by competitors. When you automate, you amplify your efforts.
Many teams don’t even try to calculate whether or not automation pays off. Luckily, Randall Munroe of XKCD built this table. It shows the ROI for time spent on automating tasks over five years. For example, if your developers do a five-minute routine task five times a day it would be worth automating that task if it takes less than four weeks.
Agile software development practices and IT infrastructure automation tools are an integral part of DevOps. Eficode has vast experience of helping customers on their DevOps journeys so they can reap the business benefits of comprehensive automation.
The Change and Release Manager of DNA, a Finnish telecommunications group, says: “Without DevOps practices, building the same capabilities would have had operational and development costs of several thousand euros per hour.” Read more about how DNA saved time, improved quality, and increased revenue with DevOps
Maximize the bus factor
In the current climate organizations need to increase their resilience by lowering their dependence on the availability of individuals. Vital operations cannot depend on one person.
In development we often talk about the bus factor. That is, how many people need to be run over by a bus for your business to be in trouble? Unfortunately, many companies are not aware of this and end up with a bus factor of one on key competencies and at critical junctures.
An efficient way of addressing this is to turn our knowledge and expert capabilities into automation. This prevents knowledge loss because automation can explicitly reproduce mental models and the development processes. It also increases the bus factor because anyone can execute a script.
As an added bonus, automation can also help with on-boarding processes because knowledge again is explicit. As long as you run your automation regularly it will remain updated. Compare this with lengthy written documentation that tends to be outdated as soon as it is completed.
Pay attention to your bus factor as a source of obvious targets for automation.
Shift left on everything
In DevOps, we often talk about shifting left on quality assurance, security, and many other things. It’s a principle to find and prevent defects early in the software delivery process. The earlier you can get feedback, the more you will save on costs.
It is much better to get a notification from an automated monitoring system than to be informed of production incidents by angry customers. It is also much better to catch an error on the developer’s laptop than in production. But having a change approval board slows everything down. It is much better to have guidelines and setups that will allow changes to go to production by default.
Design systems are a way to do this. We can even talk about compliance by design. We can build template projects and processes such that our default behavior is to conform with all the processes and best practices that are encapsulated in the design systems that we build. All of this improves our ability to deliver software quickly and safely to production, which leads to faster time to market.
Every time you get feedback from a part of your value stream that requires action, consider whether the feedback could have been collected earlier. If the feedback comes from a manual or human source, consider if the feedback collection could have been automated to enable further shift left by notifying developers sooner.
Happy developers are productive developers
This might come as a surprise to some people, but software engineers are inherently creative people and a sure-fire way to burn them out is to waste their time and energy on tedious, repetitive tasks. Tasks that, in their minds, should not have to be performed manually.
When we automate it is also an investment in our engineers. Automation allows them to spend more time creating value rather than going through the motions of delivery processes. Often these processes are things like quality assurance, deployment, or change approval. Many of them can be automated, leading to better software delivery capabilities. This reduces handoffs that are doubly expensive due to overly long feedback loops and increased time to market.
For example, take something like a code review. For some tasks it can be highly valuable, but in many cases an automated quality gate can completely eliminate both a manual process and a staggered process.
Look to your teams and ask them what tasks they most loathe completing. These can be good targets for automation.
Automation makes your business more resilient because it makes your teams more efficient, less dependable on any one person, and much happier and more productive in the long run. In addition, automation allows fast feedback loops to improve quality which will make your business more competitive. And the best time to start automating is always today.