To automate or not to automate?
Imagine business operations as driving a car, with strategy as the final destination of your road trip. In the distance you see mountains, with summits barely visible through the clouds.
You are heading to that place behind the mountains, because there be endless fields of business value, user satisfaction and unicorns. The landscape is diverse. Sometimes the road underneath your wheels is good-conditioned, but often there are bumps and cracks in the tarmac. You might encounter forest trails, dirt roads and other challenges no man has faced before. Perhaps you deliberately choose to cut corners and go off-road once in a while to reach that sweet sweet business value. From time to time your vehicle breaks down, but that is ok. Your crew is well trained to inspect these situations and adapt to them, adopting new skills in the process.
Once you arrive at those lush, green fields of greatness, you eventually start to look at them for what they are: just fields. You gradually notice wheel tracks, indicating you’re not the first to arrive here. Then you find a drawn map of the area, drawn by travelers before you which they have conveniently posted online as well, effectively making this place a commodity. What do you do now? No way you’re shutting your business down. You scout the landscape and set out for newer, greener fields to conquer. All is not lost, because you have gained knowledge and experience on the way here that will help you on your next adventure.
It’s all about the journey, not about the destination.
Flexibility is key
The landscape in which businesses operate is in constant flux, with new best practices and technologies emerging continuously. Last month, Gartner published the Top Strategic Technology Trends for 2021 about tech areas that are likely coming in scope for businesses in the next couple of years. Trends in the list are (among others) Internet of Behaviour, distributed cloud and hyperautomation. In comparison, the same list in 2011 featured the following (again, among others): cloud computing, mobile applications and social networks. The trends from this year’s list might appeal to the imagination, sound futuristic even, whereas nowadays we take the trends from 2011’s list for granted.
This illustrates two things:
- The green fields full of business value (our dot on the horizon) are always changing over time.
- New upgrades for our car become available over time.
How do we deal with these ever-changing factors?
Drawn from the fact that both are changing, one of the best things we can do is invest in flexibility. Make sure that the teams developing and operating our car can focus on delivering the upgrades to the car, putting it in the perfect condition for the terrain that we are heading towards.
Teams should not have to worry about stopping every 100 miles to check if the tail lights work and air pressure in the tires are ok. There is technology available to monitor that from behind the driver seat. Use that tech to automate your operations and eliminate manual, repeating actions. This is also true for development. By automating your SDLC as much as possible, developers can focus on creating and securing functionality, quickly delivering value to your car. First, analyze your processes, then secure it by automating it. Continuously monitor your new process and keep asking yourself, is it still relevant and up to date? Teams are building automated CICD pipelines for multiple years now. But with the adoption of containers and their orchestration platforms, the capabilities of a CICD pipeline have become more demanding. Suddenly we are building microservices in containers that require more thorough tests, complex deployment strategies and have stricter security standards (e.g. image signing, DASTs, blue-green deployments).
By automating the capabilities that were once novel, we enable DevOps teams to shift their attention to mastering new skills and automate formerly time-consuming actions.
How to get on the right track?
There are multiple ways teams can organize themselves to optimize for flexibility and not one is the best one. It depends on factors specific to your organization such as culture, team autonomy, and leadership support.
One of the first things I do when I enter a new organization is mapping out the environment: what does the team setup look like, how advanced are the CI and CD pipelines and are they automated, what are the activities of a team before an artifact is handed over? How are they treating their car? The process of creating these visuals raises questions which I use as a guide to find the people I want to talk to get more information. Talking about charts and diagrams is useful because it is less prone to personal interpretation than an explanation by words.
Another beneficial practice for teams is to experiment with new technologies. You don’t learn to change a tire by only reading books. Get your hands dirty together with your team on a Friday afternoon for example. Another good idea is to regularly show your successes and learning points. I have seen companies organize monthly “markets” where DevOps teams demonstrate their results. This is not only a great reflection for the teams themselves, but it can also spark interest and motivation in other teams.
To answer the question “should you automate?”, I would say yes. Automation is the first step to abstract processes away to the background of an organization’s subconscious. This secures the current value delivery stream while simultaneously freeing up time to investigate new ways of delivering value.