I often teach to a wide spectrum of students, ranging from business operations users to seasoned software developers. Regardless of where you fall along that range, nothing will have prepared you for the mind-shift experienced when writing bots.
This mind-shift is what we call “Thinking like a Human” in that you have to constantly remind yourself that you are writing a set of commands that will act, or react like a person would. This becomes helpful when you are trying to determine:
- What is the best way to interact with a particular type of control
- What happens with the login fails
- What happens when the network speed grinds to a snail’s pace
- What happens if the layout and/or structure of the window I’m using in my automation changes
- What happens if I get a validation error from the web application as the bot is entering data into it
- What if my internet connection is lost during the process that is being automated
- What happens if one of the records I’m processing just doesn’t work properly
Your primary goal as an automator is for your automation/bot to “run successfully”, yet the key is understanding what “run successfully” really means. This isn’t the Brady Bunch – where everyone is happy, including Alice, with no conflicts. This is real life… Jan’s nose will break, Greg will wreck the car, Bobby’s voice will change the week before his choir event, Cindy will get left at the roadside bathroom while on vacation, Marcia will find drama in everything, etc. I can tell you right now that “running successfully” does NOT mean that everything happens perfectly, as expected (just like with the Brady’s). The automations you build will encounter all types of scenarios or hardships that a human would encounter in the course of their day-to-day jobs. The difference is that a person can easily adjust to these nuances in real-time, mostly without having to think, but your “bot” won’t be able to do that “out of the box”.
As you design and build your bot to run successfully, you should ask yourself “what would a human do” as you contemplate the wide range of issues and required reactions that may be faced, and know that success is not the act of processing every record exactly as planned but instead accounts for all things that may happen with an implementation of the proper reactions for each. By doing so, your automation may not process every record entirely, but it will successfully address all of the scenarios encountered and successfully complete. By detecting and properly handling these situations, your bot will become resilient, achieve success, and deliver ROI.