Design Principles at Microsoft

by March 27, 2009

In my foreword to Bill Scott and Theresa Neil’s great book, Designing Web Interfaces, I outlined the role of design principles in the software development process:

“Design principles are the guiding light for any software application. They define and communicate the key characteristics of the product to a wide variety of stakeholders including clients, colleagues, and team members. Design principles articulate the fundamental goals that all decisions can be measured against and thereby keep the pieces of a project moving toward an integrated whole.”

I also detailed the need for design principles to help teams make informed decisions in my recent Parti & The Design Sandwich presentation. So naturally, I was excited to find several examples of design principles in use at Microsoft.

While Microsoft itself admits to design challenges in some of their products, the places where I saw design principles in use produced some pretty interesting product designs. In particular: Windows 7 Desktop, Office 2007, and Microsoft Surface.

For the Windows 7 desktop design, Stephan Hoefnagel showed the following principles in action:

  1. Reduce concepts to increase confidence
  2. Small things matter, good and bad
  3. Solve distractions, not discoverability
  4. Time matters, build for people on the go
  5. Value the full lifecycle of the experience
  6. Be great at “look” and “do”

For the Microsoft Office 2007 redesign, Jensen Harris illustrated how these “design tenants” helped the team make effective decisions:

  1. A person’s focus should be on their content, not on the UI. Help people work without interference.
  2. Reduce the number of choices presented at any given time.
  3. Increase efficiency.
  4. Embrace consistency, but not homogeneity.
  5. Give features a permanent home. Prefer consistent-location UI over “smart” UI.
  6. Straightforward is better than clever.

For Microsoft Surface, Joseph Fletcher mentioned how a set of principles for Natural User Interfaces (NUIs) and “super principles” for Microsoft Surface helped the team design.

Natural User Interfaces should be:

  • Evocative: Principle of Performance Aesthetics
  • Unmediated: Principle of Direct Manipulation
  • Fast Few: Principles of Scaffolding
  • Contextual: Principle of Contextual Environments
  • Intuition: Principle of Super Real

Microsoft Surface should be:

  • Social: multiple simultaneous users
  • Seamless: digital & physical combined
  • Spatial: kinesiology

If you have other examples of using design principles to help shepherd a software development project toward a holistic design- let me know.