10 helpful rules for designing software

November 20, 2022

Listed below are some 'rules' I believe to be helpful when designing digital products. Some might seem obvious (1, 3, 4, and 5 for example), but I've been around long enough to know a good many designers and product teams don't do these things. Hell, I don't always do these things! But I try.

Some of the points are specific to design, while others relate to communication within a team.

  1. Spend the bulk of your time understanding the problem. Solutions will often come easily if you invest time up front.
  2. Favour the lightest weight solution that solves the core of the problem, then iterate once real world data becomes available.
  3. Measure what you build.
  4. Don't reinvent the wheel. Leverage existing patterns and components whenever possible.
  5. Form follows function. While aesthetics are important, don't get distracted by pretty things at the expense of usability or other product opportunities.
  6. Always consider subtraction as a design solution. Our default mode is additive... we make progress through growing things. But additive design has a cost. It fuels complexity over time, making your product increasingly hard to reason about. Sometimes the best solution is taking something away or not doing it all!
  7. Talk with product team colleagues early and often. Use visuals to communicate and never assume alignment in understanding.
  8. Whenever possible, feel the customer's pain first hand. If you don't use the product often, in a realistic way, you will struggle to grok their complaints, identify points of friction, or sniff out opportunities. 
  9. Communicate only what is necessary for your audience. Be merciless in your editing.
  10. Bias for Action. Doing something, even the wrong thing, is often better than endless debate and equivocation. The best way to make progress is to Do Something.