In the database world we don’t talk much about usability; people who develop databases have to be highly technical in nature to understand the concepts involved in building a database system; most DBA’s have to be technical to do their job as well, and people who interact with a database generally have proficiency with programming or computers on a level above that of “the common folk”. But usability isn’t merely a checklist dolled out by the CHI fan club, it is something that impacts every area of our lives even if we don’t think about it.
As a fine example, we recently moved into a new (new to us) house, and while it is certainly no dump, if you think about the design of the home from a usability standpoint, you can easily spot areas that need improvement. Like the shower in the master bedroom. It’s a nice shower, tiled floors and walls, nice bench for sitting on, very spacious, you could easily fit three people in there; I mean really you could have some wild times in this shower. But if you wanted to just, you know, take a shower, a couple of items would come popping out at you. The glaring one is that the detachable shower head has nothing to attach to; meaning you have to hold it up over your head to get washed, otherwise it dangles down near the floor. Sure you can still get the job done, but there are times when you’d like to have two hands available and they tend to not be when your trying to wash your ankles. Another problem is the light switches for the shower are hinge side of the door, rather than handle side. Because of this, if your trying to manipulate the switches when entering or leaving or in the shower, you have to reach-around the door to do it; very inconvenient. Sure, it isn’t that big a deal, but shower doors can be installed in either direction, so a little bit of usability planning would have done wonders to improve the experience. (Look in your own homes and see if you don’t have a room or two that your always reaching to the wrong side of the door to turn the light on). One more? There is no towel rack in, or next to, the shower, so if you want to hang a towel up you have to do it about 4 feet away. Again, it doesn’t sound like a big deal, but the last thing you want to do once you’ve taken a nice hot shower is have to open the door, letting your hot air out, and then take a few steps (dripping water all over) across the bathroom to grab your towel. Sure, I throw my towel over the door, but still, when the people where installing the thing, about 5 minutes of thought could have been made it all that much nicer.
All of which brings us back to PostgreSQL. “How’s that!?!?!” Well, PostgreSQL 8.2 is all about usability improvements. More flexible INSERT and UPDATE syntax; warm-standby PITR systems that mere mortals can get working; Status information on autovacuum; concurrent index building; letting COPY work with arbitrary select statements; the list goes on… while adding new features is generally a good thing, I think we often overemphasize it in the software industry, mainly because it’s hard to sell software that doesn’t give you anything is new. And even though PostgreSQL 8.2 is going to add new stuff too, (I’m not pretending it isn’t), it’s nice to be able to answer the question of “and what does this new version do?” with an answer of “mostly it just makes your life easier”. In the end isn’t that what we all really want?