

Ask HN: Do you automate most of your routine tasks? - iworkforthem

Right now, I have a few small tasks I need to complete every other day, it does take up some time. I could also spend around 2 weeks to code and automate whole process. Would you?<p>Also, what other tasks do you currently automate?
======
patio11
I get bored easily with repetitive work. Generally about the third time I find
myself doing something, is on the short-list to get some level of automation
applied to it.

BCC is in maintenance mode, which means that my _only_ interaction with the
site is customer support and moving money around once a week to cover bills
and my paycheck. Everything else is automated or outsourced. Bookkeeping for
sales, for example, is 99.96% automatic. (Chargeback? Bah, you always miss one
case...) Bookkeeping for expenses is about 90 ~ 95% static from month to month
modulo dates and numbers, so I have my VA do it for me. Order fulfillment is
automatic. Routine server administration is automatic. Customer services
problems are, to the extent practical, automatic.

See generally: [http://www.kalzumeus.com/2010/03/20/running-a-software-
busin...](http://www.kalzumeus.com/2010/03/20/running-a-software-business-
on-5-hours-a-week/)

I should _probably_ find a week or so to give BCC in the near future to make
the ghost ship a wee bit less rudderless. (Like restarting content creation
for it -- that was 99% automatic when I had a freelancer actively working on
it, but she quit and I haven't bothered replacing her for... far too long now,
it seems.)

AR and my consulting work are both less mature and, by nature, require more
hands on attention. Still, you could reasonably expect that as I get more of a
hang on what the business needs and where I add the most value to it, more
work will get pushed off onto systems or processes.

------
jarin
I use Moonshine for automating server configuration and Rails deployment, git
aliases for shortening commonly used git commands, and zsh aliases for
shortening things like "cd ~/wiki; soywiki" to "wiki".

I also spent a few bucks on an 8 GB RAM upgrade so I could just set MySQL,
Postgres, MongoDB, and Redis to run on startup and not have to stop and start
them whenever I am working on different apps, and I still have plenty of RAM
left over for Photoshop, Starcraft II, etc.

I also spend time practicing vim tricks for things that commonly require a
bunch of keystrokes, since practicing shortcuts until they become automatic is
effectively the same thing as automating the task itself.

There are also a lot of things I _don't_ automate, but it basically boils down
to whether or not I use them enough to make it annoying enough to make me want
to automate them. For example, I know that it's possible to set up a Rails
template that creates a new Rails app with all of the gems, plugins, and
configuration that you commonly use, but since I only create new Rails apps
once every two weeks or so it's not enough of a pain that I want to spend the
time creating the template.

------
perlgeek
I can't automate most of my routine tasks, and I'm not sure I would if I
could: eating, sleeping, taking the bike to work, talking to people, ...

I do automate many of my computer related tasks. Since I'm a fan of the
command line, small perl scripts, shell scripts and aliases do a lot of "work"
for me.

------
hoop
How long do you plan on being there? How much time will you spend on these
tasks in the long run?

If the cost of performing these small tasks over some specified period of time
outweighs the cost automating them, and they /are/ in fact easily automated,
then I think the answer here is clear: AUTOMATE.

Tasks I've automated:

* Server/OS/software deployment

* Daily calculation of linear regression of email queues on my mail servers

* Webcam snapshots and automatic uploads - [http://www.charleshooper.net/blog/automating-webcam-snapshot...](http://www.charleshooper.net/blog/automating-webcam-snapshots-and-uploads-to-flickr/)

* Most tasks requiring data entry - <http://news.ycombinator.com/item?id=2359287>

* And lots and lots of other things

------
mopoke
Depends on the definition of "some time" compared to the 2 weeks (solid?) it
would take the automate. And how long you expect to continue doing said tasks.

That said, I would always err on the side of automating - at least some of the
tasks. Take the low hanging fruit and tackle those first.

For example, I send out a weekly report containing a bunch of metrics sourced
from our website monitoring tool. It took me a couple of days to automate
that, but it saves me a good hour every week (and means I don't make mistakes
copying and pasting figures which I used to with alarming regularity). It also
means that my Monday mornings can start immediately without pounding through a
repetitive task.

~~~
itcmcgrath
Exactly. Unless you have what "some time" is, how can you possibly justify
something. It all boils down to ROI and risk (including mental sanity).

------
jwall
practice, practice, practice

The more you automate routine tasks, the faster you'll become. Don't just do a
calculation of:

# of times to do a menial task * amount of time to do menial task <> amount of
time to automate

That oversimplifies and doesn't take into account how much faster you'll be at
scripting etc. in 20 years if you take every opportunity to hone your skills.
Think of it like touch typing; might slow you down at first, but you're going
to more than make up for it by the end of your career.

------
bartl
Yes I do. For example, I have a little script to install Drupal modules, which
is nothing more than downloading the tarball from the Drupal website, and
untarring it in the proper directory.

Likewise, I've got scripts to extract strings to translate (with gettext())
using xgettext from various project directories, and merging it with older,
already existing translations; and for installing edited translations
afterwards (with msgfmt).

I also have a script to upload files that were changed locally to a remote
server.

No, it didn't take me 2 weeks to code them.

Most of the time I just do the task once, and store the commands in a file.
Next I edit that file replacing values with script arguments. Tada! Instant
script. For lists of values that depend on the project, I create presets (one
argument determines what set of values to use).

~~~
zdw
You should check out drush - "drush is a command line shell and scripting
interface for Drupal":

<http://drupal.org/project/drush>

------
HerraBRE
I automate as much as I can. Sometimes I'll even "automate" a one-off task,
simply because writing steps down in a shell script makes it easier to review
what is about to happen and avoid trashing, say, a big chunk of my digital
photo album... :-)

Automation doesn't just save time; it also avoids many mistakes caused by fat-
fingering things or forgetting step 6 of an 8 stage process.

Also, once you have automated something, you've (at least potentially) created
a tool you can share with someone else, which is good for teamwork, delegation
and continuity in a work-place.

------
y0ghur7_xxx
I would, and I do. Coding is much more fun than doing repetitive tasks, and
once it's done you are just so much quicker in completing that particular
task. This is true even for very simple tasks. For example I have to copy some
files to a network share once a month or so. It does not take much time to do
manually, but I had to open a file explorer, search the source folder, ctrl+a,
ctrl+c, search the destination folder and ctrl+v.

Now it's just a doubleclick on a .cmd file on my desktop.

------
einaregilsson
I try to automate as much as I can. I also use these little programs/scripts
as opportunities to learn something new. Examples:

1\. We had a support portal at work which I had to check regularly during the
day. I wrote a small program that monitors the relevant page and pops up a
taskbar notification when something new arrives. Used the opportunity to learn
about taskbar notifications and a little WPF.

2\. I sometimes get database backups from customers and have to restore them
on my machine, which means opening SQL Management studio, clicking and right
clicking a bunch of things. Then I need to add myself as user, change a couple
of settings before I can use the database for anything. I wrote a small
utility so I can right click on any .bak file in explorer, choose Restore
database and update the relevant tables so the database is ready to use right
away with the connection string on the clipboard. Also used it as an
opportunity to learn about windows 7 taskbar progress bars.

Basically I like doing small projects, but I never finish them unless they
really do something. So, automating stuff I do makes much more sense than
learning by following a tutorial that builds something useless.

------
roel_v
I used to, until I spend a whole day on a vim script that, realistically, only
would save me significant amounts of time by the time the work I was
automating would bring in 1000's of dollars a day.

Nowadays I only do it after it's been proven (or I'm 100% certain up front)
that a certain task will come up more often, and that letting someone else do
it is not feasible or cheaper.

------
coolgeek
"We will encourage you to develop the three great virtues of a programmer:
laziness, impatience, and hubris."

\-- Larry Wall

Task automation encompasses all three virtues:

Laziness - "I don't want to do this task every (other) day"

Impatience - "I don't want to spend time doing this task"

Hubris - "Of course this will work on the first try"

------
cmontgomeryb
I have started automating a lot of the smaller, repetetive tasks. It doesn't
save a huge amount of time, just removes small annoyances and friction. One
example is that I'm new to OSX, so I was playing with Automator and have used
it to create a command which brings up my entire development environment. This
saves only 1.5 to 2 minutes each time, but it removes that friction when I get
home from work I can just put my laptop on the sofa and have the dev
environment load while I make a drink.

At work we have to create performance reports monthly for a particular client.
The procedure has always been to do it manually, which takes around 4 to 5
hours. Writing the code to automate this in C# took less than 4 hours and now
the reports take 2 to 3 minutes each month. Time well spent, money definitely
saved.

------
jackkinsella
I'd automate everything if given enough time. To me it's the essence of
running an efficient business (and indeed scaling). Some examples:

1) I automated the creation of Google Adwords CPC keywords for my ecommerce
website. Based on attributes of the product, the algorithm creates 500 unique
keyword combinations. Over the coming days I will automate the creation of
entire campaigns.

2) I automated gathering information about 200 universities by hiring a smart
virtual assistant.

3) I automate my customer support emails by using canned responses.

4) I automate the running of my unit tests so that they run whenever I save
relevant files.

5)I continue to automate my code base by writing new layers of abstraction
which call lower layers intelligently.

~~~
russjhammond
I would love you know how you automate the creation of Adwords keywords.

------
dhimes
I automate all the small, repetitive tasks I can. Even when I'm heavy into
coding (where I'm working with JS/php/db all day long every day), I'll have a
script which opens my terminal and editors and the db etc. so that my day
starts with a ./startEd.sh command.

Right now I'm setting up a staging server for my new webapp (I'm frantically
working towards a private beta). This is new learning for me- and I'm writing
a script for everything I do (that I can). This not only sets up a way for me
to do setup/config tasks automatically, so I don't make typos, etc.), but also
_documents_ what I'm doing. I hadn't considered that aspect of it before I
started writing these scripts.

------
asymptotic
I try to automate tasks in a hierarchical, re-usable fashion, based on log
file output, and always in a pragmatic, least-cost approach. No-one is paying
me to make my life easier.

For example, I'll find myself performing tasks X, Y, and Z quite a lot. I'll
find out that I have 20 minutes free and I'll figure out the most common
denominator of the tasks, let's call it A, and then implement it. I'll quickly
re-write the high level processes X, Y, Z and to use A and then move on with
my life. The up-shot is that future tasks B, C, D, E, F can all use the now-
battle-hardened procedure A, and maybe others in my company will find A
useful.

------
ulrich
Two weeks are quite some time for an automation. But depending on how much
time you spend every day, you might want to go for it. It's not only about
saving time daily, it's even more about scaling things up.

If the process is automated, it should be quite easy to use modified versions
for similar problems. And you can quickly run it again and again without
having to worry about making mistakes.

------
forkrulassail
Yes, server tasks, deployment tasks. My daily routine 'feels' automated to a
large extent and I'm still trying to optimize for output.

When I say my daily routine feels automated I mean, when I have two boring
tasks I usually combine them to make them less inane. So an automata type
scenario comes into play. I don't have to 'think' about the two crappy but
necessary tasks.

------
smarterchild
While I automate some computer related tasks, I can't automate house chores,
working out, etc.

So I wrote an app to remind me: <http://i.imgur.com/exzb0.png>

I find this sort of thing most useful if you have chores that you want to do
regularly, but not on a specific day (i.e. clean every Tuesday).

------
russjhammond
Using Automator on my mac I have created a few simple folder workflows. For
example I have one that everything I drag into it gets printed. This seems
simple but its great when you constantly get a few emails a day with multiple
attachments that need printing. Saves a few seconds every time.

------
jogo3000
I have similar experiences with mopoke.

I've automated a lot of small tasks lately and as a result I have a small
library of stuff which makes it easier and faster to automate yet more small
tasks. It definitely is worth the invested time.

------
johnnytee
Check out <http://sikuli.org/>. It's visual based programming for automating
task. I use it all the time and it's super fast to set up.

------
swah
It is sad though, that we can automate software hassles with such ease, but we
can't automate real world tasks yet.

------
szcukg
I automate a lot of excel and outlook related work

