Identifying and automating repetetive tasks

In my daily work at a product company, I often get requests from our support department to help them with a problem they are facing when while helping a customer. This can be simple things that are simply too tedious to do in the interface or something complex that needs to be investigated before a solution can be applied.

Do not underestimate the time you spend on these small repetitive tasks. Every time you have to perform these seemingly small tasks, the time will add up. In addition, every time you get theses requests, you might be taken out of your train of thought, and you lose much more time than the base amount from just performing the task.

I am prone to thinking that this class of small tasks will only appear once, and thus it would be a waste spending too much time on it. I am also inclined to postpone doing a good solution because I know that a fullfledged solution is already put in the plan. Then I do the task over and over again using some middle of the road solution, instead of getting it out of the way once and for all.

After a discussion with a colleague I have come up with the following pattern for identifying which tasks to automate, how to do it and when to do it:

1. Identify the repetitive task

The first step is to actually identify that a task is repetitive. Some tasks actually only come up once, and spending time on those would be a waste. If two or more colleagues do the same kind of task at separate instances, it might not feel repetitive, so it is very important that this kind of support tasks are discussed in a public forum so it is possible to get an overview.

2. Assess the task

Ask yourself some questions about the task. These will help you make a good decision on how to improve the situation.

  1. Why is this task arriving at your desk?
  2. Is the system missing a feature, or is the documentation not good enough for the customer or the support team?
  3. Is it possible to perform in the system, but takes too many clicks?
  4. Is it possible in the system but the requirements have changed slightly, making it awkward to perform?
  5. Has the frequency of the task changed for the customer, making the current process too cumbersome?

Also, remember that many problems come in different shades. You need to identify if there are variations of the task that need different ways of solving.

3. Ease the task

What is the easiest way to fix this? It might be a script, it might be a change in the software. At this point, the assessment from the previous point needs to be taken into account. The correct solution might be requiring a lot of work, and a short term solution might be necessary. But remember that short term / long term is a false dichotomy. There are often several possible short term solutions, so it is important to choose one that will actually help you ease the task, with an appropriate amount of work.

There are also different contexts where the solution can be placed. Sometimes a local code snippet is sufficient, while other times a script available for the whole team is necessary. Sometimes when the full solution requires a lot of work, an admin page can be created that is not necessarily pretty or ready for public viewing, but it does the job and saves you the work. This can also be a good way of prototyping the real solution without committing too much.

4. Eliminate

When you have implemented a solution, keep assessing if the situation has improved. This applies to small scripts as well as fully implemented solutions. It is always a possibility that you missed the mark, and improvements are needed. There might also be variations of the problem that might need some tweaking of your solution, or even a separate soltion.

I hope that my ideas can inspire you to find the appropriate solution to the tasks that keep coming and save time that can be used for the real problems!