As I prepare my upcoming talk for the Silicon Valley Code Camp on “Fundamentals of Good UI Design”, I keep returning to a piece of feedback I’ve received in the past for my popular talk: “Enough with the theory, just please give us the rules!”
By and large my audience’s reaction (mostly coders and managers–all non-designers) has been very positive and receptive, with lotsa great questions and fun debates thereafter. But my mind returns to that specific point with some crestfallen hopes. It should be clear to anyone in software that there are no rules, recipes, or formulas for good design. Crafting an amazing UI design that permeates multiple devices and contexts, while enabling utility, joy, and profits is nothing like ticking a checklist or baking a cake. And even then, isn’t it almost always true that your cake doesn’t taste exactly as your mom’s (or Martha Stewart’s)? :-) There is a certain “x-factor quality” via one’s expertise, intuition, talent…and in design, this is manifested through deep team collaboration.
Now, of course, there are general UI guidelines and visual standards (for example, the Apple Human Interface Guidelines (HIG)) and UCD best practices derived from real case studies, as well as UI pattern libraries cataloging the various ways to, say, enter a calendar date. All of which is great fodder for product teams!
But none of these can or should be taken as precriptive rules on “how to design” a software interface. There is always variance, which requires sound judgment and takes time to evolve, and reflect upon. The awesome diversity of situations, users, roles, features, contexts, business drivers, and technologies, makes a compact rulebook for design virtually impossible. Even declaring “Never use Comic Sans” can’t be a rule, because, no matter how unimaginable, there might be a tiny excruciating case where using this font may work (abhorrent as it may be! :-) Flat-out copying (imitation) isn’t sufficient either, to create a set of pseudo-rules based upon “the other kids are doing it”. Just because Facebook or Apple (to name some hugely popular hi-tech firms) does something doesn’t mean you should too. Of course, they’re fine as starting points to get wheels turning, begin exploratory sketches, etc.
A design problem is like a massively multivariable calculus problem, all the social / technical / visual considerations that go in, and how they change per situation: a mobile app for a pizza company, a heart monitor for a local clinic, a tax optimization app for the accountant, etc. You can surely apply contours of a “user-centered design” process, but that must flex per project or team too. Being able to maneuver the variables accordingly is key; and the guidance should come from principles and values and goals, from all key stakeholders.
Dieter Rams’ succinctly wise 10 Principles for Good Design does read like a series of absolute commandments; yet they are principles for guidance of a designer’s intentions and behaviors. They don’t tell you where to stick an icon or what button size to use. Nor should do they. The point of design, as a problem-solving activity, is the arbitration, the dialogue, the mediation of conflicting priorities to arrive at a balanced choreography of visual / technical / profitable elements. In doing so, it yields discoveries and understandings that should lead to a better product and user experience overall. And that, quite simply, takes years of practice, honing your judgment, learning lessons, deciphering successes & failures, and developing a viable point of view. It takes exposure, training, repetition, imitation, to shape that sensitivity, or knack, for design problems and solutions.
But what are those areas of practice, the core elements that comprise a good software design? Now that we can itemize! Areas of communication & interaction: layouts & grids, typography, color, iconography, behaviors, patterns, metaphors/models, and usability heuristics, to name a few… (Dan Saffer’s book on Interaction Design is excellent in summarizing the core areas). And the fine art of design synthesis, making those “creative leaps”, after thorough logical analysis, that includes many methods. Jon Kolko has an excellent short book summarizing this point. And you just gotta practice, practice, practice, studying what has succeeded and failed. Iteration and feedback are vital.
So, there are no rules or recipes for good design. Sorry! There are general practices, principles, guidelines, patterns, and of course teachings from legends like Paul Rand, Dieter Rams, Charles Eames, borrowing across contexts and time periods. You study and practice, with a good faith commitment. And of course, expressing the rationale for design decisions, from these sources is key. For me (and what I try to impart to others), that’s what makes design such a rich and wonderful field of investigation and invention. The day design (interface, product, fashion, furniture, etc.) is reduced to a set of rules is the day I leave this field, for that is the day design has lost its potential for constant evolution and change. The ability to learn about design through practice, iteration, imitation, and innovation is the source of joy design grants me, and hopefully to others who truly aspire to create good design.