Once upon a time, I worked as a Business Systems Analyst. Even during this time, I always considered myself a Coder / Programmer first and foremost. Since most of my career was spent as a consultant/contractor, I learned to be an IT chameleon of sorts (Or maybe a unicorn). As a consultant, you don’t really have much leeway on which roles to pursue, you either fill a company need or you move on.
During one of my stints as a BSA, I was supporting a 3rd party proprietary software. We would get about 5-10 requests a day to add new users to this system. It was the same mundane process, the same sequence of clicks over and over again. It was very easy but it was mind-numbingly ‘boring’. It took around 5 minutes to get one user set up, if you’re used to it, and maybe a max of 15 minutes if you’re feeling slow or new or haven’t had your coffee yet.
So if you’re getting 5-10 requests a day, that’s around 150 minutes max of productivity wasted on a repeatable process.
You are probably getting to where I am going here.
When performing application support, you’re either extremely busy, or in extreme excess of down time. It’s either you are preoccupied or you are left with lots of time to yourself.
During those down times, I instantly thought about automating the User creation process
Options & Assessments
Ask the 3rd party software management people for APIs that we could use to automatically create a user
PRO: This is the easiest path in terms of implementation (maybe an hour even)
CON: Politics, meetings and waiting times will slow me down
Automate the clicks by using Selenium Web Driver
PRO: There is no need to talk to anyone here
CON: This will probably require more hours or so to implement
WINNER: Selenium Web Driver
My justification is simple: I do not want to talk to anyone, I just want to implement something without going through a lot of BS.
I chose Java, because that was my mother tongue in terms of programming language
Downloaded Java libraries for Selenium Chrome Driver
I made just one class to house everything
Since the program needs to be used by multiple folks on my support team, I had to make the class executable by converting it into a jar file.
You are required to edit a Configuration file to specify the user ID(s), First Name(s) & Last Name(s). The program can accept multiple user creation requests.
Running the program will ask for the system username & masked password (as if you are logging into the system).
As you run the program – it simply logs what’s going on (like “Logging in…”, “Submitting Form…”, “User [user id] created.”)
The company I was working for had a Productivity Contest to reward teams that were able to innovate efficiency – I think this automation that I wrote saved the company more than 1000 hours of productivity for a month, which made the team I was in up in the first place (maybe). I wasn’t there to receive the ‘award’ of course because I had already moved on. But maybe I’ll give myself an award on this blog (perhaps an ice cream).
I know this example is probably kid’s play in many people’s eyes, but you’d be surprised at how many large enterprises will just stick with the manual process because no one bothers making those small incremental improvements.
Sometimes it’s the click you know vs the automation you don’t that wins. But there is so much opportunity for improvement in whatever occupation you’re in. You just have to be ‘fed up’ with doing the boring stuff.