Step 1: Document the Current Manual Process
When working on any automation project, we must first thoroughly understand the “moving parts” inside the current process and document everything as is. What does each function in the process do? How does each function relate to the other functions? This step is all about pounding the pavement, talking with people involved in the process (HR, IT, Operations, etc.), and gathering all the information you can about the process as a whole.
Step 2: Eliminate Tasks You Can’t Automate
As we’ve already noted, IT professionals can’t automate the entire onboarding process. For example, setting up the employee in the HR system is part of the Human Resources role. Operations probably assigns a badge/keycard or office key. But IT is likely to give new staffers their computers, get their Active Directory accounts set up, create mailboxes, and so on.
This step is all about eliminating tasks that IT staff can’t automate, so they’re not bogged down by details that aren’t their responsibility.
Step 3: Document Each Step in Detail
Once you have a good picture of the entire process, and you’ve eliminated anything obvious that can’t be automated, it’s time to thoroughly document what is needed to accomplish each task in the process chain. What does thoroughly mean? Documenting at least these minimum questions and their answers:
- What kind of input is required for the task?
- What applications are used in the process?
- Who uses these applications?
- What screens are used in these applications? (Preferably documented with screenshots.)
- What is the desired result once the task is done? How is it presented?
I can’t stress enough the level of detail required for each task if you want to succeed at automating anyprocess—not just an employee onboarding process.
Step 4: Script the Process
Some people want to begin banging out code immediately, without going through the process I’ve outlined to this point, but I encourage you to resist that temptation. If you haven’t followed steps 1–۳ before you start coding, you’ll be sorry. Your code will not account for numerous scenarios, and you’ll have to put in Band-Aids and hacks, eventually turning your code into a giant ball of script that no one can understand. (Not even you.)
If you completed steps 1–۳, however, you’ve defined the entire onboarding process and detailed what it currently takes for each task to happen. Great! The next step is to get scripting. But wait—what kind of scripting? Do you have Linux systems that require some kind of interaction in a task? You might have to learn Python. Perhaps your organization uses only Windows systems. In that case, Windows PowerShell is your go-to language. For this example, I’m assuming no Linux interaction, and concentrating solely on Windows PowerShell. My scripting process will consist of the following tasks:
- Provision a new computer.
- Install applications.
- Create email mailboxes and Active Directory users.
- Add user accounts to groups.
- Create a home folder.