10 Commandments of Usability

by Dave on July 21, 2010

in Design

My former colleague and present friend, Andy Edmonds, deleted my ignorance of Jakob Nielsen’s “10 Commandments of Usability.” When striving toward a usable product, let’s consider:

  1. Visibility of system status
  2. Match between system and real world
  3. User control and freedom
  4. Consistency and standards
  5. Error prevention
  6. Recognition rather than recall
  7. Flexibility and efficiency of use
  8. Aesthetic and minimalist design
  9. Recovery from error (barring #5)
  10. Help and documentation

Immediately I started to think about how these usability heuristics apply to software development. As developers, we are in an unique situation. We make products for users, ideally very usable products. If we look a little deeper though, the stuff that makes the product for our users is itself a product. Our source code and development environment is a product.

Let me try that again: the technical components (source code, repository, CI config, tests) of the applications our end users consume is a product in its own right. Our code is a product for which we are the users.

In the next few posts I’ll detail how these usability heuristics apply to our development environments using a simple template. For each guideline I’ll cite an example in traditional user experience, followed by a relation to development environments. I’ll follow this with an example of how the heuristic applies to our code as a product.

Stay tuned…

{ 3 comments }

Enjoy The Doing

July 20, 2010

David Lynch is one of my favorite artists. I greatly appreciate his use of and consciousness around creative process. How so? In the documentary “Lynch,” he says: I never really knew that it was possible to be an artist in the modern world. I just never figured that you could do that. Forget being the [...]

Read the full article →

Configuration Come To Jesus

July 20, 2010

I have this niggling suspicion that you can observe the evolution of a developer by sampling their opinions about configuration over a three to five year period. Stay with me… In the beginning configuration seems like an awesome power. You can change the behavior of software at run time. You can put said power in [...]

Read the full article →

The Ideal Process

July 19, 2010

Individuals and interactions over processes and tools is an Agile value I believe in with a special fervor. Process is a servant to people. The right process is what makes a gestalt out of what was once a mere workgroup with product or project affinity. There is a significant and qualitative difference between (1) teams [...]

Read the full article →

Specification-Context

April 28, 2010

A mini-conversation just erupted in the VersionOne team room about how we do test first, BDD, what-have-you. A couple of the developers here made explicit the notion that they like to figure out the behavior (or observation) of the next design test they’re about to write, then figure out the context. I’m a fan of [...]

Read the full article →