Wednesday, October 27, 2010

A long-winded rationalization

A minor tug-o-war's been going on in my head since last week. The folks for whom I volunteer some programming/database-querying time needed data for grant-reporting.

The person with whom I usually work doesn't pretend to be tech-savvy, but she's contientious--which, IMO, is infinitely preferable to someone who only asks for help after they've made a complete hash of things. Because the group's free software and limited budget has trained her to make do with scouring through raw database tables for info., I am (shocking at it sounds) quite comfortable with emailing her an SQL query to run in the powder-keg of the live server.

Problem is, each query is customized to fit the moment, and after awhile the turnaround time for each data-set seems excessive, given that questions are raised during business hours and responded to (sometimes with more questions) after business hours.

But the other problem is something that's been drilled into me from various directions over the years, and that thing is that custom report writers are more dangerous than anything. Heck, we've seen what people can do with single statistics, much less an entire spreadsheet of numbers. An automated report writer is tantamount to the proverbial bottle-of-whiskey-and-a-machine-gun scenario, right?

Ultimately, though, the first commandment of software development is merely another form of the first commandment for writing: Know your users (a.k.a. audience). Mass-market software, by definition, has to define its user-audience in terms of some lowest common denominator. Accordingly, much code is written not to do the actual job at hand, but rather to minimize the possibility of screw-ups. But, on the other hand, when you know that instructions will be--gasp!--read, caveats heeded, etc., what then?