Ban Manual Processes
Every application, once the first cut of new development is complete, goes into maintenance mode. During maintenance mode, there can be a tendency for manual processes to be created. “Every Friday we run the SQL script XYZ to fix some data”…”Once a month we execute these queries to get statistics for comparison”. We’ve all heard or made these types of requests. If you want to manage a team of better programmers, one policy you can put in place is to ban manual processes.
With the popularity of powerful scripting languages like Ruby and Groovy (just to name two), there has never been a better time to start automating your manual processes. The benefits of this are at least four fold: Better productivity, less errors, better programmers, happier programmers.
The first benefit is probably the most obvious: increasing productivity. By decreasing the amount of time your developers are required to spend doing manual tasks, the more focused they can be on providing value to your customers. There are countless studies that show that multitasking is bad for productivity. By breaking a developer’s mojo, their productivity is hurt more than just the amount of time the manual process takes up. It takes time to ramp back up into peak code development, which only adds to the loss in productivity.
The second benefit is the reduction of errors. Anytime you introduce a human into a process, you introduce the potential for error. Computers were popularized by their use of doing repetitive tasks over and over. It is what they are good at. Most manual tasks fall into the above category and are perfect for a computer to do. You already have the tools, so why not put them to work?
The third is that you will get better programmers on your team. The ability for your developers to focus on a problem type that is probably not one they normally face (I don’t know many developers who spend their days automating random stuff) makes them better at solving problems. It gives them the ability to look at problems in new ways. It also allows them to explore new tools. The aforementioned Ruby and Groovy are tools that you may be apprehensive to bring in as your main development tools, however writing a ruby script to automate some statistics collection is a low risk way of exploring a new tool.
The final reason to do so is the most important one in my opinion: you will have happier developers. Your developers will be happier for a few reasons. One, they won’t have to spend time doing things that can and should be automated. Two, when they do automate them they will be able to try new things. And three, they will be doing what they are passionate about…providing technical solutions to problems.
If a task needs to be done more than once, it is more efficient to write something to do it automatically. If you think it will be temporary…automate it anyways.
What are your thoughts on manual processes? What types of processes have you automated? What tools have you used? Let me know in the comments!

Blog 
I agree. You don’t really “know” your processes until you have tried to automate them. It’s a useful exercise for eliminating inconsistencies and ambiguities.
Another benefit is that if you script your processes, you can put them under version control.
Since I mostly work with Java, I do most of my automation with Ant. But I also use Bash, Awk, whatever will do the job.
as long as the scripts are clearly documented.
i have gone to several different companies with automatic processes in place that are completely unknown.
and when something breaks, nobody knows why…
Funny, I just blogged about task automation last night on our web site :)
http://blog.shinetech.com/?p=101
Michael, Great post. Can you give us examples of the tasks you have automated?Thanks Colin
This is something that people who favour Windows as a development environment do not appreciate. Idiot click interfaces are not inherently scriptable in the same way as systems which offer a command line interface. Unfortunately, people who use idiot click interfaces seem to rather like idiot clicking. Their nice, routine “jobs” fill in the time, and leave less room for things that need thought…
Hey! Good to see you on the web. =)
python is the golden hammer.
Hi all!
Nice site!
Bye