Here’s how to design a new product or feature:

  1. Make time to talk to and observe the people who are your current or intended customers.

In the best cases you can gather up a few users and just ask them what they want. Most users have some idea about what they want, and can give you a lot of ideas. Their needs are often unrealistic, or they’ll try to explain an implementation or that they need a faster horse. When gathering these details the thing to look for is workflows. When they talk about how they use it, or what kind of projects they are doing, consider what the end goal is and avoid reaching for whatever tech tool is closest. Ask what they are trying to do?

  1. Review what you’ve heard. Think through the use cases and brainstorm functional designs.

The functional design is about what the software will do and not how. For developers this is nearly impossible since we are so steeped in the technical details. In this phase you have to consider the software as a black box and think about only the results. What’s the best way for their workflows to be enabled or improved?

  1. Write a technical design doc.

Now that you’ve got a design in mind, we get to do the part developers love. Come up with a technical specification for how it will work. At this point, because you started with the customer request in mind, the technical design could be embarassingly simple, or completely unworkably complex. What it probably won’t be is the first thing you thought of before you started.

Now if you’re wondering how many poorly designed features get implemented, just do these steps in reverse:

  1. Start with a technical idea.

Perhaps one of your vendors just released a new feature. See if you can cram it into something. Or just add the feature. Or if there’s a cool new pattern or way of handling scaling you heard of at a convention, try to use that. Or you can opt for rewriting in a way that makes it easier for you personally.

  1. Once the tech is settled, try to fit it into a use case.

Since the UX didn’t really get considered, the new tech or feature can be added in whatever way is easiest for the developing team. Most of those maddening menus in places you didn’t expect, or settings hidden behind multiple pages come from this. If the design is technically focused instead of user focused, this is often the result.

  1. See if your customers like it.

The implementation is done, now it’s time to ship it. Hope that the customers like it.