Saturday, January 26, 2008

WHY SOFTWARE SUCKS


Well, there's a long answer and a short answer.  The short answer is the picture of a programmer's desk, above.   If you were a programmer yourself, can you imagine entering this guy's room and asking for advice about how to make a program easier to use for old ladies?

This is the domain of the ubernerd.  The guy's obviously obsessed with computing, has no girlfriend, eats his meals (frozen TV dinners, Kraft macaroni, canned chili) in front of his computer, and has a huge collection of action figures. This guy, who rarely sees the light of day, sets the standard for other programmers.  A guy like this couldn't even imagine a project less interesting than making programs easy to use. 

 
At least that's what David Platt says in his recent book (above) on the subject. Platt's a programmer himself and he used to be an ubernerd. He only changed when he started designing sites for big companies who had a financial stake in being accessable to the public. If you don't want to buy the book, try his websites: "whysoftwaresucks.com" and "suckbusters!"

According to Platt, programmers who try to make programs easy to use have no status at all where they work. Real status comes from increasing control, from figuring out how to increase the number of options for things, from helping the user to customize, and from making toolbars and desktops look pretty. 

I'm not kidding about the pretty thing.  A long time ago, when I got my first computer (a gift from John K) I lost a couple of hours trying to find the start icon on the computer screen. Everybody told me it was on the lower left but I didn't see anything there. I wanted to scream. Finally a programmer friend came over my place and, with eyes rolled up to show his annoyance, used a keyboard command to scroll up.  From the bottom of the screen, below anything you could see, emerged a start icon.  Just like a submarine surfacing.  I was shocked! Dumbfounded, I asked why anyone would hide a thing like that and he said it was necessary to make the screen more beautiful! He actually admired the people who made it that way!

   

That brings us to another point, namely that a large number of hardcore programmers consider themselves to be Nietzscean supermen and social Darwinists. They see themselves as a superior race. People who have trouble with programs are the unfit, the weak, the chaff -- those who need to be weeded out, or at least not catered to.  



That's such an odd attitude.  Don't the programmers benefit from the simplicity of supermarkets where all the types of food are conveniently under the same roof? Don't they benefit from the convenience of hospitals, departments stores and large electronic stores? If they benefit from the work of others who made things simple for them, how can they be so hard-hearted when it's their turn to return the favor?
 
Sometimes I wonder how valuable these people really are to the companies who hire them. They create value, no doubt, but they also remove value. How many people held off from buying programs or devices because they didn't want to wade through thick and boring instruction manuals?  

 America on Line got to be big enough to buy Time Warner because they attempted to make the internet more easy to use.  There's clearly a dollar to be made by making things easy, but the ubernerds aren't interested in that dollar, in fact they have disdain for it. Are they really serving the best interest of their employers? 



31 comments:

Anonymous said...

"This is the domain of the ubernerd. The guy's obviously obsessed with computing, has no girlfriend, eats his meals (frozen TV dinners, Kraft macaroni, canned chili) in front of his computer, and has a huge collection of action figures. This guy, who rarely sees the light of day, sets the standard for other programmers. A guy like this couldn't even imagine a project less interesting than making programs easy to use. "

Whoah, you just described me perfectly. Just today I was trying to reprogram Donkey Kong for the NES into a Popeye video game. And I literally ate canned macaroni and mixed it up with a frozen spagetti today, no word of a lie. Very coincidental...and delicious...

I must take issue with your saying that AOL tried to make the internet easier to use. I always thought Mozilla did that, so much so that the current version of Internet Explorer is based on Mozilla (check the help section)

AOL was the worst brower of all time... most sites didn't work on AOL when it stated, it wasn't user friendly at all. I'd list the reosons I hate AOl, but I'll let these guys do it for me.

Attempts to make programs more "user friendly" have led to things like the Mac OS, the MS Word Paperclip, and Myspace...

LeoBro said...

Eddie,
I'm a software developer myself, and the stereotype you depict does exist. But most software developers I've worked with are more interested in keeping their programs as simple and easy to use as possible. What typically happens is the marketing guys, the guys with the business education who make the big money, will dictate their whims. They're not trying to make the software complicated either, but they are trying to impress the buyers and the industry press. As a result, they insist on adding more features than people really need, and they insist on having things look pretty at first glance (like hiding the Start button), at the experience of the average person trying to use the thing.

Sound familiar?

But enough about software! I love your photo essays, and I decided to take advantage of them to practice drawing facial expressions. Here's my first set of Practice Eddies.

Pseudonym said...

Well I'm a programmer by trade, and there is something in David Platt says. However, in my experience, the situation is both better and worse than he suggests.

Most of your computers are actually damned easy to use. You probably have no problem controlling your microwave oven, your cell phone (at least if you only want to make calls), your DVD player (though some of the navigation on those is crap), your MP3 player, your digital set-top box, your TV, your games console, your car or even Google. When you interact with these devices, you're interacting with computers.

Some of these are easier than others, but when you get down to it, it's really only the one on your desk that sucks.

Part of the reason for that is the influence of Microsoft. They set back computer usability by probably 20 or so years, and there's little corporate money in researching new ways to interact with computers, when you run the risk of users revolting with "we can't make sense of this". Just look at the early versions of Zbrush.

(As an aside: The one exception to this rule is Apple, who spend a lot of time thinking about human-computer interfaces. No wonder they have a cult following.)

Part of the reason is that the job that modern software has to do is inherently hard. You can complain about how hard your cell phone is to use, but when you get down to it, the user interface for a phone hasn't really changed in 80 years. It really has only two controls: The handset, and a way to enter the "directory number" (that's phone number to you non-telco-engineering types). Word processing, by comparison, is hard. So hard that it used to be a job that somebody did. ("Printer", you may recall, used to be a job title, not a piece of electromechanics.)

In fact, software is probably the most complex thing that humanity has built so far. It won't always be thus; genetic engineering will probably surpass it eventually.

And to add insult to injury, the economics of software construction is dysfunctional. The software business is still going through its secret-guild phase, which most industries gave up a few centuries ago. But the arcanum is not being kept secret by programmers, but by companies. This means that most programmers can't build their incredibly complex software by standing on the shoulders of giants, but rather, have to reinvent the wheel every time. The same problem happens with existing software. The economics are such that maintaining bad software is considered better than writing good software.

And because writing software is unnecessarily difficult, you need smart people to do it. The ubernerds that you speak of are necessary because the system is dysfunctional.

Think about the cartoon business for a moment. Suppose that cartoons were actually functional, and had to perform a concrete task beyond making kids laugh. Suppose furthermore that the cartoon trade is still run by the the Hollywood lawyers-turned-producers that are in charge at the moment. Under those circumstances, you would need supermen doing the actual drawing! Because you can see what mere mortals with artistic talent do under these circumstances. It's on TV every Saturday morning.

So because the system is so dysfunctional, you really need ubernerds just to get anything done.

I've barely touched on this here, because there's only so much you can say in a blog comment.

Anonymous said...

You really are annoyed by that new computer!

Krishva said...

Usability has actually become a very big thing in recent years. Mac OS X and iPod actually had a big part in that.

Unfortunately operating system developers have to try to strike a balance between making things easy for novice users and making things customizable for advanced users. If someone catered an OS only to novice users, we'd end up with something that no intermediate or advanced computer user would want.

Managers need to decide what is more cost-effective and will allow them to meet deadlines on time and not lose major customers. When I started working in programming, I gained a lot more sympathy for the guys who make the software and hardware I have to use.

lastangelman said...

One could be a Luddite and just toss away ( or recycle ) one's Personal Computer, and revert back to the telephone, pen, ink, paper, radio and television for all stuff we do now, but that's not a viable solution.

I've taken so long writing and rewriting and deleting stuff, I see that others have finished with some good comments.

Part of problem is certain developers (MSDN) are not getting together with users (real people, not that feedback error box on XP that pops up, then whisks off god knows where after something crashes) to discern best interfaces that works intuitively or with ease; EULAs that let proprietary software distributors off the hook for delivering crapware we numbly accept; a lot of software coders are like animators who produced bad cartoons in seventies and eighties - there's no one encouraging them how to write elegant WYSIWYG software that made users life a breeze, it's ugly, kludge-like, bloatware that suck up your computer's resources and make your experience a chore instead of fun or pleasurable. Argh!

Hope may come from Apple later this year - there is (supposedly) a Tablet computer coming that uses no mouse at all - everything is all finger and hand gestures - sort of like a 13" or 17" version of iTouch or iPhone. How well this item encourages productivity and make it fun remains to be seen. My fingers are crossed.

Anonymous said...

You could probably find a better cartoon to illustrate your point than one by a hack from hackstock.com

Bengo said...

Hi, Eddie. Well, you've read my opinions from time to time over the years. Would you like to dish them out instead? Here is a link to my blog, where I have posted a story sample of the comic I draw with Spizzerinctum. Perhaps if you find it appealing you'll link to it. We'll have more posted shortly. Scartoonist
The link:
http://floatinglightbulb.blogspot.com/

Adam Tavares said...

The blame doesn't rely totally on the ubernerd. You have to cut those guys a break, usually technical knowledge is all they've got going for them so they feel like they have to flaunt it when the opportunity arises, like when you ask them a question. You shouldn't hate them for being arrogant, you should really pity them.

Most ubernerds don't design user interfaces. They're the ones writing encryption and compression algorithms and 3D Engines. Most large software companies have a separate department for UI design and it's not the ubernerds that work in them.

The real problem isn't software sucks. It's complex software sucks. This is just us living with history. Before the Internet took off you bought software in shrinkwrapped boxes. With that distribution method it made more sense to make software monolithic, with a blanket of features and proprietary file formats. Your personal computer was an island onto itself. This is the model that Microsoft used so successfully in the 80s and early 90s. Well that system is thankfully breaking down.

Now we have open standards thanks to the Internet making interoperability a necessity. And software that is highly specialized, now that the Internet has made marketing software so easy.

So instead of interacting with one huge software beast we can now interact with lots of small little software animals. This makes everybody happy, customers, coders, and executives of small to medium sized software companies... the only people that aren't happy are the old software monopolies but they're going to soon become a thing of the past.

And the computer industry has known this for a long time. The Unix operating system is over 30 years old and modularization of small programs that can be linked together and open file formats was one of its design principles. Unix and its children OS's are now everywhere. It's just taken some time to trim the deadweight.

Think about it in animation terms. The 30s and 40s there were lots of studios making shorts. That's when all the innovation happened. That's when the best 'animation' product was put out. There was more variety and competition. Then somehow things shifted, shorts were replaced by features and television shows and things got crappy real quick when only the big studios could afford to produce them. We were left with animated 'bloatware'.

The computer industry is just experiencing this in reverse.

It'll get better, Eddie, don't worry.

Kali Fontecchio said...

"the MS Word Paperclip"

I hate that fucking thing! When it comes up on the computers at school I want to strangle it!!!

Anonymous said...

"I hate that fucking thing! When it comes up on the computers at school I want to strangle it!!!"

LMAO, in case it wasn't clear, that list was a list of things I detest. That's one thing Mac has on Windows, no stupid mascots all over the place to "help" you!

Erik Westlund said...

two kinds of people...

those who care:
http://headrush.typepad.com/creating_passionate_users/

and those who don't:
http://www.amazon.com/Inmates-Are-Running-Asylum/dp/0672316498

sorry about the long links.

Personally, I go with the "blame the MBA suits" argument because... well... I always side with that argument.

The person you describe Eddie has been called a "flat food programmer". His social skills are so poor its best just to keep him alone in a room and feed him with what can be slid under the door.

Eddie Fitzgerald said...

Wow! I am soooo happy that I published this
because the comments were great! Let me take a look at the links and I'll be back!

Jorge: Thanks for the note about about Clampett. I'll post about that when I'm able.

Anonymous said...

I love the Nietzschean"superman" comparison!!

Ive always wondered what His Supermen were supposed to do with their lives to make them so special. Most people Ive encountered that profess to follow Nietzsche?/Ayn Rands philosophy have been arrogant jackasses and computer "experts" are a great example of this.

Another goldmine is in the whole Wikipedia subculture. Just read a transcript of a "pow wow" between admins over some arcane dispute. Its a smorgasbord of popmpous pedantic batshit crazy personalities

Bitter Animator said...

I wouldn't worry about it. When the inevitable apocalypse comes (probably a zombie one), these ubernerds will be the first to be wiped out.

Anonymous said...

Einstein was an ubernerd. And this guy was too.

They're gonna destroy us all, I tell ya! Bombs via uber nerds!

Lester Hunt said...

"Most people Ive encountered that profess to follow Nietzsche?/Ayn Rands philosophy have been arrogant jackasses"

Hey, I resemble that remark!

Anonymous said...

"If you follow Nietzsches teachings you can do anything with your life! You can even become a philosophy teacher at the university of Wisconsin!"

I.D.R.C. said...

I wouldn't worry about it. When the inevitable apocalypse comes (probably a zombie one), these ubernerds will be the first to be wiped out.


I regret to inform you that when AI takes over, the ubernerds will become the imperial lackeys. The rest of us will be the service animals of the machine race.

Anonymous said...

I disagree, if computers ever become sentient theyll be able to fix themselves

Bitter Animator said...

I would have thought that if (more likely when) AI takes over, the ubernerds would be considered their biggest threat and would need to be wiped out first. So it would make sense for our silicon overlords to target the ubernerds with a zombie virus.

I.D.R.C. said...

If they really have intelligence, they'll be as lazy as we are. They will need someone else to do the dirty work. Why not use meatbags with fingers?

Bitter Animator said...

That's a very good point. Although they won't need smart meatbags so it could be lobotomies all round.

Anonymous said...

They could just build non sentient robots then

I.D.R.C. said...

They could just build non sentient robots then

Or they could make you do it.
Other machines would be competing for the same power reserves. You'll do it for a bag of stale airline peanuts and the hope that you won't get tazed again.

Soos said...

Yes, stuff like the auto-hide option can be confusing for the computerly challenged, but what's the alternative? Not having it?

The reality is that there are two markets with different needs and no real way to satisfy both of them. The basic user wants a simple interface with not too many extra gadgets clouding the screen - but the advanced user needs those gadgets for what he does.

To use your grocery store analogy, the grocery store is arranged in a way that makes sense, if you learn what the signs on every isle indicate. Computers are the same way - if you understand "computer thinking", then using them is simple. The group that Platt is referring to wants their bread and milk already picked out for them in a bag by the cash register - the advanced users want to be able to go through the isles and actually pick the best products.

Anonymous said...

Intelligent machines would have no problem creating some kind of cold fusion unlimited energy power source

JM said...

I mostly agree with you. Most software is very poorly designed, and doesn't allow for easy use. The other side of the coin is the "idiot-proof" software that is so automatic that you can't do the simplest things that you want to do. Software should work out of the box, but should also be customizable for the people who actually know what they're doing.

A computer is a tool just as is a paintbrush, and likewise takes some effort to master. Take graphics programs. Paintbrush was one of the easiest, most intuitive programs around, but it wasn't very powerful. Photoshop is on the other end of the spectrum. It is one of the most powerful programs out there, but it takes a long time to master. The difference between the two is similar to the difference between a magic marker and a dip pen. Sure, a child will say the magic marker is better than the pen, but an artist who knows how to use the pen can do so much more.

On the other hand, some software design is just stupid, like making the start menu auto-hide. Maybe some people like that, but that kind of thing should be optional, and should be off by default. I think Firefox does this well. Their default browser configuration works well out of the box, but it can be easily customized by the "power user". Microsoft and Apple should take the hint.

I.D.R.C. said...

Intelligent machines would have no problem creating some kind of cold fusion unlimited energy power source

I forgot to mention it will be fun for them.

Dude, say whatever you want, but my future is so gonna kick your future's ass.

pappy d said...

There's an expression prorammers use here at work when they're asked to make software more accessible to animators. It's "Fisher-Price". The idea is that artists want a big red button you can push to perform a task. Except for the value judgement on my intellectual maturity, THAT'S EXACTLY RIGHT! (pardon my caps) I would no sooner want to type in macros or surf through umpteen menus than you would want to do your programming in machine code!

Do Nietsche/Rand fans ever self-identify as Untermenschen?

Eddie Fitzgerald said...

Soos, Kris: Errrgh! I disagree. It's not either/or, not in a lot of cases anyway. An improved help menu wouldn't deter advanced users. if it did, I'm sure a way could be found to have one help menu for ordinary users and one for advanced ones.

i understand why software people are reluctant to simplify. Something about the nature of programs makes everyone resistant to it, programmers and users alike. When I figure out a solution to a problem with something I'm using, then it seems obvious and I wonder why I didn't think of it before. I actually develop an aversion to revisiting the old problem and I just want to move on to something else.

It doesn't harm anyone if I act that way, but a lot of harm is done when programmers do it. you guys are supposed to make things easier for the rest of us.