Where to start with process automation

Welcome to the twenty-first century! Cars are driving themselves, anything you could want to buy is delivered to your doorstep in two days, and process automation can handle all those basic tasks you used to to have to deal with. You might as well just put your feet up and let your development operation run itself, right? As Lee Corso would say: Not so fast! 

I work with many clients who are starting to use ‘automation’ as a buzz word, the same way many focused on ‘agile’ a few years back. They’ve read a few articles telling about the benefits they can gain, but don’t have a good understanding of the costs or reasons for automation implementation. They tell me they want automation, but they’re not quite sure why.

Automating your workflows can lead to  time savings, fewer mistakes, and more fulfilling working environments for employees, but they can also be costly to set up. Before you go investing in process automation, you should make sure the benefits will outweigh the costs. These are my rules for when to automate:

Automate Recurring tasks

This may seem like common sense, but you’d be surprised how often I see developers spinning their wheels, spending days getting an automated workflow just right, only to realize that a few weeks later, when it’s time to execute the workflow for the second time, things have changed enough that they need to go back to the drawing board. Automation takes time. Whether it be test automation, automated business workflows (hello complex workflows in your ticket tracking software), or creating the right filter to sort your emails into the perfect folder structure, it’s gonna take a bit to configure everything just how you want it. Make sure you balance the time it takes to automate a process with the time you’ll eventually save. If a 4 minute task that you need to perform once a month is going to take you a day to automate properly, go ahead and just continue doing that manually.

Automate to enforce compliance

Not So Fast

While a downside of automation can be it’s lack of flexibility, when it comes to compliance driven tasks, this becomes a huge upside. Ever come up with a fool proof code review process that you’re sure will eliminate any deviations from your style guidelines, only to find that a few weeks in, all of the developers on your team have stopped following the process? Set up rules in your code management software to enforce the right review and sign off before any merge request is approved. You can similarly set up rules in your deployment software to only allow pushes to production from your main branch. 

For compliance tasks, rather than weighing the time savings against the time it takes to do the automation, weigh the cost of automating against the cost to your team if the step gets missed.

Once you’ve set up your basic rules in your automated build processes, you can start to get a bit creative. Automate the building of your API documentation with every merge to ensure that this is kept up-to date. Automate email notifications of each merge to ensure that developers are notified when someone else is making changes that may affect their work. Of course you could just agree to processes which stated that these steps would be undertaken, but using automated rule suites and automated tasks will go a long way to actually enforce these important process steps are actually taken. 

For compliance tasks, rather than weighing the time savings against the time it takes to do the automation, weigh the cost of automating against the cost to your team if the step gets missed.

This may be an exception to the rules of only automating recurring tasks and only automating things that don’t change often. Even if a complex step only needs to be executed once a month, automating it may ensure that it doesn’t get forgotten next time it is needed. For compliance tasks, rather than weighing the time savings against the time it takes to do the automation, weigh the cost of automating against the cost to your team if the step gets missed.

Automate things that don’t change often

When looking at the tasks and workflows that you can automate, make sure to focus on those that do not change often. Hopefully by now it should be obvious that you don’t want to automate a task that is a  bit different each time you execute it (think using docker containers to automate the spin-up of client environments if each client is different enough to necessitate substantial changes to the base configuration). The thing that a lot of teams overlook, however is that most every new process changes pretty substantially as you get it rolling and put it into production. This is the Agile way. You want to start doing things one way, then iterate and improve through regular retrospectives. Make sure you wait until your processes have stabilized a bit before you automate. 

Focus on a three step process. Whenever you have an idea of a new way to do something, start by investigating the new solution and validating whether it can actually solve the problem you are trying to solve. Then implement the new process and give it a few weeks to stabilize. The first few times you run through something, you’ll recognize some roadblocks you overlooked or adjustments you need to make. Then, once everything is running in a stable and repeatable manner, put in the time to automate the pieces that can be automated. This will ensure that you don’t invest the effort in automating workflow steps that will change. 

Investigate Stabilize Automate
Process Automation Workflow

Automate mistake prone tasks

Computers excel at doing things very quickly the same way every time. Humans excel at thinking logically and flexibly to solve new problems. While you may not want to automate processes that are changing quickly or which may need adjustments on a regular basis, you should leverage the repeatability of software automated tasks to tackle tasks that are mistake prone or easy to forget. A great example of this is auxiliary tasks that aren’t necessary to complete a workflow, but which you don’t want forgotten. 

Take for example a sign up process that requires your call center associates to send a welcome email each time they sign up a new customer. This is an important business requirement and greatly improves customer retention, but is not strictly necessary to complete the customer registration in your system. For this reason, it is easy to see how the associate may forget this additional step. Automating the emails to go our each time a new customer record is added to the customer database will ensure that the email never gets missed and each customer is onboarded with the process most likely to encourage further interactions – and more sales. 

There may be times where automated processes lack in the flexibility to deal with one off’s or edge cases, but you can be pretty certain that an automated workflow is never going to forget a major step. Leverage this fact to use automation to avoid the types of mistakes that humans are likely to make

Automate things you can’t do by hand

When I think about automation, my mind automatically (see what I did there?) drifts to tasks that are the same every time. I just explained how automated workflows can avoid mistakes by doing things the same way over and over again. That being said, the same repeatability that makes process automation great for repetitive tasks can make it great for tasks that differ by just a few variables each time. The field of marketing automation offers some great examples of this. Imagine you want to send out an email blast to all of your users, but you want to personalize it a bit. For simplicity sake, imagine you want to add the specific user’s first name into the email greeting. Depending on how many users you have, you simply couldn’t do this by hand, it would take weeks to kick off all those emails. Using configurable automation in these cases can allow you to personalize your marketing blasts in seconds. 

While automating marketing emails is a simple example (and hopefully an obvious one if you are working in that space), there are thousands of similar cases across the development world. Think about parsing thousands of log files that are named based on the time they were written out. You wouldn’t want to (or likely couldn’t) run your parsing operation individually on each of these files based solely on the volume, but through an automated process that picks up all the files in a folder and runs the same operation on each, you can now execute the effort. Especially with things like aggregating or processing data, think automation whenever you find yourself saying “that’d be cool, but it would take ages to get through all those cases.”

Automate things you hate doing

This one is pretty straight forward. Don’t overlook the value of taking distasteful tasks off of the plates of yourself or your employees. Certain things you have to do in your day to day are just a pain in the ass. You’re always going to be more likely to push these tasks off or to just forget about them. To ensure that you aren’t putting these tasks on a back burner and to maximize your team’s happiness every day, try to find ways to automate these tasks. 

For me personally, I absolutely hate sending weekly status reports. I’ve created an automated process which makes a copy of a google doc template I use for these reports and automatically populates the dates for the week and pulls and populates the hours the team has worked from my time tracking software. This way I just need to come in and add a few sentences to greet my clients and describe the work we’ve delivered in that given week. Even though this simple step saves me just a few minutes each week, the value I get by not having to repeat this task that I hate doing each week pays huge dividends. 

Hopefully I’ve given you a few things to think about when planning where and how you’ll implement automation in your regular workflows. Have any of these ideas resonated with you? Have some ideas for automation to add to this list? Let me know below!