Users, that’s who. They just don’t realise it until the computer gets in the way of them doing what they want.
I’ve been ranting for years about usability, task-centered design, blah, blah. I know just how hard it is to get right too. But both FLOSS and proprietary software are generally abysmal at this sort of thing.
Nat seems to be catching on to what usability is really all about:
“It was interesting to watch this video and instantly realize that the ‘Send / Receive’ button is all about how Evolution works and not about what the user wants to do. I’ve been staring at that button for five years, and never realized it was wrong until I saw that video.”
So I just hope more people make this intellectual leap. Everywhere, you see examples of the inside-out design, where the implementation is exposed - warts and all! - all the way up to the interface. This is one of the most pervasive errors in design, and it is only getting worse, with more features crammed into every new release.
Imagine: you are designing a VCR remote control. Does the user really care that it is reading an analog signal from a helical scan magnetic head, with the tape running at 2.1cm/sec? Do you have a separate button to engage the heads? A dial to adjust the variable speed motor? Another dial to adjust the helical rotation speed to match the tape? Do the users really care how it works inside? Do they need to know in order to use the player?
Or do they just want to “watch the movie”?