Random Thought

Why is it that software developers, in the GUIs of common software, particularly blogging tools, put rarely used and dangerous functions (“Delete this [post/database/blog]”) immediately next to frequently used functions (“Save this [post/database/whatever]”)? This is stupid, yet one sees it not infrequently, and not only in version 1.0.

Not-so early versions of Movable Type actually had a “delete this blog” button. What was the purpose of such a function? Was it to let you destroy the evidence if the blog police were at your door? I don’t get it. It’s easy enough to delete your blog inadvertently using an FTP program; the developers shouldn’t do anything to make inadvertent deletion even easier. I always edited the MT scripts to remove that stupid button and the function it triggered.

WordPress, supposedly the latest and greatest, has a “Delete post” link next to the “Save” and “Publish” buttons. Why couldn’t they put the delete button somewhere else — say, at the bottom of the page? For every post that I’ve deleted intentionally I have come close to deleting several more posts accidentally, merely because the delete link is in a dumb place. For all of its brilliance, WordPress has the feel of a vanity project managed by a few clever developers who ignore the marketing guy who suggests that maybe it’s not such a great idea to put the delete button next to the save button.

But of course there is no marketing guy, because WordPress is an open-source project managed by a few clever developers. Maybe that’s the problem. If WP were being sold for real money, the developers might have no choice but to put more care into GUI design. And they might be able to afford to hire specialists to do it. But since it’s open-source, and users are members of a “community” rather than paying customers, what’s the incentive to spiff up the GUI? OTOH, given the competition from other (free) blogging packages, it might not be possible to sell WP.

It’s interesting that some basic GUI issues are not given much weight in the race to add software features. I don’t know if there’s a remedy for this situation.

7 thoughts on “Random Thought”

  1. The problem of bad interface arises largely from the culture of programmers in which interface design for ordinary users is only an afterthought. Programs evolve overtime in an almost organic manner and their interfaces reflect this haphazard process.

    Before the late 1980’s, programmers wrote programs for use by programmers. They created interfaces based on the assumption that all the users would be technically proficient. Worse, programs tend to evolve over time by the accretion of tacked on features. The interface elements that controlled these bolted on features also evolved in a haphazard manner.

    Web development has recapitulated the evolution of desktop software. Software like WordPress begins as small programs written by some server admin for their own use. The program proves useful and then the process of tacking on features begins.

    The Macintosh platform stands out among computing platforms in that it established rigid interface guidelines that created a programer culture in which interface design was central to the design process. Macs have a superior interface because interfaces are a priority. A Mac program with a poor interface is considered a piece of garbage even if its internals are excellent.

  2. Engineers should not be allowed to write anything that is directly accessible to the general public, GUI interfaces included, because engineers are notorious for their inability to express themselves in simple English. They consistently and erroneously say, “data is,” pronounce “gigabyte” with a hard ‘g’, use transitive verbs as intransitives, as in “the shuttle launched without problems,” and mess up agreement in “gender, number and case” as in the “by some server admin for their own use” of the preceding post.

    I am often assaulted by “One or more of your hard drives has errors on it” offered by Bill Gates.

    Worse than having a “delete” button next to a “save” button is always having to respond to the ubiquitous “are you sure?” messages.

  3. Maybe I should have called it a nagging thought.

    I’ve never inadvertently deleted anything important, but I’ve come close. Most recently, I was tired and inadvertently clicked a key to publish a large batch of spam comments that I meant to delete (the buttons are next to each other). Fortunately I was able to stop the script by hitting the escape key. It would have been a big nuisance to delete the junk comments that I almost published.

    For examples of good interface design look at the controls of an automobile or airplane. The controls are physically segregated by function; important controls are given distinctive shapes, e.g., the landing gear is controlled by a lever with a wheel-shaped knob on the end. If automobiles were designed like software, the throttle and parking-brake pedals would be identical in shape and located next to each other. Or imagine a combat aircraft in which the canopy latch were next to the ejection handle. This is elementary stuff.

  4. What you’re saying is it would be to user’s advantage if web designers went through courses similar to the ones industrial designers go. Not a bad idea; don’t know – maybe, in fact, they do, in whatever places that churn on web designers?

    I know one thing: when a relative was applying for an IT risk manager position in a military contractor-company the deciding factor in getting the job was the (first) civil engineering degree. They said – oh boy, you’ve studied ergonomics! And you can immediately see if the panel is sufficiently supported! That’s terrific; we had people with PhD in psychology guiding the tank interiors’ design…

  5. I’m an engineer, I wrote my own blog software (a few hundred lines of Python), and it does indeed have a Delete button right next to Preview and Publish. I have even hit the Delete button by accident; this isn’t the end of the world though because “deleted” doesn’t mean “purged” it just means the post is no longer displayed publicly.

    Yes, engineers frequently write bad GUIs. Mis-features from the first quick-and-dirty version of a product end up living on in future versions. But don’t be so fast to pooh-pooh Engineers. Most people – including designers – write terrible interfaces. If engineers tend to ward spartan interfaces designers tend toward overcomplicated ones.

    Designer: Hey, do you want to see the interface mockup?
    Me: Do I? Consider that if it has buttons that don’t look like buttons or links that don’t look like links I might throttle you.
    Designer: I’ll get back to you on the mockup.
    Me: and what about that thing we talked about last week?
    Designer: but I really *like* drop shadows!

    Interface design is voodoo. There are few people that do it well so most of us just strive to do it less poorly.

  6. tangential point: a great strength of Software Engineers (esp OpenSource ones) is that they get the difference between technical problems and people problems. The mantra is “You can’t fix a social problem with a technical solution.” The trick is figuring out what kind of problem you have (this is harder than you think).

    Other professions don’t appreciate the distinction as much because all their problems are people problems. Politicians are in a class of their own, natch. When confronted with a social problem thousands of years old (“The poor you will always have with you” Matthew 26:11) a politician will promise a technical solution. How many politicians have promised to “end poverty in our time”? And how is that working out for you? *cough*Obama*cough*.

Comments are closed.