A former boss of mine once told me, "If you can't automate your job, then
you shouldn't be a programmer." He was introducing me to the process of
automatically performing regression tests on my code.
This was a lesson that I have made a cornerstone of my software career.
Causes of downtime for network applications
(Source: Gartner Dataquest, 2007)
According to Gartner, 40% of the reason why systems fail is because of
operator errors. There's simply no getting around the fact that humans make
mistakes.
We make even more when we're rushed, tired, under pressure, frustrated,
or don't understand how the software works.
There are two aspects of software automation that are important
when it comes to business. The first is to design software and systems
so that humans have fewer decisions to make. If a computer can make the
decision, then it should - let humans make the decisions that only a human
can or needs to make.
For example, in a spreadsheet, if you have a column of
numbers and need a total, you shouldn't have to waste time adding those numbers up yourself. The
software can figure that out, much more quickly and with significantly less
chance of error than a human.
Automation is all about finding inefficiencies in how things are done
and creating tools to streamline your daily workload so you can
focus on what is important to your business.
The second aspect of software automation is related to user interface design. By designing the user
interface
to be easy to understand, it will be easier to learn, and the user will be
less likely to erroneously enter the wrong data or choose the wrong option.
Automation in user interface design means a well designed interface that
enables new users to learn quickly and speed through their tasks so that most
of their time is spent deliberating on business issues, not figuring out what button to push
or which option corresponds to the choice they are making. The best tools
are those you use effortlessly.
The art of using software to reduce costs involves understanding
and defining the business process in such a way so that automation can be
introduced, and then making a truly useful tool for the business.