I’ve read a number of posts in the past 2 weeks about simplicity. Each post beleaguers the point of how things should be kept simple with a warning to those who make interfaces (in its most general meaning) too complex.
Let me keep this one short (ha!) and just skip to the rant: Complex is not the same as Complicated. Sure, they both share that oft-used prefix of “with,” but they really are two different words. Really! Look at the letters after Com… different!
Do not fear, avoid, or deride a complex system for the sake of its complexity. Humans are actually pretty good at working within complex systems once they get used to them. Knowing this, you can iterate your way from a simple system to a complex system over time.
A hallmark of complex systems is purpose. Purpose that can be supported by need. Basically, a function of the system doesn’t exist unless it is needed. This presents itself in a variety of designy good ways from progressive disclosure to building systems with one purpose and over time adding more… uh… purposes (on purpose of course).
A function doesn’t get into the system because one person wants it. A function doesn’t get into the system because a developer or designer or usabilityer thinks it would be cool. That’s how you get things Complicated.
Build systems that serve needs. Strike that: build a simple system that serves a need. Collect those into a group, perhaps some sort of complex. Allow the systems to work together or independently. It isn’t that easy to build it, but I don’t think it’s the building that’s the problem… it’s the managing.
My point, if you can believe I have one, is that it’s all well and good to talk about simplicity just make sure you communicate what you mean by it. You can have an interface with lots of bells and whistles, but if it’s easy to interact with each bell and all those whistles are intuitive then you likely don’t have a complicated interface, just a complex one.