In a recent episode of the Accidental Tech Podcast, John Siracusa said something that really resonated with me. In reference to the unfolding drama of Smile Software moving to a subscription model for their Text Expander product, someone had mentioned maybe their intent was "to move towards 'enterprise.'" John's response was along the lines of "I hope not, because moving towards enterprise means moving away from quality."

I've been living with this fact for the last while at work and it can be soul destroying.

Events this week illustrated this phenomenon well. Earlier in the week, myself and a colleague had decided we would install a new piece of software on a Windows 2012 server to see if it would be useful for us. The software in question was one component of a suite from none other than enterprise software powerhouse IBM.

The first hurdle came with downloading the software. After pecking away at arcane web pages which relied on buggy scripts that didn't always do what expected, we were finally greeted with the download section we needed. We knew the downloads would be slow from past experience, so we carefully selected "Windows 2012 server" and "English" as filters to minimise the size. The total was 6.5GB comprised of one 5GB and one 1.5GB file. I started the larger one downloading just before 10:00am. It completed downloading at about 3:20pm! Fortunately, I guessed, and was right, that the 1.5GB file could be downloaded in parallel without affecting the speed of the larger one. This is from one of the world's largest IT companies and I work for a telecommunications company. I've downloaded other stuff at work at very decent speeds, so I have to assume IBM are throttling downloads to this ridiculous rate.

With our software downloaded, we set about installing it. After working through a few issues with our server to meet the pre-requisite requirements, I finally got the installer to run. Early on in the twenty six step install wizard, it ran a series of checks. It reported that we had not turned on the "8dot3" feature of Windows. Except we knew we had previously for another product. I eventually had a hunch we might have only turned it on for one of the two disk drives the server had and maybe it was checking both even though we had no intention of using the one on which it was turned off. I turned that on anyway, passed the check, and then moved onto the next step – which was to choose on which drive to install the software. If only those two steps were reversed and aware of each other!

After working through the twenty six steps, the actual install began and took about half an hour. The tool we want to use looks at a database and analyses the data within it, trying to ascertain the relationships within and the quality of the data. Because this is one component of a suite, and the suite is quite powerful, we had to install a complete web application server as part of the process. That application server has numerous configurations, user profiles, and more, hence the 26 step wizard. I think I entered details for half a dozen user profiles for various uses during the wizard's execution. We had basically installed a full-blown "IT stack" in order to use one tool. That's one of the key failings of enterprise software – it is generally considered "OK" to install a large mass of "stuff" to perform a simple task because "that's what enterprise software does."

The next day I set about trying to launch the tool we had wanted to try. Having told it to install only the one component we needed, I was bewildered by the array of a dozen shortcut icons it had placed on the desktop, none of which carried the name of the tool we sought! I found something called "launchpad" and that brought up a web page which included a link to our tool. Success!

Well, no. The tool appeared with a login screen. Which login was I supposed to use? I gave it my Windows credentials (which some of the other IBM software uses) but it complained. I referred back to my screen grabs of all those users I had defined in the wizard and guessed which one it might be wanting. On my second guess, I was rewarded with a successful login and... a blank screen with a few menu options at the top.

A poke around in the menus soon found "add" type functions. "Add a data source," I said. That got me an empty screen with an option to "Add a connection." Great, let's do that. Err, how do I connect to a database when the only connection types available are clearly web-type connections? Time to head back to the documentation!

As has often been the case with IBM software, it is the documentation that makes we want to punch someone. After much hunting around through the table of contents, I located the section on adding connections. If you want to connect to a database, it said, you need to set it up in a different component of the suite... Gah!!

Back to the installer. At least this time it was fairly intelligent about the process. It guessed I wanted to add components and didn't ask me many questions before installing the new component I selected. With the additional install complete... there were no additional icons on the desktop. Hmmmm. I fired up the launchpad. Nothing new there, either. Once again, I started trying many of the icons previously provided until I eventually found access to the new component. OK... time to set up that database connection!

I dived right in and fairly intuitively figured out where I could add what I needed. I created a new "thing," specified it was a database connection and the specific type (IBM's own DB2) and entered the obvious values. But there were  a whole lot more values to be entered than I knew what to do with. Time for the documentation again.

When I found the documentation for "adding database connections" I threw up my hands, swore, and walked away from my desk. I have this cartoon pinned to the partition above my desk. I looked over at it.

I have reproduced the entire documentation for this complex action below.

  1. Specify the required connection details in the connector stage editor (required details vary with type of connector).
  2. Click the Save button. The Data Connection dialog box appears with connection details already filled in.
  3. Fill in the remaining details such as name and description, and folder to store the object in.
  4. Click OK to close the Data Connection dialog box, and continue with your job design.

Steps 2 and 4 are "Click button." Steps 1 and 3 say, essentially, "enter something." The entire page for this complex task — which warranted its own table of contents entry — gave me nothing of any use. The worst part of this is that I was not actually that surprised because this is normal fare for much of IBM's documentation. While working with another tool recently, I found a page in the documentation entitled "Pre-installation tasks" which contained (only) this sentence.

Before you install, you might need to prepare or configure your computer.

I'm not clear on whether documentation like this is merely lip service to a product manager, or whether someone honestly believes this is good enough. Either way, useless documentation for overly complex software is pretty much the norm from what I've seen this year. The really annoying thing about this is that I've seen the great side of what's possible, and that's from IBM, too. The vast majority of documentation on IBM's "i OS" for Power Systems is of a high quality. I know this because I've been relying on it, initially in printed and latterly electronic form, for over 25 years. And the OS which it documents is without peer when it comes to quality and reliability. Unfortunately, it's a platform that cannot sustain my career any more and I worry about my sanity if I have to move onto other platforms.

I follow the Apple ecosystem through the tech media and within that ecosystem, this type of software quality and documentation would be derided in the extreme. I know Apple and third party vendors in the ecosystem are targeting individuals rather than "professionals" but there's really no excuse for what amounts to shoddy, or perhaps lazy work that passes for "enterprise software."

I've written a fair bit of software in my professional life, although nothing near as complex as the tools I have been working with this week. But my software, for all its simplicity, is written and documented for other people to use and I don't consider it a success unless no-one ever has to ask me about how it works.

Perhaps that's where the problem lies with enterprise software. From my experience, solving problems with it rarely seems to involve speaking with people who had anything to do with creating the software. They're probably off creating the next monstrosity. With no comebacks, what reason is there to care about quality and usability. That's why I want my TCP/IP punch.

Banner image IBM official.