Properly designed software shouldn’t need any instructions let alone require a training on how to use it. Designing software properly is actually a hard problem. We are getting better at it slowly.
Nintendo is the leader of the pack when it comes to designing software in such a way that it needs no instructions. I have had a Nintendo DS for a couple of months and am amazed at how excellent some of the Nintendo titles are. I consider a game like WarioWare: Touched! to be a work of art. The amount of creativity and wackiness that is encompassed in these mini games in unrivalled.
Watching the video you will have noticed the complex manoeuvres that Mario does. He swims (on a turtle-jet of course), he walks on a ball, jumps of walls, rides a stingray, makes back flips, does double jumps, flies like a bee, etc. As a user you do all these moves with nothing more than the joystick and a single button. You don’t have to read a manual to start playing.
What design principles make this possible? In Mario Galaxy I noticed the following five:
- Progressive revelation. The game starts simple. All the levels only require a very basic mastery of the controls. As the game progresses you will need to learn more and more controls.
- Just in time delivery of an explanation. The game doesn’t teach you all the moves in one go (through some sort of tutorial). Instead it will have a pleasant little creature who will be there to explain a skill right when you need it. These creatures are very unobtrusive (unlike Clippy) and are only there when you need them.
- A safe environment to practise. The first time you need to learn the new skill you will be in an environment without any adversaries and without any time pressure. This way you can focus on what you need to learn.
- An obstacle. You will only be able to finish the level if you learn the new skills. This way the game ensures you will be able to progress later on and will not get frustrated.
- Repetition with variety (sometimes getting gradually harder). Doing a particular jump once could have been an accident. The levels are designed in such a way that you will need to show your mastery of the skill multiple times.
It will not be easy to design all software according to these principles. A program like AutoCAD doesn’t have a quest or levels and is arguably much more complex than a Mario game. Even though it is hard, it is possible to radically change the interface of these programs and enable people to be productive without much training on how to use the program. Instead you could spend more time focusing on how to be creative with the software. Take a look at Google SketchUp as an example:
For learning events it is much easier to take these principles into account in your design. We are currently probably pretty good at progressive revelation, at repetition and maybe at building in obstacles. We do not focus enough on delivering just in time and on providing a safe environment for our learners.
Please be inspired by Nintendo!