Learning to Think Like a Developer: 3 Tenets
April 6, 2020
7 Minute Read
Low-code Robotic Process Automation (RPA) platforms such as Automation Anywhere Enterprise enable organizations to build automations in less time, save money on new builds, and more easily maintain existing bots. Low-code development environments protect users from creating syntax errors, such as extra brackets or missing semicolons, and can provide excellent guardrails for new developers as they begin to explore a new tool.
That said, low-code development tools can only be as effective as the individuals applying the commands in them. Why is it, then, that some business users become excellent bot builders while others struggle to mature their capabilities in building more complex automations?
The answer comes down to problem-solving capabilities. Problem-solving capabilities can be learned and can provide any individual with an excellent mental framework for analyzing, evaluating, and thinking through all kinds of problems in life. Let’s explore the three tenets of problem-solving to understand how they apply not only to daily life, but also to building bots.
Sequence is the specific order of steps, commands, or instructions that should be followed to reach a desired outcome.
A bot (or any software application, for that matter) is, at its simplest form, a sequence of stored instructions (commands) that execute in a specific order. Everything a bot does is performed in a certain progression for a particular reason. For example:
Open the browser>Navigate to gmail.com>Enter username>Press tab>Enter password>Click submit
The order of steps itself is extremely important to the success of the operation.
You’re already doing this in daily life. Every morning, many of us make coffee when we wake up. When you brew coffee in a typical coffeemaker, you follow a standard process:
- Dump out any grounds/filter left from the coffeemaker’s last use.
- Put in a fresh filter.
- Pour in the coffee grounds.
- Fill the coffee maker with the appropriate amount of water.
- Press the button to start brewing.
The steps in making coffee are done in a specific sequence. If we left out step two, for instance, from the coffee-making process above, we’d likely end up with a coffee pot full of wet grounds — and likely coffee all over the counter as well.
Pay attention to the tasks you regularly do at work and mentally think through the specific sequence of events you perform. Make note of the order of those steps and how doing them in a different order would impact the outcome. Also note the specific, most efficient steps to complete any task as you start to translate such a task into a bot.
Selection statements form the basis for most human (and bot/application) decision-making. We evaluate a situation, identify the conditions, and act accordingly. For most of us, we’ve been operating as a result of the evaluation of conditions for such a long time that it’s something we instinctively do without much effort or thought.
For example, if my bank account has a balance greater than USD 0, then I can withdraw funds. If I’m tired at work, then I’ll have a cup of coffee. If I’m hungry, then I’ll eat.
Similarly, programming selection statements for a bot will help determine the correct action it should take as a part of its operation:
- Navigate to file share \\Team_Files\Work_to_Process.
- Scan for files in the directory.
- If a file is found:
- Open the workflow app.
- Open the file.
- Extract the data.
- Enter the data into the workflow app.
- Send an email that the bot finished execution.
In this example, the bot will only open the workflow application and start entering the data if a file is found. Said another way, if no file is found, then the bot won’t do anything inside of that if/conditional statement.
These selection/conditional statements — or if/else statements — can additionally be used to evaluate multiple conditions — and even perform action in both outcomes of the statement. Let’s look at a familiar selection statement we might use in our lives as part of our commitment to exercise:
- If it’s sunny when I wake up:
- I’ll go for a run.
- I’ll drive to the gym.
In this case, action is being performed regardless if the condition we’re evaluating is true or false. These are typically referred to as “else” conditions that are used as a part of selection statement.
In your daily tasks at work, notice the actions you take as a result of evaluated conditions. What condition were you checking for before you took action? Did multiple conditions have to be true for you to take action? What would you do if the conditions you were checking for weren’t met?
Repetition is all about the process of identifying how many times, or how often, we must perform specific steps to complete a task. Bots — and humans — perform repetitive steps all the time to ensure work gets done.
For a human example of repetition, think no further than a flower bed or garden that might be in your yard:
- Repeat the following steps until all weeds have been pulled from the garden:
- Find a weed.
- Use a tool to dig down to the root.
- Extract the weed.
- Put the weed in a bucket for disposal.
If I had 50 weeds in my garden, I would repeat those steps 50 times. If I had only 10 weeds, the steps to pull weeds would only be repeated 10 times.
When we think about repetition, we want to be aware of how many times our action(s) should occur — and at what point it should stop — because we wouldn’t want our repetition going on infinitely (known as an infinite loop).
Let’s look at an example of entering data from a spreadsheet to a human resources application in support of onboarding new employees:
- Open an employee spreadsheet.
- Identify how many rows there are.
- For each row in the spreadsheet:
- Create a new employee record in the HR app.
- Copy the name from the spreadsheet and add it to the new employee record.
- Copy the address from the spreadsheet and add it to the new employee record.
- Copy the Social Security number from the spreadsheet and add it to the new employee record.
- If the spreadsheet has more than one row:
- Send an email with the list of all newly added employees.
- Send an email indicating no new employees were added today.
See what we just did there? Using a repetition statement known as a “for each” statement, we performed a sequence of creating an employee record and entering employee data for every row of a spreadsheet. This repetition allows the bot to perform our sequence of steps over and over until every new employee record from the spreadsheet has been accounted for.
Notice what happens after that: We use a conditional statement with an else condition to send an email indicating how many new employee records were added to our HR system that day. In this way, the bot can take appropriate action as a result of all the work it did for a particular day.
We’re all asked to do somewhat repetitive tasks at work — entering time sheet details for our week every Friday, reading all of our unread emails, etc. Identify and analyze the repetitive steps you must complete as part of your tasks. What drives how many times you repeat a task? What steps are you repeating as part of completing that task?
Putting it all together
Equipped with a framework with the tenets of problem-solving, you can effectively analyze and solve for problems. As you begin to put a name to these problem-solving tenets, pay attention to how you make decisions and perform work. You’ll probably identify that most of the tasks you do, both at work and at home, could be written or explained using sequence, selection, and repetition.
As you continue to master these concepts and analysis, learn how you can use the commands and actions available within Automation Anywhere to solve these kinds of rule-based problems. What you’ll ultimately find is that low-code platforms such as Automation Anywhere Enterprise become significantly easier to use when you’re equipped with effective problem-solving skills.
Learn more about RPA and building bots.
About Micah Smith
Micah Smith is a developer evangelist and lover of all things automation. His background is in Robotic Process Automation, document imaging, and optical character recognition.Subscribe via EmailView All Posts LinkedIn