In IT, as in most businesses, there are certain tasks that end up stealing all your joy by being endlessly boring and repetitive. We used to call them “character building” but with all that is available to us today, we can dispense with manually doing many of these “character builders”. What these tasks actually end up doing is stifle creativity and innovation. Even though these tasks are needed and often essential, they need not be done by human hands if they involve computers and repetition. Automation is the answer.
The following is an industry standard process to automate these tasks, whether they are cleaning up a hard disk or on-boarding a new employee.
1. Document the current process
We should be doing this anyway as part of our business analysis. Documenting not only the process but also the frequency at which it occurs. Here we use 2 factors in determining whether we should automate or not. These are:
- Frequency: If a task occurs regularly and requires attention to run it is a good candidate for automation
- Complexity: If a task is done less often, but the complexity and possibility of human error is high, it is a good candidate for automation.
We must first understand the task fully by looking at the individual “moving parts” or functions which make up the task. Ask yourself:
- What does the function do?
- How is it done?
- What is the effect/outcome/signal of success?
- What is required to start this function?
- Who or what does it?
- What comes next and does it need a signal?
- What happens if this step fails?
In other words “What does each function do and how does it relate to other functions?”. This step may require meetings and discussion with all stakeholders/roleplayers to accurately assess the task or process as a whole.
2. Skip the tasks/processes or functions not suited to automation
Some parts of a task may be either too complex or may involve disjointed systems that do not communicate with each other. Do not spend time trying to find a workaround. Automate what you can and in such a way that the problem areas are left open for possible future integration (allow for signals/parameters to kick of each process, even if they are not currently used or needed).
3. Document each automation function in detail
Once you have the entire process flow documented, break each component down into sub-tasks/functions and document the steps in detail. This includes the following:
- What INPUT is needed for the function? It may be as simple as a date or a “yes/no” input, or it could be a complete user profile that needs capturing.
- What applications are used by the function/process and are they installed / available.
- Will we be using this across many systems and is each system configured to enable this?
- Can we write a standard install script across all systems and can our process auto-detect any differences in OS or environment as needed ie SAN or Local storage, OS versions, etc.?
- What outputs are given and is logging adequate to track all unattended events/errors?
- What is the desired output/result and how are we made aware of this?
Rather have too much detail than too little. Ask yourself “Can another employee follow and apply each step?”. Include some form of reporting/summary so that automation outputs and efficiencies can be communicated effectively to management.
4. Do it!
Resist the temptation to start scripting before you have completed the above steps as you will end up “patching and puzzling” – leaving behind a bundle of code that even you will have a hard time following.
Remember to comment your code thoroughly and try to tie your in-code comments to the documentation and process flow as this then also serves as a cross-check that you are following the correct process.
Hack your code until you only have what is needed. Resist the urge to add “cool” features that are not part of the essential process. I don’t mean that you must throw out your inspired ideas – by all means, note them down for later. What you must not do is to let them distract you from the task at hand.
Whether you are scripting for Linux or Windows, the process remains the same and must be aligned with your business strategy. Automation can assist IT to become the ENABLER and not just another cost factor for business. Task Automation is the IT way of working SMARTER and getting more done in less TIME.