These days, I'm a lot better known for my writing on agile processes and management than for anything I ever tried to do in user interface design. In my book, I apply something called The Theory of Constraints to software engineering. TOC as it gets called is really very simple. Just 5 focusing steps.
- Identify what constrains a process - its bottleneck
- Protect the constraint to maximize the throughput at the bottleneck
- Subordinate all else to the decision to protect the constraint
- Elevate the constraint
- Do not let inertia stop you from repeating from Step 1 by finding the next constraint.
So how is this relevant to UI design, usability and interaction? Good question. First a digression...
Jakob Nielsen has followed up with his latest guidelines on link color for optimal web usability. Somewhat surprising some of the web design community actually feel he is adding value. This funny and educational piece from Design By Fire gives it the thumbs up but suggests that it is time for a makeover at Jakob's own site. So they assemble their own fab five with a design eye for the usability guy.
Didier suggests that Jakob's site is ssssoooo 1996. However, those of us who remember useit.com back in 1996 will tell you it wasn't nearly as cute looking in those days. The current design dates from about 2000 but I'm sure Jakob could tell us more precisely. We have to remember the raison d'etre for Jakob's design (lets be charitable on this). He was primarily preaching that page load time was the key to usability. Long load times turned people away and as his client base was e-commerce web sites, that meant lost sales. So the message was keep it simple, keep it under 100K per page and keep it fast. Keep those clicks coming. It would be fair to say that Jakob was arguing that bandwidth was the primary constraint to usability. Notice that this is step 1 of our 5 step process.
So if we have identified a constraint what do we do next - we protect the constraint. How do we do that? We keep page sizes under 100K and smaller if possible. What next? We subordinate all else to the decision in step 2. That means you can forget those nice graphics and complex table layouts.
But then we get to step 4 - elevate the constraint. And there have been a few threads running there. The web development community has not been idle. Nowadays we have standards which reduce markup size and use CSS for layout [uidesign.net isn't up with the times yet, is it? Ed.]. But the real elevation came with the adoption of low cost broadband. In most developed countries adoption is around 50% already and dial-up connections are faster than they used to be for many people. The bottom line here - bandwidth is no longer the constraint!
What that means is that all bets are off. All the rules and guidelines, all the policies designed to protect the constraint and subordinate all else to the decision, are history. We need new rules which identify the new constraint.
So the question is, from a usability perspective are we letting inertia stop us from going and searching for the real new issues which constrain web sites from achieving their goal, or are we moving on, forgetting the last war, and actively out looking for that new constraint and seeking to write the new rules for a world where broadband is ubiquitous?