Automation

The Importance of Automation

Automation is one of the most useful things to know how to do. This is because automation has an immediate impact in saving time and money for a business. If you can save having to hire 10 people to enter data into a system, that's an immediate and visible impact. If you can save a person having to manually remember to complete a process each day that's an immediate impact that people will notice, and appreciate it.

The other important (but less obvious) value of automation is that it captures business processes. This means that once you automate a task or process it has been documented. This might be in the form of a script or it may be in the form of a work flow diagram. Whatever the format, the process or task is documented, fully captured (once working) and most importantly it is consistent.

In many ways consistency is the key to a successful business process or task. Once defined and documented the things that typically go wrong with a process or task is that they are not followed as expected. This isn't an unusual thing to happen but much more difficult to catch if it is a result of the work people rather than an automated process or task. Furthermore, once an issue is identified in process or task, it is lot easier to correct the automated task than to retrain employees.

Automation Pitfalls

Like everything, automation has its strengths and weaknesses. The main weakness of automation is in what is being automated. If a business process or task is not well defined, counter-productive or just plain wrong, or if there are no clear policies and rules regarding the process or task then automation isn't going work.

Therefore, the first step in automating anything is to understand the process or task being automated and to decide if it should be automated at all. There are situations where automation is just a bad idea. This typically involves scenarios where automation is used to speed up a task or reduce workload as a workaround to fixing an underlying problem.

For instance, say an employee spends 30 minutes a day in the system checking and altering records from a data load because the data load process didn't load all the data correctly. This process could be automated because it follows a consistent pattern. Doing so would save the employee 30 minutes every day. However, the obvious question that should come up here is Why don't we fix the data load instead of automating a workaround?. So make sure you question the value of the automation and determine if there are really underlying problems that should be addressed first.

The second step in automation is ensuring that the business process or task is correctly defined and that any policies and procedures are also established and approved. Like all forms of software development, it is really hard to automate something that hasn't been defined - the old adage of hitting a moving target. If the end-to-end process is not defined, then there's no way it can be automated. It is really as simple as that. Typically however, when something is being automated, its not just about stringing steps together, its about defining the business process, and as long as this is made clear from the onset, then its not a problem. Just ensure that if you are automating something that isn't clearly defined, you note that the process has to be defined, and this is going to take extra time and resources.

However, even with a clearly defined business process, there is one more important pitfall to be avoided. This is in the area of policies and rules. In other words, now that you know what you need to do, how should you handle the exceptions? For example, if automating the loading of financial transactions, what should happen if there is a record that cannot be saved into the system? Should it be ignored and logged? Should there be data validation and correction steps? Should the entire load be suspended and rolled back in error? These are policy / rule based decisions which are completely dependent on the business, the situation and the process.

Policies and rules are things that need to be defined clearly, and more so, approved by a relevant authority figure. Taking action without approval is one of the most dangerous pitfalls of automation because it can occur at such a large scale (e.g., ignoring all payroll data in a payroll load file because of error in 1 of the 25,000 lines of the data file). Remember, once a process or task is automated, it is completely documented and transparent. This means that any actions that are "not approved' can be identified (unlike the case of an employee acting at their own discretion).

Automation Tools

So far, I've used two distinctly different tools for automation:

  • Opalis Robot for workflow or decision based automation
  • SQA Rational Robot for user or repetition based automation

Opalis Robot is about workflow or decision based automation, which typically means configuring a sequence of steps that need to be followed from start to finish in order to complete a task. This might revolve around several applications and include a number of critical decisions. The interface used by the Opalis Robot software really establishes this by providing a workflow type environment.

SQA Rational Robot is actually a software testing tool. It is designed to be given a specific task to then go and "test" that task a number times with various scenarios. The fundamental difference here is repetition. SQA Rational Robot is suited to repeating a process a number of times using a list of input data. While decisions and conditions can be programmed into such a script, it is typically harder to do than Opalis Robot. Also, SQA Rational Robot works at a lower level of detail such as entering a number of inputs into one application like PeopleSoft rather than "flowing" through a number of different applications. This means it is not designed to be "scheduled" to complete tasks but rather to "mimic" a common task much like a macro.

In addition to these automation tools, I'm also looking into a number of other automation and macro type tools that may be useful automation purposes. Some promising examples are:

Using the Right Tool for the Right Job

So which one is better for what? Well SQA Rational Robot can be used to do a lot of things that Opalis can do, although this may be more difficult as it requires careful design and programming. However, Opalis cannot do many of the "detailed" application based tasks that SQA Rational Robot can do. In short, the two are really quite different and serve at two different levels of flexibility.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License