Automation is Everything, and Nothing

Years ago, in the euphoria of some project, I exclaimed to my manager, "Automation is everything.".
He wisely replied, "Sure. Just be careful about what you automate.".

The beauty of automation is that it lets us take our hands off of the plough. The trouble with automation is that we tend to take our eyes off of the field too. With any task, there are parts of the job that are repetitive, so we get bored. We then figure out some way to subdue the problem with a machine, and that's good! But we dare not forget the bigger project. When we do, there is danger.

This past week, I was re-building a batch of common software packages for use at the office. We want these things built for Solaris, AIX, HP, OSF1, USS, even Windows if possible. We also build them on Linux on PC, mainframe, hopefully PPC and SPARC, and maybe Alpha or other less-business-vogue boxes. I demand the standard recipe:

download the source (if needed)
unpack the source (if needed)
./configure
make
make install
repeat on other platforms

It's that ./configure step where the process drags on and on. Most often, compilation and installation runs measurably faster than the configuration where the package must determine "what do we have available on this platform?". There are DOZENS of searches, some requiring a tiny compilation of their own.

Many of these configuration scripts are based on GNU AutoConf. That's fine. This is not meant as a diatribe against AutoConf. But like all automation, AutoConf must be used with care and thought. Each package author must do due dilligence [say that three times really fast!]. Every package developer must take care about what support is needed, which libraries are required, where code must be #ifdefed for speed or handled at run-time. Take your eyes off of the greater picture and you hose your "customers". They won't like it.

What does this have to do with mainframe? USS and Linux, of course! And further, mainframe strength is not CPU cycles to throw away, but that tremendous I/O power. So poor ./configure performance is all the more painful on mainframe Linux and on USS.

What does this have to do with automation being everything? (or not!) Just this: Be careful about the layers. And AutoConf is a good example. Don't use wrappers, APIs, scripts, HLLs or other such tools as an excuse for distancing yourself from essential labor. Stay in the game.

We thank you for your attention.

-- R;