Slashdot: News for Nerds


Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Why Software Sucks, And Can Something Be Done About It?

Zonk posted more than 7 years ago | from the make-it-work dept.

Software 498

CPNABEND tipped us to a story carried on the Fox News site, pointing out that a lot of programmers don't understand their users. David Platt, author of the new book 'Why Software Sucks ... And What You Can Do About It', looks at the end user experience with end user eyes. While technically inclined individuals tend to want control, Platt argues, most people just want something that works. On the other hand, the article also cites David Thomas, executive director of the Software & Information Industry Association. His opinion: Users don't know what they want. From the article: "'You don't want your customers to design your product,' he said. 'They're really bad at it.' As more and more software becomes Internet-based, he said, companies can more easily monitor their users' experiences and improve their programs with frequent updates. They have a financial incentive to do so, since more consumer traffic results in higher subscription or advertising revenues." Where does your opinion lay? Should software 'just work', or are users too lazy?

cancel ×


one example of too many (4, Insightful)

yagu (721525) | more than 7 years ago | (#17478292)

One example I encounter almost every day is the notion of a computer's "state". People just want to turn something off and on, not easily abstracted for computers.

So, there is this myriad combination of "states", not too complex for slashdotters to understand but off the scale for lay users. It doesn't help we use "our" terminology. I've stopped trying to explain and describe the difference between "hibernate" and "standby".

Files, directories, logical drives..., all foreign and abstract curiosities to computer users -- most are technical artifacts from early on abstractions. It's not a wonder these lexicons ripple out the the general population, unfortunately it's of no use to the general users and mostly to their detriment.

I don't know how to get there, but users/people want computers to behave like toasters. They want very simple, limited-option and intuitive behaviors. Not all software lends itself to those but I think there is a much happier in between, and the group that can move is the programming group. I don't think the general population will ever educate itself about the differences between relational/hierarchical databases, the differences between NTFS and VFAT file systems, nor do I think they should be asked to know.

The closest I've seen to getting "there" in computers is probably Apple... I've seen novices sit in front of Apples and almost immediately be able to be productive.

The second closed I've seen is Unix/Linux, etc... not so much because of it's ease-of-use, but because it's one of the most consistent "flavors" of computing I've experienced (NOTE: I'm not discounting the complexity of Unix, it's certainly not for novices, but at least it's consistent).

One of the most popular applications I've written was one where the interaction with the user was basically a singly input field, a la Google. Users would instinctively type anything in the input field, and the application would do a pretty decent job of offering meaningful results. Analysis of logs showed users typically received meaningful results from their "input" 80 - 90% of the time. Granted it was a narrowly defined application, but I've seen indecipherable interfaces on top of narrowly defined applications.

The best general computing out there is something I'd predicted long ago, devices that are for narrowly defined and specific use with high powered computers underlying the gadgetry transparently (think TomTom (gps), ipod (no, I'm not a fanboy), etc.)

Ironically, or perhaps paradoxically, the most dominant technology available is the least intuitive to just sit down in front of and use. Of course, there is a latest and greatest new version out this year that should fix all of that. .

Bottom line, my opinion, users are not lazy, they just want to get some work done without needing the equivalent of a Bachelor's in Computer Science to get that work done.

Fine, not lazy (3, Insightful)

Mateo_LeFou (859634) | more than 7 years ago | (#17478460)

I'm guilty of some sneering at the 'average' computer user, and I'm working on that, but I'd like to point something out:

Computing -- especially in a *globally networked environment -- is *in *fact complicated. Doing it responsibly, in a way that doesn't wreck the environment for others (Cf. botnets) is difficult. Many of the users who "just want to get some work done" outsource the complexity, but don't mind if the network suffers the externalities because they don't feel like learning what true security requires.

If someone doesn't want to learn to drive, they have public transportation and taxis available to them and God bless 'em. But taxis and buses don't damage the roadways and the other vehicles on it during ordinary use.

  Basically I sometimes wonder whether putting a PC in every home was such a hot idea after all.

Re:Fine, not lazy (4, Informative)

drinkypoo (153816) | more than 7 years ago | (#17479014)

But taxis and buses don't damage the roadways and the other vehicles on it during ordinary use.

Au contraire! A bus does more damage when it runs across a roadway than would a line of cars with the same seating capacity because a larger amount of weight is put on the four (or perhaps six wheels - either double-axle or dual-wheel in the rear) wheels than from any car.

This is the reason why we have laws that say that vehicles over certain weights may not travel through certain neighborhoods except to make a delivery, and why you are supposed to need a commercial license to drive a vehicle over a certain weight. Of course, we don't actually enforce these laws because it means some rich people in LA and SF wouldn't be able to drive their Hummer home...

Re:one example of too many (1)

Qzukk (229616) | more than 7 years ago | (#17478478)

Bottom line, my opinion, users are not lazy, they just want to get some work done without needing the equivalent of a Bachelor's in Computer Science to get that work done.

The problem is that people insist that everything be as simple as a toaster, regardless of the actual complexity of the task. It's easy to say "narrow down the task until it fits", it's harder to figure out how to drive a car using one rarely-used slider and one button.

Oh, one more thing (1)

Mateo_LeFou (859634) | more than 7 years ago | (#17478514)

"the article also cites David Thomas, executive director of the Software & Information Industry Association..."

I think the idea that information is an industry is part of the problem.

Re:one example of too many (4, Insightful)

TheCrayfish (73892) | more than 7 years ago | (#17478526)

Well said, yagu. For a good illustration of the truth of what you've written, try teaching a Computer Literacy class for adults who have never used a computer before. I got questions like "what's a mode?" and "why are these little arrow keys for?". If normal humans -- the kind who don't read Slashdot -- have trouble with concepts like modes and arrow keys, you can imagine how difficult it was for them to understand that, when their Word document disappeared from the screen when they minimized the window, it did not also disappear from "the computer", but was sitting somewhere invisible to them.

I think it would serve every programmer well to spend some time teaching novices how to use something the programmer finds simple, such as the Windows calculator, Notepad, etc., to see how "normal" users think and react.

Even Google can't do it... (3, Insightful)

plierhead (570797) | more than 7 years ago | (#17478544)

Bottom line, my opinion, users are not lazy, they just want to get some work done without needing the equivalent of a Bachelor's in Computer Science to get that work done.

But what if its simply not possible to make things so simple that average Joe can "just do it"?

Everyone uses Google's search box as an example, but the fact is that that box is the front end of a task that is very easy to describe - "show me a list of documents that more or less relate to these words".

As soon as you stray from there into some of Google's other functionality you are into some far more complex screens that I personally have heard people confused by. Well-designed though they are, it sometimes just takes a fiew fields, links and words to make the interface powerful enough to be useful for the task at hand. This is even more so when there are financial ramifications to the task at hand, immediately requiring history, confirm dialogs, balances, tec etc.

As computer gurus our very DNA is infused with the belief that we can build it, and make it so simple anyone can use it.

Personally, I find that this feeling diminishes as the project progresses. Sometimes because we don't have access to Googe's level of funding for UI design, usability testing, etc. But often, in my opinion, because some tasks simply can't be made simple.

Re:one example of too many (1)

Marxist Hacker 42 (638312) | more than 7 years ago | (#17478700)

Completely agreed- and it's been pointed out many times over the years. My favorite is About Face by Cooper- he's the guy who created Visual Basic version 1.

However, a couple of quibbles- the first is:

I don't know how to get there, but users/people want computers to behave like toasters. They want very simple, limited-option and intuitive behaviors.

A toaster is a pretty non-intuitive interface. The first toasters were worse (only one heating element, you had to time the bread yourself, and flip it over when one side was done to toast the other side). Two heating elements, a single lever, and an automatic timer did increase it's usefullness, but it's still very non-intuitive (and just what does "press this unmarked lever and turn this dial to desired doneness" really have to do with making toast?).


Bottom line, my opinion, users are not lazy, they just want to get some work done without needing the equivalent of a Bachelor's in Computer Science to get that work done.

The article isn't calling USERS lazy, it's calling Software Engineers lazy. In combination with what I said above, though, I disagree. Most machines take a lot of know how to use them- then the know how becomes custom, common sense, a part of the culture- and suddenly it's "intuitive". The one thing you're right about though is that limitation of options yeilds muscle memory- which creates, eventually, a culturally intuitive interface. The fewer options the user has to consider at any given state in the state machine, the better.

Re:one example of too many (2, Insightful)

drinkypoo (153816) | more than 7 years ago | (#17478926)

The article isn't calling USERS lazy, it's calling Software Engineers lazy. In combination with what I said above, though, I disagree. Most machines take a lot of know how to use them- then the know how becomes custom, common sense, a part of the culture- and suddenly it's "intuitive".

I don't think that engineers are lazy, at least, not always. But that statement leads into this one: lazy is subjective. If a programmer failed to implement a feature that I think would probably be easy, then I think he's lazy. Does that make him lazy? Just to me.

I also think that computers CAN be intuitive, but only by more closely mimicking the way we work without computers. Firstly, the mouse is nonintuitive. It's a concept grasped easily enough, but nothing else works that way. A pen or even a simple pointing interface (pointing at things, as in the Wii remote) is dramatically more logical. Arguably though, you can't really call computing intuitive until you can't tell you're computing any more. An immersive environment which is used naturally (through gloves and such) with full haptic feedback and the like is going to be the first intuitive interface... unless we get a useful natural language interface. Both have been a long time coming but the VR thing looks more likely to happen soon simply because all the parts are already here and in use.

Back to the issue of lazy engineers... Perhaps the OS is not doing enough to help them? I mean it would be a lot easier to (for example) manage data if the filesystem were a database. Yet we still haven't seen that happen anywhere but BeOS in spite of everyone and their mother promising it to us. I think tradition is the single largest impediment to advances in computing.

Re:one example of too many (1)

nuzak (959558) | more than 7 years ago | (#17479174)

> A toaster is a pretty non-intuitive interface.

I've heard the nipple called the only intuitive interface, but I've been told that a lot of newborns have trouble even getting that. We have some inbuilt tendencies, but as far as actual learning goes, we're really tabula rasa.

The push lever on a mechanical toaster is something you cannot fail to get. Lever goes down, toast goes down, toaster gets hot. Anyone who cannot comprehend that should probably not be operating it, lest they cause injury. The toast "doneness" dial on most of the old toasters I remember was a slider with actual colors under it. That might not be immediately apprehendable, but it has no other function, no "modes". You can't make it do the wrong thing, any wrong doneness is easily attributable to and fixable by that knob.

Of course I have a toaster with a solid state timer (which is nice now that I can toast two pairs of slices in a row), but pushing the lever up does nothing. You have to hit a "cancel" button on top of the toaster. Sometimes it doesn't respond -- I swear I've locked up my toaster before, and had to unplug it and plug it back in to "reboot" it. Doneness is still with an analog knob, no colors, but it's still pretty obvious for anyone who's ever used a toaster before. It also has "bagel" and "frozen" buttons, that lights up a little LED for each, and deducing from much experimentation with them, they apparently do nothing at all. I suppose the toaster just wants to know, so sometimes I humor it.

My gf wanted the toaster that uses a motor to bring the toast down and up, but I outright rebelled at that point (at the price if nothing else).

Re:one example of too many (0)

Anonymous Coward | more than 7 years ago | (#17478820)

Bottom line, my opinion, users are not lazy,

No theyre not lazy, theyre stupid. A normal person would never get into a car and think they can drive without taking a lesson. But for some reason people expect a PC (something a lot more complex) to be easy enough for a baby to use.

Why does every idiot who buys a PC think that 5 minutes browsing the reviews in PC Magazine makes them qualified to use one.

I blame companies like Micro$oft who lie to people, telling them anyone can operate a PC then write the most god awful pile of shit software.

Re:one example of too many (4, Insightful)

danpsmith (922127) | more than 7 years ago | (#17479136)

I don't know how to get there, but users/people want computers to behave like toasters. They want very simple, limited-option and intuitive behaviors. Not all software lends itself to those but I think there is a much happier in between, and the group that can move is the programming group. I don't think the general population will ever educate itself about the differences between relational/hierarchical databases, the differences between NTFS and VFAT file systems, nor do I think they should be asked to know.

That's all good and fine, but there are cases, many, many cases, where users aren't able to use even the simplest interfaces. This can be expected of them, as the people unable to use these interfaces tend to be old people, while younger people immediately know how to use them regardless of previous training because they are at least used to the idea of an interface.

I used to work at wawa, and I can't even tell you how many people used to complain about how the touch screen ordering system was oh so complicated. The entire thing was self-explanatory. You touch what type of food you want, then touch the ingredients then hit complete. Not exactly rocket science. For these people even using a touch screen to manipulate words is something they are uncomfortable with. We cannot stoop to this type of illiterate and design software to accommodate them. They simply cannot be accommodated. People need to learn to read and interact with a basic interface, if they can't, then they will get left in the dust, same as other dinosaurs.

Re:one example of too many (1)

mejor no hablar de c (1047488) | more than 7 years ago | (#17479156)

So why don't you go and cook a piece of raw meat with homemade fire? It's certainly easier than using a microwave or even an oven, and the meat will be cooked just the same... This is about software EVOLUTION and what people can do with it.

I agree.... (0, Redundant)

n00854180t (866096) | more than 7 years ago | (#17478298)

With the sentiment that customers shouldn't be allowed to design applications. They tend to be absolutely horrible at figuring out what they want.

Re:I agree.... (1)

Capt James McCarthy (860294) | more than 7 years ago | (#17478414)

Very true. Having a customer put their requirements on a sheet of paper is beyond painful for all involved. (normally, the customer never knows what they truely want anyways). Sadly, the thing that gets done more often then not is an application is designed by the devlopers, placed in production, then the customers follow with information about what they like, don't like, or want. It's ass backwards, but job security for all.

Re:I agree.... (1)

balsy2001 (941953) | more than 7 years ago | (#17478432)

Thanks for the repeating the article.

Re:I agree.... (1)

PFI_Optix (936301) | more than 7 years ago | (#17478792)

It's a matter of balance. Users can't anticipate all of their own needs, much less the needs of thousands of other consumers, but then programmers can't single-handedly design an interface and feature set that meets the wants and needs of all those consumers either.

Look at Office 2007. Microsoft is trying to remove the confusion of menus, option windows, and toolbars by implementing a much more simplified (and hopefully more robust) interface. For the power user, it puts more information on the screen and removes steps in using features. For the newbie, it makes options easier to find and groups them more intuitively--at least that's the theory behind it.

Re:I agree.... (1)

Metasquares (555685) | more than 7 years ago | (#17479044)

It could just be the learning curve of a new interface, but I find the ribbon in Office 2007 annoying, myself. Instead of selecting the desired option from a menu in a fixed location, I now need to figure out which ribbon a command lies under (which doesn't always make sense... why are paragraph settings in "Page Layout", for example?) and then where in that ribbon the command is (you need to do this in a menu as well, but you at least know the general neighborhood of where the item appears). It's replacing one step of indirection with two. Don't even get me started with using keyboard accelerators on the ribbon, either.

Perhaps a good article, but ... (-1, Offtopic)

gardyloo (512791) | more than 7 years ago | (#17478324)

... We should have one called "Why FOX News Sucks". Not that I ever watch the stuff, of course.

Re:Perhaps a good article, but ... (1)

TodMinuit (1026042) | more than 7 years ago | (#17478520)

Not that I ever watch the stuff, of course.
Which is why you have an informed opinion on it.

(How did that post get modded up funny? It's a blatant troll.)

If I know anything... (1)

sottitron (923868) | more than 7 years ago | (#17478332)

If I know anything, I know that the answer has to be completely one or the other. There is no room for the middle ground for anyone. It is completely self evident that software should 'just work' or users are lazy.

Just work? (1)

Anonymous Brave Guy (457657) | more than 7 years ago | (#17478348)

Should software 'just work', or are users too lazy?

Yes, and usually (but it depends on the market).

Of course, there are a lot of things that aren't excluded by those constraints. For example, software may be simple-but-effective or complicated-but-powerful, yet still "just work" for its desired target audience. It can lead new users clearly and effectively through the more complicated functionality, yet still provide a streamlined interface for experts who already know the software and don't need their hand holding. And most important of all, easy-to-use does not imply under-powered, and powerful does not necessarily mean you have to present everything in a convoluted and cluttered interface. Desirable traits are rarely mutually exclusive.

the ninety ten rule (5, Funny)

iplayfast (166447) | more than 7 years ago | (#17478394)

Ninety percent of your users will not have an opinion about your software.
Ninety percent of the users who have an opinion, will have a misconception about what the software is supposed to do.
Ninety percent of the users who understand what the software was supposed to do, will have a preconceived idea on how it should work based on their experiences with your competitors.
The final 10% of the people who have an opinion, have no misconceptions about the software, and have no preconceived idea, will have useful input.

Unfortunately 90% of those people are idiots.

About your numbers . . . . (0)

Anonymous Coward | more than 7 years ago | (#17478688)

So let's see. Assuming 100,000 users, just to keep it simple.

Ninety percent of your users will not have an opinion about your software.

So 90,000 users have no opinion, leaving 10,000 users who do.

Ninety percent of the users who have an opinion, will have a misconception about what the software is supposed to do.

So of the 10,000 users with an opinion, 9,000 don't understand and 1,000 do.

Ninety percent of the users who understand what the software was supposed to do, will have a preconceived idea on how it should work based on their experiences with your competitors.

So of the 1,000 users who understand, 900 have preconcieved ideas, leaving 100 who have an opinion, have no misconceptions about the software, and have no preconceived ideas.

Unfortunately 90% of those people are idiots.

So of 100,000 users of your software, only 10 have useful input? That must not include the programming team.

Boy am I glad you don't work for me.

so, more explicitly... (1)

TheAxeMaster (762000) | more than 7 years ago | (#17478770)

90% of people will not have an opinion, 9% of people won't understand what it is supposed to do, .9% of people will think it should work differently, and .1% of people will have useful input. But 90% of those people are idiots, so you really only have .01% of actual useful input. I hope your user base is big, because that is one in ten thousand...

Re:so, more explicitly... (1)

AusIV (950840) | more than 7 years ago | (#17479072)

Sadly, I have to agree with the grandparent. A few years ago, I wrote a Half-Life server side mod. I got no input from the vast majority of my users. Of the people who gave me input, most didn't understand the point of the mod. Of those who understood the point of the mod, most of them wanted it to work more like another mod, even though I made an effort to make my mod compatible with any other mods they wanted to run. There was only one (other) person the entire time who really understood my mod and was able to constructively contribute to it.

Re:so, more explicitly... (1)

iplayfast (166447) | more than 7 years ago | (#17479126)

Hmm, my humor module must be out for repair. That was supposed to be funny.

Let's draw back... (5, Insightful)

neimon (713907) | more than 7 years ago | (#17478404)

...a few thousand miles.

If people are bad at figuring out what they want from a computer, and terrible at designing (which, yes, they are) then maybe the problem is that the computer sucks. General-purpose computing is best left in the hands of experts. That model worked for 20-mumble years, and it was a good one. It still is, if you need to get industrial-grade stuff done.

But "personal computers," to be distinguished from "desktop computers," are a bust. Ordinary people can't deal with the complexity, and attempts to make computers act like a friendly thingy with stuff on it all fail because the computer isn't a friendly thingy with stuff on it. It's a computer.

People need, say, the Pure-Digital video camera that lets you take digital video with one button, has no memory cards, and runs on aa batteries. They need the microwave oven with the popcorn button. They need the car with a computer in it so they don't have to know when to use the choke. Special, optimized uses of computers work great for ordinary people.

People aren't stupid, they just don't act like a computer. Maybe there's a lesson there.

Apple gets it right. (5, Insightful)

Oz0ne (13272) | more than 7 years ago | (#17478420)

I totally agree that most software sucks. I'll even admit that some apple software sucks, but since switching (almost 2 years back now,) my world has completely changed. I'm no longer frustrated most of the time when working with my computers.

I've been a software developer for near a decade. There's two extremes to this, ignoring your customer, and letting them run the development, both are bad. The best path is to have some intelligent people in your company that sit in between customers and clients and act as a translation layer. Throw out the ideas you can't implement, give them the good ones. These people have to be at least partially developers themselves, they serve as architects as well as PR.

Customer Ideas -> Architects -> Code Monkeys

Firefox 2.0 (Win32), on (1)

BigBlockMopar (191202) | more than 7 years ago | (#17478942)

I totally agree that most software sucks.

I'm about to throw Firefox and out a fscking window, because Firefox intermittently ignores the scroll wheel on my mouse. Also happens on Slashdot.

Sorry, I had to get that off my chest, and when the scroll wheel stopped working and I was forced to go to the elevator bar to scroll past a story about how software sucks, well...

Re:Apple gets it right. (1)

fangorious (1024903) | more than 7 years ago | (#17479006)

Well-well look. I already told you: I deal with the god damn customers so the engineers don't have to. I have people skills; I am good at dealing with people. Can't you understand that? What the hell is wrong with you people?

Both (1)

Xangis (263898) | more than 7 years ago | (#17478424)

Software should "Just Work" and users _are_ just too lazy.

I'm of the mind that any reasonably complex application should have more than one use mode: "Quick Mode" (read:idiot mode) and "Advanced Mode". In "quick mode", things are one-click, there are a tiny handful of available buttons/operations, and simple tasks can be performed quickly and near-automatically, whereas in "advanced mode" you can tweak every little setting to your heart's desire. Most applications seem to lean toward one end or another, lack the ability to cater both to noobs/nontechnical AND expert users. A good example of this would be many of the "Express" vs. "Full" versions of software (i.e. Nero). If a single app could run in both modes it would go a long way toward providing a user-appropriate interface.

Soul of a new machine (2, Interesting)

plierhead (570797) | more than 7 years ago | (#17478714)

You should read "Soul of a new machine" by Tracy Kidder. Its an old book but its written by a guy embedded within the hardware and firmware design guys at Data General as they build an entire new processor.

At one stage the PHB arrives in the war room and utters his one and only edict - "NO MODE SWITCHES".

Pissed off with him at the time for making their design job more difficult, by general concensus, the engineers later applaud him for his vision (however the company has since folded so perhaps this was not such a great analogy).

Re:Both (0)

Anonymous Coward | more than 7 years ago | (#17479002)

The trick is to split the software in many different versions from "basic" to "advanced", and then make sure
that advanced users can't possibly use the basic version. then you can set the price of each version for each group of customers, and get maximum overall profit.

This is of course when you are selling the software. If you look at open source software, you will often find a single program that can operate in two modes, exactly as you described. So the problem is not in the design of the software, it's in the way it is sold.

Why do GM cars suck? To make money of course! (0)

Anonymous Coward | more than 7 years ago | (#17478434)

Its a new profit model. Make things that suck and get big money in service contracts. General Motors is kicking this business plan into high gear more than ever. Odd placement of fuel tank, limited visibility through windows, clumsy controls, interior makes noises and rattles, suspension hardware wears out quickly, repeated electronics failures and proprietary documentation, missing keyholes for locks where there should be, hard to replace maintenance items such as the battery underneath several layers of cruft, and the list goes on. Make your design require service!

Of course it should just work. (5, Funny)

MadTinfoilHatter (940931) | more than 7 years ago | (#17478452)

On a completely different note, I just bought a guitar, but I'm going to return it because I think it should just produce the music I want to hear when I hammer at it like a retarded orangutang. Someone told me that I'd have to take the time to learn stuff like "notes" and "rhythm" and who-knows-what. That person obviously just doesn't know how to make a guitar. [/sarcasm]

Re:Of course it should just work. (1)

neimon (713907) | more than 7 years ago | (#17478692)

And anyone who wants to, say, send an email should have to practice for four or five years to get it right? Even though we know there are people who, after 15 years, STILL DON'T? That kind of smarmy strawman is another reason why software sucks: so do geeks' attitudes about people.

Maybe, just maybe, the computer isn't something regular people should have.

Better analogy (4, Funny)

Quiet_Desperation (858215) | more than 7 years ago | (#17478742)

It's more like buying a new "upgraded" guitar, and in order to hit any flats or sharps, you have to open a small panel on the back and hold down a button. Oh, and replacing a broken string may lead to complete inoperability.

Re:Of course it should just work. (5, Interesting)

captainjaroslav (893479) | more than 7 years ago | (#17478782)

Okay, so you're being sarcastic, but you're also missing the point. A better analogy would be somebody who wants to listen to music and is given a guitar rather than a radio. Sure, if they put in the time and effort, they could eventually learn to play the guitar and possibly even make better music than what they could find on the radio but it's not really a reasonable answer to the person's need.

Computers are supposed to automate (1)

El Gruga (1029472) | more than 7 years ago | (#17478466)

and make things quick and easy. Thats what the advertising says. But people are stupid so they actually imagine that the advertising is real. So the answer is simply this: People are lazy and stupid and programmers are crap at making it 'just work'. They are made for each other!

Re:Computers are supposed to automate (1)

captainjaroslav (893479) | more than 7 years ago | (#17478830)

So, for the average user, if computers aren't supposed to automate and make things quick and easy (i.e., that's just deceptive advertising), what are they supposed to do?

Better: why my GF doesN'T suck, and what (0)

Anonymous Coward | more than 7 years ago | (#17478468)

Better: why my GF doesN'T suck, and what can be done about IT ?

Re:Better: why my GF doesN'T suck, and what (1)

Jeng (926980) | more than 7 years ago | (#17478914)

Is she plugged in? What are the lights doing? Might want to double check the connections.

The probkem is not competency (2, Insightful)

UPZ (947916) | more than 7 years ago | (#17478502)

The problem is that even the most competent programmers tend to know C++ better than English.

Re:The probkem is not competency (1)

yeremein (678037) | more than 7 years ago | (#17478702)

The problem is that even the most competent programmers tend to know C++ better than English.

Hey, I resemble that remark!\n

Users don't make buying decisions (4, Insightful)

ewg (158266) | more than 7 years ago | (#17478516)

It's true that developers don't think like users, but that's not the only reason software is hard to use.

In most cases in business, users aren't the ones making software buying decisions. The organization makes choices for them based on a number of factors. There's no conspiracy against usability, it just has to compete with cost, features, regulatory compliance, and other considerations. Software developers naturally target the criteria that drive purchase decisions, even if the result is a compromised user experience.

Users (1)

bbroerman (715822) | more than 7 years ago | (#17478524)

Well, IMHO, users usually want something simple UNTIL they need more control for some specific problem. Then they either turn to some other tool that gives them that control (usually at the cost of extra complexity, which they then complain about) or they just complain that the software doesn't do enough. What if the software begins with a simplified interface, but allow the user to easily set options to "reveal" more and more of the complexity until they reach a comfortable mix. The software could provide a context sensitive version of this (possibly a pop-up on hover, or on right-click) as well as a larger "options" page that would let them set each level for each functionality group all in one place. One idea would be to have a hover on a "simplified" control show a popup with the next level of complexity, while a right-click brings up a popup menu to set the default level for that control... As with the other complaints (i.e. stupid questions from the program), perhaps a heuristics algorithm could be used so that the "stupid" questions are only asked for a while, until the program "learns" the preferences of the user. Of course, there would be that one time that they should have gotten some reminder, but they didn't because they clicked past it before, and then they complain again...

More FOX anti-intellectualism (0, Insightful)

Anonymous Coward | more than 7 years ago | (#17478528)

CPNABEND tipped us to a story carried on the Fox News site, pointing out that a lot of programmers don't understand their users

Gee, an article by FOX News stating that eggheads don't really know what they hell they are doing. How completely out of character for them to bash the scientists and engineers that keep this country from completely collapsing.

Re:More FOX anti-intellectualism (1)

neuraljazz (307431) | more than 7 years ago | (#17478680)

Poster may be anonymous coward, but after RTFA, I agree.

Platt doesn't know what he's talking about and it isn't in FOX's interest to report "realfacts" just their "goodfacts".

Is there anything else in the news about development that's hitting the political football other than Net Neutrality right now? What's FOX's position on this?

This is just a little bit crazy. (5, Insightful)

wuie (884711) | more than 7 years ago | (#17478530)

I'm reading TFA, and some of this stuff is just silly.

For instance, the "Save" button. He argues that a statement that says "Do you want to save your changes before you exit" is a hard sentence, and that "Do you want to throw away everything you just did" is a clearer sentence.

The word "save" isn't that hard of a word to grasp. People save money. People save possessions. Saving documents is no different. Grade schoolers understand it.

What really cracks me up, though, is that he argues that when deleting documents, there should be *no* confirm. I've had a few times when that windfall was really helpful, when I've accidentally hit the delete button or selected delete, and then said "No, I don't really want to delete this file." He compares it to starting a car, where the car doesn't ask you if you want to start the car or not. This is a horrible analogy: the last time I checked, turning a key didn't do something as devestating as, say, deleting your car.

I deal with end users every day, and I've had many of them admit that they don't read error messages or confirm dialogues. If they don't read it, what difference does it make what's included in the dialogue? I've made messages that were very easy, simple to read and understand, only to have them overlooked.

Next, the author mentions that error messages need to state *why* something failed. Wait a second... I thought he was just arguing for simpler error messages, but now he wants to know specifically what happened? That's not exactly simplifying things for the end user.

Now, I'm not saying that it's all the fault of the end users. There are some rather atrocious error messages out there, but it'd be safe to say that there are more end users out there that don't read things carefully. Computers are a tool, not a replacement for thinking, and users need to know that in order to get the maximum use out of technology.

Re:This is just a little bit crazy. (2, Interesting)

markov_chain (202465) | more than 7 years ago | (#17478654)

Good points. Now that we're doing car analogies again, note that most cars won't start unless the shift selector is in Park, or won't let the user move the selector out of Park unless the brake pedal is depressed. Sounds like the Fox author is a weenie.

I don't even agree that software sucks, I'm perfectly happy with most of it. In fact, what am I even doing here reading this?


Re:This is just a little bit crazy. (1)

techno-vampire (666512) | more than 7 years ago | (#17478946)

I have a stick-shift, and it doesn't have "Park," you insensitive clod!

Re:This is just a little bit crazy. (1)

markov_chain (202465) | more than 7 years ago | (#17479024)

I said "most cars" exactly because I have foreseen your reply ;)

Re:This is just a little bit crazy. (1)

BecomingLumberg (949374) | more than 7 years ago | (#17478724)

"This is a horrible analogy: the last time I checked, turning a key didn't do something as devestating as, say, deleting your car."

Wait until you install MCE in the dashboard...

Re:This is just a little bit crazy. (1)

arkanes (521690) | more than 7 years ago | (#17478752)

Whenever a tech writer feels like he needs a little more exposure he writes something about how programmers don't write good interfaces, and they're condescending to users. It's trivial, obvious fluff writing that people have been doing for at least 20 years. There's never anything new in the articles, and most of what *is* in them is wrong.

Re:This is just a little bit crazy. (4, Funny)

Quiet_Desperation (858215) | more than 7 years ago | (#17478816)

This is a horrible analogy: the last time I checked, turning a key didn't do something as devestating as, say, deleting your car.

Well, outside of organized crime, anyway.

Tends to delete the user as well.

Re:This is just a little bit crazy. (1)

mandelbr0t (1015855) | more than 7 years ago | (#17478856)

How about this silly, uncited claim:

To illustrate his point, he notes that computer programmers tend to prefer manual transmissions. But not even 15 percent of the cars sold in the United States last year had that feature.
I checked Google, and the only page that is even closely related to the claim is a blog post by "Joel on Software." Ironically, Joel can at least explain in technical terms what it is about a manual transmission that might appeal more to a computer programmer.

Regardless, it's a silly claim. It's just an attempt to pigeon-hole two groups that are a minority of the population into the same hole. I agree that there's a disconnect between developers and users, but it has nothing to do with developers being less numerous than users.


the userbase is everything (1)

petes_PoV (912422) | more than 7 years ago | (#17478534)

After a software suite/program gets past a certain number of users it gains a momentum of it's own. Once this happens, the quality of the product, or next version, or upgrade ceases to matter (at least in less than a timescale measured in years) as too many people have been locked in.

At this point the normal market forces that give rise to continual improvement cease to function and all you get is software bloat, with lots of "features" that seem like a good idea, or just fulfill a marketing need to have ticks in boxes

User Centered Not User Designed (4, Insightful)

99BottlesOfBeerInMyF (813746) | more than 7 years ago | (#17478542)

RANT: Designing good, easy to use software is not as hard as many people to think, although writing it is harder than what most people do now. User's are not good at designing software, but only the user knows what they want to do and how they want to do it. This should be the beginning of the UI design. "What does the user need to do, and how can they do it most effectively." This should be almost completely divorced from how the program goes about providing the functionality. Usually, the UI should be up and running before the back end is really started. Most software today is designed the other way around. "We can make software that does this and this and this, now how can we let the user get to those features." The term "user centered" is in contrast to feature or engineering centered. Users should not be designing it, but you do need their input and testing to see what works and what doesn't. Follow the basic rules of UI development and you can miss many obvious problems, but at some point you need users to show you what you missed.

Analogies (1)

shashark (836922) | more than 7 years ago | (#17478556)

Movies, Music, games - other kinds of totally different softwares. Movies are non-interactive, yet, are as complex as a piece of software. If you can engage your user with the software, you job is done. Id say a writing a piece of software that people would like is an Art form - not science. Much like movie making. No school can teach you that. Case in point - Steve Jobs. Point made.

In other news - who's the David Thomas the articles refers to. Wikipedia [] has nothing on him. David Platt - the author of this oh-so-obvious-whory article is not a known personality either.

On its own merits, the article shouldn't be finding a mention anywhere. Least on slashdot. That slashdot has to compete with digg for first posts is another issue altogether.

In my Opinion (1)

Winckle (870180) | more than 7 years ago | (#17478580)

Users expect far too much. Yes I admit there is a lot of software out there that is confusing and difficult to use. However one does not expect to sit down in a car and expect to be able to drive it without learning or being shown how to do so first. Similarly with kitchen devices such as ovens, even frying pans. You cannot expect to be able to use something easily without taking the time to learn to do so.

Re:In my Opinion (2, Insightful)

BecomingLumberg (949374) | more than 7 years ago | (#17478796)

Well, if i can drive a chevy, i can drive a honda, and a buick. Maybe I can't drive a Panoz, without additional training, or a semi, but i have a descent idea of what I am doing.

I think it is reasonable to say that some developers fail to realize that making a program familiar and consistent is very helpful.

Yes and no. (1)

Lord of Hyphens (975895) | more than 7 years ago | (#17478608)

Where does your opinion lay? Should software 'just work', or are users too lazy?

Yes and no.

Our users (as a whole) are lazy twits who shouldn't be allowed near most of the functions available to a computer. Unfortunately, the 'just work' principle doesn't work when applied to software that can't afford to be that simple. Operating systems, for example, are by their very natures complex beasts and should be treated as such. Linux (for the most part) makes no bones about its own complexity (and in fact generally revels in it), whereas Apple's operating systems earned their "easy to use" moniker by simply performing most significant intermediary tasks "magically". MS Windows takes the median route (which unfortunately results in users learning just enough to be highly dangerous to their machines and data).

When designing a piece of software, special care must be made to balance the feature load. If you want something simple (reaching for the appliance metaphor here), you can only really apply a few user-invokable features.

One of the things that has always confused me is that people (speaking very generally here) take the time to learn how to use their appliances (TV, microwave, VCR, etc), but sit down at a computer and expect everything to be taken care of for them.

Here's a question for you developers (1)

TrippTDF (513419) | more than 7 years ago | (#17478618)

My company needs a custom, web-based, Database driven app built. We have a pretty good idea of what we need it to do, and I have a good idea of how I want it to work. Now, I'm not a developer, I'm just the sysadmin, and the one in the office with the best understanding of computers. How can I best convey what it is that we want built to the developer (we already have one lined up.)

Re:Here's a question for you developers (2, Informative)

Amazing Quantum Man (458715) | more than 7 years ago | (#17478890)

Write a requirements document.

Put in measurable terms (at least as much as possible), what you want it to do. This has the added benefit of making *YOU* think about what it needs to do, as opposed to having a "pretty good idea".

Second, the UI is king. Make sure the UI reflects what needs to be done, and not the internal architecture of the program. For example, I've been using a tool (which shall remain nameless, to protect the guilty), where to change a displayed value in a table, I can't just double-click the value -- I have to right click on the first column for that line, and select "Edit field N". Why? Because that's how the program does the change internally, and the UI reflect that instead of the task-based interface.

Where does my opinion lay what? (1)

poity (465672) | more than 7 years ago | (#17478636)

Oh you mean "lie"

Re:Where does my opinion lay what? (0)

Anonymous Coward | more than 7 years ago | (#17478974)

>> Oh you mean "lie"

Wow. English syntax.

Here's a hint for those confused by the issue.

TransitiveVerb : Verb {
      public noun Object;

Because.... (1)

MBCook (132727) | more than 7 years ago | (#17478658)

People keep paying for it. Look, if you don't know what "The program is closing, do you want to save the changes since your last save or discard them?" means, you shouldn't be using a computer. They bring up the car analogy (I read this elsewhere), but they leave out one crucial part:

Anyone can use a computer, you need to study for a license to use a car.

That's why people accept the way cars generally work, they've been taught about it. They have experience. If you sit down at a computer, try your best never to learn how it work or what the terminology (even drive, file, folder, etc) is, you're not qualified to design software and say that way X is better than Y. Just because you don't know the jargon doesn't mean it's bad. Computers have a LOT of superfluous jargon, but a save dialog is not one of them.

What do you do? Automatically save? They didn't want to do that, you just overwrote their changes. Automatically close? They've been typing for two hours, you just lost all that work.

The save dialog exists for a reason and is well thought out, in my opinion.

As others have stated here, users are not qualified to design software, and those that complain often barely know enough to open the program. There are problems deeper in software (like the advanced features of Office), but really.

My biggest complaint with software is bugs, and people can vote that kind of thing with their wallet. You don't like your tax software (I helped someone with TaxCut last year, that threw me for a COMPLETE LOOP, it made NO SENSE; where TurboTax is quite sensible). I know you don't always have that choice (Office, for example) but when you do, STOP BUYING CRUD HOPING THEY'LL FIX IT. FIND SOMETHING BETTER, OR RETURN IT WHEN IT'S BUGGY.

Re:Because.... (1)

whoever57 (658626) | more than 7 years ago | (#17479026)

The save dialog exists for a reason and is well thought out, in my opinion.
While I disagree with many of his comments, let me suggest a change to the save dialog: No preceding question, just 2 buttons:

Save Changes

Discard Changes

Most Users Just Want to Get On With the Job (4, Insightful)

Phrogman (80473) | more than 7 years ago | (#17478666)

I don't think the typical user wants to be bothered learning to use a piece of software, they are focused on the task they have to accomplish. If your software easily facilitates that task, with the minimal (preferably zero) learning curve, then they think its a good program, if it obfuscates that task, requires more extensive learning, or simply doesn't perform in the manner they expect it to, then its a bad program. Rightly so in most cases. Its only those in highly technical fields - or computer programmers etc - that usually need software with any real complex functionality. For those individuals, the cost of the learning curve (time and effort) is worthwhile if its more efficient that some other method of accomplishing some complex process or processes (time and effort).

Most programs seem to come with more bells and whistles than they need to, but then I guess they are trying to provide all the tools that I *might* be looking for in one package. I have never used more than about 10% of the features in any office suite for instance, mostly I just want to present a document containing well formatted text in the font I want.

The only place I appreciate complex software is in the areas where it suits my needs - a good IDE, Editor, graphic and sound manipulation software, and the Games I play. Outside of that most software is more hassle than its worth and I resent having to learn to use new programs just to achieve one tiny task.

I think the answer is coming in individual devices that serve specific functions and don't try to go beyond those functions. My cellphone has no camera, no email, no web-browser etc, but it does let me talk and receive calls. Thats all I need it to do. If I wanted the bells and whistles I woulda shelled out $350 Cdn for a Razor :P

I'm happy if it 'just works' (2)

wiredog (43288) | more than 7 years ago | (#17478670)

Most of my end-users are as well. We're unhappy with 'doesn't work' and especially with 'fails randomly, in interesting and unrepeatable ways'. Sure, most software sucks on some level. The users want it fast, cheap, and working (choose any two), the programmers (including me) want it to work excellently. The stuff that ships is a compromise between 'works' and 'insanely great', the level of compromise defined by budgeting and timelines.

Where I work... (1)

fudgefactor7 (581449) | more than 7 years ago | (#17478678)

We have a massive database-interfacing program, that keeps track of everything for medical's truly a monster of a program. There's at the moment 9 full-time .NET programmers working on it (prior to switching to .NET it was a VB6 thing...which sucked); anyway, there's a lot of work that goes on with it, and aother group (3 people) get to determine what information is added, removed, or accessable from the main program. These three are supposed to be experts. But they're just reactionaries to what management "freaks out about at the moment." So the software is never done. You know how Tolkien described the Nazgul as always dying but never dead? Same deal, except in software form. This project's amendments are the ones that are never finished, never done, and is always "THE MOST CRITICAL THING EVER!"...until next week when they need a new thing added (usually a button that prints out the ICD10 code for a particular diagnosis.) [sidetrack: why are ICD9 and ICD10 codes for the same thing often so different? WTF?]

So, in essence, software sucks because programmers are at the beck-and-call of their clients, and the clients don't know WTF they want, need, or can live without. Software written by the programmer to fit a specific need (and nothing more) will always be better than crap from a committee of morons.

OSS's main problem (1)

abigsmurf (919188) | more than 7 years ago | (#17478686)

This is a common issue in products designed for functionality rather than how easy it is to use, which, unfortunately is a major issue with quite a few of the big software packages. When I tried to use the GIMP for instance I was greeted with a horrible mess of floating windows and quickly switched back to paintshop pro (I only do light editing). Linux had to deal for years with requiring users to use a commandline interface to do certain things and although it's improved greatly, unexperienced users reading magazines and articles about how to do certain things and being presenting with lines of script they don't understand can be intimidated.

Modular design is also problem of all software in general. For example medium to advanced users may be fine with installing codecs for their video files but unexperienced users often don't have a clue to do (who hasn't had to deal with "how do I play .avi files, I keep getting errors" from family). Codec packs only go partway to solving what is a major problem and even video lan centre, a piece of software which eliminates the need for codecs, then goes and relies on plugins and addons for everything.

macs suck, windows sucks (0)

Anonymous Coward | more than 7 years ago | (#17478696)

i completely understand where the breakdown lies. what i dont understand is how the (and i quote) "average" (or in my eyes, below average) user expects their machine to pick up the slack. you cant purchase something and expect to just use it. sayings like RTFM have been coined for a reason.

Blame the Programmer (1)

jythie (914043) | more than 7 years ago | (#17478774)

I am getting a little tired of this cop-out.

But of course, it is never the consumer's fault, or marketing's fault, or management's fault. All of those are 'real' people.

Re:Blame the Programmer (1)

jythie (914043) | more than 7 years ago | (#17478896)

Oops, rest of the comment was:

I am getting a little tired of this cop-out.

People can not seem to deside if programmers are interchangeable cogs incapable of creative or artistic input (I esp see this in game design), or are the single point of failure in an otherwise immaculate company....

You can't have it both ways. Most bad software comes from a mix of sources including the programmers, the designers, management, marketing, customer feedback, etc. Often these poor designs exist because someone _told_ the programmer to make it that way. Or the programmer was given mutually exclusive requirements. But of course, it is never the consumer's fault, or marketing's fault, or management's fault. All of those are 'real' people.

YOBU FAIL IT (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#17478778)

culture 07 abuse

End user solution (1)

extern_void (1041264) | more than 7 years ago | (#17478786)

while((end_user = (run(code)) < 0)
   end_user = next_user[++i];

just kidding :)

How is making the software? (1)

NaiL2001 (774538) | more than 7 years ago | (#17478798)

Today anyone can start doing his programs and worse.. anyone is calling himself a developer. Maybe is the time to recognize the people with knowledge about software engineering.

I'm afraid I can't do that, Dave (1)

Bugmaster (227959) | more than 7 years ago | (#17478824)

Yes, it would be nice if all software "just worked", but, until we develop Strong AI (such as HAL... hmm...), this is not possible. Since a user can't just tell his computer, "do my taxes for me, pronto !", the user will have to use his own intelligence to instruct the computer in what to do. This means that they will have to learn how to talk to the computer in its own language. The best software strikes a balance between the steepness of the learning curve, and the power it exposes to the user.

Apple tends to take the more user-friendly road: expose as little power as possible, but make the UI as simple as possible. This is a valid choice. UNIX takes the opposite approach: it's all power, all the time, if you can remember 12 different config files and env variables in your head. Given UNIX's audience, this is also a valid approach.

However, letting your users design your software from the ground up is a terrible idea, because the users are not aware of the limitations of modern technology, nor are they aware of the complexity of their own field (most of the time). In 90% of the cases, what the user truly wants is a button that says "do my work for me"... and we're right back where we started, at the beginning of this post.

Asking on Slashdot? Let the love-fest begin! (5, Insightful)

pla (258480) | more than 7 years ago | (#17478840)

Users don't know what they want.

No frickin' kidding.

If you give users a choice between two mutually exclusive features, they will answer "yes". They will then complain at needing to pick one at runtime (or complain that you didn't include the other option, if you made the choice for them).

If you ask them if they need proveably-never-used features X, Y, and Z, they will vehemently insist they do. They will then complain that the final product confuses them with far too many features they don't need.

If you ask them how they want something to work, they will either A) Shrug their shoulders (then later complain you didn't listen to their input); B) lie to hide their own abusive behavior (then later complain that they can no longer get to their por - ahem - family photos); or C) Give a long, detailed explanation of what they (then ask what madman came up with how the final product works).

Should software 'just work', or are users too lazy?

Both. Software should do one task very, very well. If it doesn't try to manage photoalbums while doing your taxes and making coffee, it can perform its function well while not overwhelming the user with confusing options.

At the same time, users need to realize that computers have FAR more complexity of control than their car. In most states, to drive a car, you need to have reached a minimum age, pass certain tests of physical capability, take a six week training course and pass a written test on that material, and finally take an actual road test to prove you can handle a vehicle - And even after all that, you usually have only a probationary license until you've remained incident-free for a few years. Yet software should "just work"?

Where can I sign up to sue Chrysler over my car not automatically driving me to work (with an unannounced side trip to the grocery store) when I get in and turn on the wipers?

Something that works (1)

tcopeland (32225) | more than 7 years ago | (#17478866)

> While technically inclined individuals tend to want control,
> Platt argues, most people just want something that works.

And after "most people" have used a program for a certain amount of time, they'll also want control. That's part of programming - figuring out a way to make an app immediately accessible while still allowing advanced users to do what they need to do.

For the app I work on, indi [] , it should be easy to create a secure channel, but maybe it's a little harder to customize your profile stylesheet. But that's OK because most people won't be aware of what their profile contains until after they've used indi for a while and have created a couple of channels. Then they'll want their family channel profile to look different than their "project team" profile.

internals are exposed (1)

fermion (181285) | more than 7 years ago | (#17478868)

One big reason why software sucks is that the internal data structure is exposed at all levels. Rather than appropriately abstracting data at various levels, and proper interfaces developed, the original organization of the data drives the entire process. This means that either data must be organized to match real world expectations, or, more commonly, data is organized in a machine effecient manner and the user must adjust.

The most common examples of this are websites. Some websites are organized by the firms org chart. Most outside users do not care about the org chart. The just want to know a specific piece of information. Rather than abstracting the organization to the public needs, many firms expect the public to learn the org chart. Another example is those awful URL. If the URL was not exposed to the user, it would be ok. But they are.

Fundamentally, if developers separated the UI from the data, life would be much better.

um. (1)

MagicM (85041) | more than 7 years ago | (#17478874)

No, YOU suck!

Don't let programmers design software (1)

MisterSquiddy (905066) | more than 7 years ago | (#17478898)

If there's one thing worse than letting users design software it's letting programmers do it. Whilst users may not always know what they want, they have a damn sight better idea than code monkeys, many of whom seem to have a pathological hatred of those who might actually use and consequently criticise their product. Look at this way: you wouldn't ask a bricklayer or a plumber to design your house, would you?

Ok. Let's try this (1)

neimon (713907) | more than 7 years ago | (#17478920)

Computers are rational. People, largely, are not. Technologist creating products (whether it's a camera or a car or a program in a computer) MUST take into account their audience, just as a writer or a politician or a chef does. It's a craft. It requires actual work with actual people and a conscious effort not to despise them. If you can't do that, don't try, because...

1) People expect more than we can deliver
2) We don't manage that expectation well
3) We don't even bother to try because
4) We are rational people. That's why we're in computers.

Ordinary people aren't defective. They just don't think like you. Figure it out already. You'll be very, very surprised what happens when you show someone that you're a human being too and not some elitist.

Software is the most varied product out there (1)

xenocide2 (231786) | more than 7 years ago | (#17478954)

Yet another article comparing software with cars, claiming cars are so reliable and usable while his computer is not. He even uses cars as an analogy insight into programmers's minds. 15 percent of cars sold in the US have manual transmission, but how many among the 85 percent who bought an automatic would have claimed they prefer manual as well? Does the fact that most programmers are men influence the programmer's profession for "control" as represented by a manual transmission?

Additionally, cars aren't as fantastic as the author makes it sound: can anyone fix what's wrong with a car when the Engine light turns on, using only that knowledge? Cars are an old product. They have hundreds of similar features across models. Each year slight incremental changes are made, cupholders, a stronger or lighter part, a few more horsepower is added, etc. But by and large, when you design a new car, or put a huge redesign effort into an existing model, you have a frame of reference to start with. Writing software, on the other hand, usually involves creating a brand new product from scratch. When I write a calculator program, I don't view it as a new model of program, but a new kind of calculator implemented in software.

Every year more and more software comes out, attacking more complex domains. Ten years ago there was not multimedia web pages to bitch about. I'm not even sure why programmers are considered responsible for flash intro pages, but I'm pretty sure someone paid for it, and probably wanted it. If the customer wants their web page to have an introductory animation, it's a much harder argument to blame them on programmers.

A lot is being done about it (1)

Aminion (896851) | more than 7 years ago | (#17479000)

For any well run IT project, programmers don't directly have to do user related tasks. That is the job of the interaction designers, GUI designers, usability experts, etc. Seriously, why is the notation of programmers doing everything from analysis and design to documentation and coding still alive? IT projects ARE very complex and require experts from many disciplines in order to become successful.

not necessarily trying to be "cool" (1)

fred ugly (125371) | more than 7 years ago | (#17479036)

from TFA:
Starbucks Corp. incurred his wrath because the coffee shop chain required him to specify a search radius when he was trying to use its site find the nearest store.
"The Starbucks programmers probably think that having more control over the search is powerful and cool," he wrote. "But in reality it's a useless and annoying distraction. Nobody goes around asking, 'Is there a Starbucks within five miles? How about 10? 15?"'
As a programmer who has worked in GIS systems quite a bit, I can definitely say that restricting a search radius has nothing to do with being "cool." every 5 miles of search radius means about 80 mi^2 more area to search. that adds up pretty quickly... though i would contend that a better way to approach it is to automatically start with something small and allow the user to expand the radius if necessary.

Garbage In, Garbage Out (5, Informative)

flaming error (1041742) | more than 7 years ago | (#17479052)

I'm the lead software developer on critical carrier infrastructure software. I get vague market requirements, no spec, and despite repeated requests my company won't send me to customer sites to see how they use the software. Most input from the field is not forwarded to me. I deliver a product I'm reasonably proud of, but whether it's what customers want, I couldn't say. If it's not, don't blame me.

My perfect UI... (1)

Ingolfke (515826) | more than 7 years ago | (#17479102)

would taunt the user and tell them to RTFM, or if they want that feature to open up the source code and write it themselves.

mod d0wn (-1, Flamebait)

Anonymous Coward | more than 7 years ago | (#17479106)

saXnctions, and Hear you. Also, if and rAeports and successes with the

Different thought processes (1)

nuggz (69912) | more than 7 years ago | (#17479132)

He wants it to default to saving, but doesn't want to confirm to delete?

I see my car prompting to start like my computer prompting to create a new file.

I see prompting to delete a file like prompting to drive into a wall.

The problem is that most people don't care what they're doing, they just want to be done it without thinking.
Many technical people aren't like that, they want it to be done, but done their way.

The idea of automatically doing the default action doesn't make sense to me, but for many people they'd rather not have the choice and not think about it.

I'm quite annoyed that some FOSS projects have gone to the default with no option (aka dumbed down) UI, which is exactly what he's proposing.
The problem is many people still want at least a few of the extra features, even if they don't use the majority. The easiest solution is to give them everything, but hide most of the options unless they want them.

Software. Not currently Science or Engineering. (0)

Anonymous Coward | more than 7 years ago | (#17479138)

Software sucks because it is not Science or Engineering.

Current software development is not science, because most of the industry keeps development secret.
Companies A,B and C are all trying to solve the same problems, which may have already been solved by company D, 10 years ago. Yes, open source development can be an exception. A keep part of Science is peer-review and openness.

Most current software development, if engineering is unlike any other. Again, it comes down to openness.
It's hard to share tools and ideas if everything is incompatible by design.

Software sucks because there isn't enough Dialogue (1)

matchboy (519044) | more than 7 years ago | (#17479140)

This is an area of software development that I drool over. I'm so fascinated with all the variables that go into the success of a project. Beyond the technical aspects, the human to human problems that arise seem to be the biggest problem in software development. What's the problem? Oddly enough, I posted the following this article [] on my blog yesterday. I think something can be done about it. I believe it starts by seriously acknowledging that there is a problem.

Wendy's (1)

east coast (590680) | more than 7 years ago | (#17479142)

On the other hand, the article also cites David Thomas

He demanded more pickles and square burgers. He thinks this is the big problem with software today.

Oh, and a biggie Coke too... he's in favor of that.

What they want is psychics. (1)

140Mandak262Jamuna (970587) | more than 7 years ago | (#17479154)

Users want software to be psychic and do what they mean not what they say.

Programmers write robots that do what they say. There in lies the fundamental problem.

They say they want everything to be as simple as a toaster. But they also want their toasters to toast bagles, and control the browning and they sometimes toast twenty batches of toasts in a row, and sometimes only one single piece of bread and they want the toasting to be as fast as possible too. They would also like the toasters to make coffee and open the garage doors. But it all should be as simple as a toaster.

When I worked on applications for an airline... (1)

Richard Steiner (1585) | more than 7 years ago | (#17479176) was difficult to learn the ins and outs of our users (flight dispatchers and pilots) because their jobs were themselves quite technical, required specialized vocabulary, etc. But that's what our business analysts were for (to act as an interface between the end users and the software developers). Most of them were former dispatchers or pilots themselves, so they understood the user issues, and some had programming experience as well so they had some handle on technical issues.

Our design process was also collaboritive and iterative -- it involved users, BAs, and programmers, and it started with the basics and only got fancy after the basic requirements were met.

The end result was a fairly useful system which was designed with both the end users and the programmers in mind.

Too much disconnect (2, Insightful)

hobo sapiens (893427) | more than 7 years ago | (#17479180)

Software should just work. Of course, that is oversimplified.

Too many times a project goes like this: Customer places request. Project Mgr talks to client. Requirement Analyst turns request from PM into low level requirements. Programmer reads requirements document, writes program. User gets program and guess what? It's not what he wanted! So, he places another request, and we are back to square one. Sound familiar?

Users request crazy things. Sometimes, they ask for things to work around other problems. The person writing the software should know, not what the Requirements person thinks the user wants, but what the user is actually trying to accomplish and why they are trying to do this. What is the user trying to do? Then, the programmer should make a proposal and necessary parties should either agree or disagree. This means that some requirements people are out of work, this means that the programmer has to be smart and communicate well, and that he has to spend time talking to users. And therein lies the problem.

We have IT departments that are so fragmented and people in them are so specialized. Programmers often suck at talking to people (and this is a reason why Offshoring is so unproductive). Requirements analysts often have no concept of (programming) reality. Project Managers are MBAs who should be working in marketing. And don't even get me started on what unrealistic timelines to do software. Like the old adage goes, you can pick only two of the following: Good, Fast, Cheap.

The solution? Teach programmers to communicate! Requirements people should also be programmers. Maybe that's where you put the "programmers" who don't quite make the cut. Too many suits in IT, where there should only be geeks. Geeks who know how to communicate. Keep the suits in HR, Financial, Marketing, etc.

More software would "just work" if this approach were followed. One last thing: the user has to commit to a process. You cannot design an application if there are no business processes to code to. If there's a process clearly defined, there more communication, and no death march mandates, software won't suck.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account