Direction, approach, and iteration

You might have heard that “quantity = quality”. It’s true, but quantity helps with three different stages of the design process. If you want to make quality software, you need enough time in each of these stages.

Direction

Most problems can be solved in different ways. I call these “directions”. You should consider as many directions as you can. Otherwise, you might miss the best direction to take for the solution.

For example, imagine you work on a collaborative document tool. At the moment it only supports plain text. People want more control over text appearance. Two possible directions are “support markdown” and “add a text formatting toolbar”.

Here’s you at the centre of a circle. You’re surrounded by all of the directions you could take. Consider as many of these directions as you can.

Then, pick one.

Approach

Any given direction can be approached in more than one way. For example, you’ve decided to add the toolbar. Should it be above the text area? Or maybe it should appear directly above selected text?

You should consider as many of these approaches as you can.

Then, pick one.

Iteration

You probably won’t design a given approach perfectly the first time. You need to iterate on it as many times as you can. After that, you’ll feel more confident that it’s the best possible form of that approach.

Notes

There are a few things I want to make clear about this process.