Design Process

Here's a brief overview of my design process. It's by no means exhaustive and it's flexible, allowing a pragmatic approach to any problem.


Discovery is the ongoing process used to determine if and why a product or feature should be developed. It increases our chances of creating a products and features users need.

The best teams continuously use discovery to inform their business decicions. By speaking to users and stakeholders regularly we prevent wasted time and costs developing the wrong things.

...prevent wasted time and costs developing the wrong things.

Benjamin Walsh

Some key questions you'll want to know the answers to before starting any discovery work are:

And some activities that help us answer these questions might be:

Define the Problem

A well defined problem often contains its own solution, and that solution is usually quite obvious. By defining problems, you make them easier to solve, which means saving time and money.

Give me six hours to chop down a tree and I will spend the first four sharpening the axe.

Abraham Lincoln

I used a handful of ways to define problems. By writing problem statements and workshopping them with a team it's easy to turn them into actionable solutions.


Coming up with solutions can be hard, and there are many ways to spark creativity in teams. The best way of doing this is to use an inclusive and democratic process to workshop with teams.

Workshop at CodeComputerLove

We want our teams working together towards the same goals. A great way to do that is to create a sense of shared ownership of the work.

That's why I use a design sprint workshop to bring a group of people together to define problems, prioritise ideas and take action on solutions without discussion.

By dot voting on high impact and easiest solutions, teams have a real say on the direction of the product, increasing ownership and collaboration. And people at every level get a say, which reduces the "HiPPO" effect... "Highest Paid Persons Opinion".


A prototype is an early sample, model, or release of a product built to test a concept or process.

As with any design this starts off as a wireframe, and evolves into an interactive simulation of the product.

To build these I like to use Figma. And have in the past used Framer, and Invision.

Prototypes are often best designed in grey scale to allow everyone to focus on the content, and not get wrapped up in aesthetics.

Once a prototype works, iterating the finer details can begin, this will include things like.


Involve your users in this process by running usability testing sessions with the prototype. If it's not right, now is the best time to make the changes needed.

When we've fine tuned our prototype it's time to turn it into a functioning product. We need to make sure it solves the problem we defined outside of laboratory conditions.

To do this we can run usability testing as before and can also include shadowing.

If our testing solves the problem we've defined, then we get approval for our solution by analysing data.

In software, this would generally take the form of an A/B test to a controlled share of traffic.


When you've solved the problem, and backed that up with data and/or positive feedback from usability testing. You've done your job.

Your team should ship your solution and celebrate! 🎉