I think the reason I like Jakob Nielsen's online posts so much, and always seem to get something from them, is the way he alternates concrete observational detail with top-level principles, so that you learn to see in a different way: you learn to look at websites and software interfaces as he does, through the lens of usability design.
His latest post, though starting off with detailed discussion of the winning applications in some recent awards for user interface design, rapidly moves into some refreshing ideas on what we should be striving for in systems design.
"Software's real goal should not be to simply process transactions in a system where users are nothing more than data operators who click required buttons to make things happen. Rather, software should work to augment human capabilities, helping us to overcome weaknesses and emphasize our strengths. "
It sounds obvious. Yet the temptation for software designers, who tend to be more interested in data processing that the intended users, is to design the kind of interfaces they would like themselves. As Alan Cooper observed (2004, pp 93-94), there are two kinds of people: those who on entering an aeroplane would turn left into the cockpit if they could and those who'd prefer to turn right into the cabin; in other words, those who are prepared to tolerate complexity if it gives them control and those who are prepared to tolerate absence of control if it gives them simplicity. Most IT people, including most interface designers, are of the first kind; most users are of the second. As Nielsen says:
"We want to empower users to be creative and accomplish advanced things with our software. But we should also recognize that users sometimes just want to get their tasks done without having to explore numerous options and new ideas. ...To speed users through infrequent or complicated tasks, it's often good to present a linear workflow with minimal disruptions or alternatives. Yes, the lack of flexibility can feel constraining, but it can be faster to just power through all the steps instead of having to ponder which steps are needed. Also, the cost of too much freedom is that users have to decide the order of the steps — something that they're often happy enough to delegate to the computer. "
The temptation for software designers to complexify the interface is compounded by the temptation for teachers to complexify the learning options for our learners. There are so many things we want them to do, or to be able to do, or which we think they might want to do, and we're so worried about whether we've provided enough that we pile resource upon resource upon resource, and we're so worried about whether they'll find them that we put them all at the top level of the interface, until the learner is faced with something as complicated and intimidating as an aeroplane cockpit.
What we need to remember is that most learners, most of the time, are not interested in the technical system or even (though we hate to admit it!) in the learning process. They just want to get on and do the next thing. The trick for us is to create an interface which will let them do that with minimum fuss, and yet provide them with the power to go deeper and do more when the occasion arises.
Reference: Alan Cooper (2004), The Inmates are Running the Asylum: Why High-Tech Products Drive us Crazy and How to Restore the Sanity, 2nd edn (Sams Publishing)