Helping kids learn about automation

J- shuffled in and out of the living room, listless and bored. As part of a 9-week simulation of real life in school, she and her classmates had been assigned jobs. Her job was to be an accountant, and the tedium of checking dozens of pretend tax returns had long sunk in. W- had encouraged her to use a calculator, so at least she didn’t have to multiple all those figures by hand, but there were still so many numbers to verify.

My geek sense tingled, as it does whenever there’s an opportunity for a quick win through automation. I coaxed her back to her homework. “Come on, let’s set up a spreadsheet,” I said. “That way, you don’t have to redo each of the calculations or worry about getting things wrong.”

We brought up OpenOffice.org Calc. She was still lackluster, so I took the lead in creating the spreadsheet. I asked her which tax return we could use as a model, and she picked hers. We started filling in the formulas, checking her work along the way. (We found and fixed an error in her tax return, too!) Then we tested the spreadsheet on a few other tax returns she had manually done, and she used it to check the rest.

Result: Not only could she verify a correct tax return in less than a minute, but she perked up and started having fun with it. She made a pile of correct tax returns and a pile of incorrect ones, with sticky notes pointing out the deficiencies. She still doesn’t want to be an accountant again, but at least she knows that tedious tasks might be automated away.

The next time J- finds herself doing tedious calculations or verifications, I hope she thinks about how much faster, more reliable, and more enjoyable the spreadsheet was compared to calculating things step by step, and perhaps invest time into learning how to automate whatever she needs to do.

How do people learn how to automate? It’s such a time-saving skill, but it doesn’t seem all that common. Maybe people are intimidated by spreadsheets and programming languages, and that fear of losing more time keeps them from gradually building the knowledge they need to save lots of time. If we can show J- and other kids the benefits of automating, maybe that light at the end of the tunnel will encourage them to learn. If we expose them to the methods for automating tasks, such as putting calculations into a spreadsheet, creating keyboard macros, or writing short programs, maybe they’ll realize it’s not scary – and maybe they’ll start modifying or creating new tools.

In my experience, working with new automating frameworks is always slow and somewhat frustrating in the beginning. It helps that I don’t usually need or want to automate everything right away. I break things down into small things, small wins. I might start by figuring out the most time-consuming parts and automating that 10%, or automating the most common operations. As I become more familiar with the tools and the process, I automate a little bit more, and more, and more. Eventually I might even create a tool that other people can use, like the way my Community Toolkit for Lotus Connections is off and running.

The hardest thing, I guess, is knowing where to start. I run into that problem a lot, because I work with lots of different technologies and frameworks. It’s like looking for the end of a tangled piece of string. That can be hard to find in the confusion, but once you do, you can start unknotting the mess. I want J- to be able to think: ah, this has to do with calculations, maybe I can get a handle on it by using a spreadsheet, putting in manual steps if needed.

How do you use teachable moments to encourage people to automate?

2011-03-29 Tue 21:09

  • http://jbcarre.blogspot.com/ Jean-Baptiste Carré

    Hello Sacha,

    That’s interesting :-). At least I hope you’ve convinced J. that automating repetitive tasks rocks! I have no formal answer to your last question (where to start), but I still think that some programming skills are necessary for that – what do you use to automate your tasks? What kind of software, what programming languages (scripts vs little homemade “software”)?

    Best!

  • http://bhar1234.blogspot.com Bhargav V

    This is an old entry, but thought I will comment on this anyway. Automation of day-to-day tasks is something that is very close to my heart. At work, my team works with a lot of numbers, pivoting them, copying them to powerpoint, adding text in the powerpoint, etc.. I have been helping my team by automating monotonous tasks (takes them days to complete). I was fundamentally a Java developer, and was writing Java code for every small thing. Then, I learnt the power of MS Access, Excel and VBA. Now, I can’t comprehend how I lived without them earlier!
    My fundamental problem is, I do not know where to stop. I go a long way, and then I realize that I can’t just hand it over to the user. I will still need to maintain it (because it is too complex for a non-programmer to maintain).
    These days, like you mentioned, I have realized to break the problem down to really small bits, and hand that over to the user (along with the basic training to modify parameters, configuration, etc..). I give them small tasks to play around with the VBA code. This ensures that the user understands my thought flow, the automation process. This I hope will motivate them to take up similar automation tasks in their daily work.
    At home too, I use Excel for a lot of stuff (expenses, lists, plans – basically anything and everything!!). But, I need to learn to stop. Everything need not be automated. Automating one time tasks is a waste of effort. My hope is it might help someday in future, but then, I can’t really find it, and I end up automating again!!

    Where do you stop?