Tearing Down the Enterprise

- -

I've been working as a contract web developer on and off for a couple of years now, and I've seen some pretty bizarre enterprise applications in my day. I've worked with Microsoft business applications before and now PeopleSoft for time reporting, and I've got to say...

We deserve better.

I don't mean "we" as in contract web developers or even "we" as in freelancers in general. I mean that the entire business as a whole deserves better, freelancers, companies, and full-time employees. If, in 2008, these applications are really the best that is possible, that just makes me want to cry. Let's look at PeopleSoft since it's the freshest in my memory.

Absolutely every interaction with the page (it's web-based) generates a post-back, which just seems unnecessary. I know it's mostly a consequence of using Microsoft technologies, but it's really annoying when merely reloading a page or hitting your browser's "back" button can completely hose whatever it was you were doing. To enter hours, you have to scroll horizontally (a huuuuge inconvenience for anyone who doesn't have a mouse that scrolls sideways), and furthermore not all the information you need is in one column so you have to scrub back and forth sometimes. Also, there is too much information on the page, your changes aren't autosaved even though with postbacks clearly that would be possible (it appears to have been omitted intentionally), but that's not really the problem here.

The problem is that there's too much information in the system, there's only one path to each page in the system, and none of the steps to get there are named intuitively. This is a huge problem. Web applications especially need multiple paths for each process. You need to be able to get to the timesheet application multiple ways. It sounds silly at first but as you use the web and use computers more you realize that not everybody does things the way you do. I use my keyboard almost exclusively but I know people who are much more comfortable actually browsing through menus rather than remembering keyboard shortcuts. This is an important distinction and if an application were to omit one of these methods half the people would feel alienated. I would personally hate having to browse menus for things all the time and many others would hate having to remember tons of key combinations. These are the people who would rather use WordPad than vim or emacs. And you know what? That's fine. There is no "right" way to interact with an application. Don't impose one on your users.

The naming and clutter are serious problems. As a contractor I do not need to see the options for vacation time. Also, it doesn't make a goddamn bit of sense that the area for me to enter my hours is under "Travel and Expenses". I am neither traveling nor am I expensing things. As a contractor, in fact, I am an expense. Further complicating the process is that even the travel and expense center is under "Employee Self-Service". I am not an employee, so this wasn't really the first place I looked when I was first using PeopleSoft.

I think the true gauge of the success of an application is how much training is required to use it. Obviously this isn't true of specialty applications like Photoshop or Illustrator or even things like vim. These are applications that you have to learn to use, and that's fine because if you're learning to use them clearly you have a task that requires them. For an application like this that a wide variety of people must use—and use quickly so that it doesn't take up a significant portion of their day—it is absolutely unforgivable that it be so complex it requires training of any kind. A contractor should be able to come into a system, enter his/her hours, and get out so quickly and intuitively that s/he hardly notices the task. Entering hours is not hard work, so it should be a trivial part of your day.

Something must be done about this situation. It should never be the case that you're spending significant amounts of your time cursing your software. The software should be a transparent layer, an extension of your mind into the abstract world. You shouldn't even notice it.

My point is that the world deserves software that is enterprise-capable, but not enterprise-like. The world deserves software that works with users not against them, that knows when to assist and when to get out of the way. All it'll take is a couple of companies seeing their productivity suddenly jump for the change to start.

I'll see you all at the enterprise revolution, space cadets.