Thursday, July 23, 2009

Expanded grumbling

Just a quick follow-up to this afternoon's tweet-trashing of a computer program called SQL Data Examiner. For anyone who doesn't work with databases, the product allows you to synchronize data between databases (particularly on different servers), a process that would normally require writing impossible amounts of code with a significant risk of screwing up.

Synchronization failed a couple of times when I tried to copy the entire database (which included two tables with over seven hundred thousand records each). My workstation had been running for many, many days in a row, so I rebooted in hopes that this would free up memory. No dice, even when I tried synch'ing those tables individually. Attempting to copy the code generated by the utility (to run it directly on the destination database) caused the utility to crash before I could even view it. Allowing the utility to perform the synchronization eventually resulted in the program hanging (hogging the screen the whole while). The lockup probably means that I have incomplete and/or corrupted data on the target database, which is worse than the program crashing.

No other processes were reading from or writing to the destination database, so the FAIL rests squarely on the SQL Data Examiner product.

The reason I think that a grouchy tweet deserves to be upgraded to a post--other than the fact that I'm still brassed off and I don't suffer in silence--is that this, in a nutshell, is precisely what is wrong with software that styles itself "enterprise."

For tasters, the fact that Microsoft doesn't ship a utility like this with their database server product is inexcusable. That leaves the field to (relative) amateurs, and in this case "amateurs" translates to "rank posers." But that doesn't stop them from charging over $200 (with current Euro to dollar conversion rates) for a slow and rather unfriendly product. Sadly, this is not the only product in that space, and it is far from being the most expensive.

But I'd be willing to put up with slower performance, and possibly even a few of the painful quirks of the interface itself if it actually worked as advertised. Why? Because it's transferring data, for crying out loud. You know, the lifeblood of darned near any business. That's the working definition of "enterprise." Not faddish little iPhone gew-gaws. Not even mass-market personal computing applications. Maybe not launching the space shuttle or running a nuclear power plant. But there was a not-inconsiderable amount of billable time (mine) wasted today. And, in a shop that does these sorts of synchronizations all the time for development and testing, let me tell you--it adds up quickly.

And so I am highly unapologetic about trashing someone else's software. If it's classified as "enterprise" software, it should be held to higher standards of reliability. It doesn't have to be pretty; it doesn't have to be particularly intuitive, although that would be nice. But it does have to be darned near bulletproof, particularly when it comes anywhere client or internal data.