From the ever-impressive newsletter by James Clear:
A 5-step process for nearly anything:
1) Explore widely. Find out what is possible.
2) Test cheaply. Run small, quick experiments. Sample things.
3) Edit ruthlessly. Focus on the best. Cut everything else.
4) Repeat what works. Don’t quit on a good idea.
5) Return to 1.
When I read the process, I went “WOW! That’s pretty how I do design consultancy, and pretty much how I try to make my products!
In design thinking and product design:
1) Explore widely - we always start the project by divergent discovery research, through generating empathy of our users. What do users need? What painpoints do they face that our product doesn’t address? Where are our blindspots? Then we synthesize these learning and brainstorm new ideas and solutions to address these needs.
2) Test cheaply - we test cheaply by doing quick and dirty prototyping of the ideas from step 1. Quick and dirty because at this point nobody can be sure if your idea works. So finding ways to test cheaply helps mitigate risk, and prevents the scenario where you committed months of hard work only to be ignored by your users.
3) Edit ruthlessly - after all the divergence of step 1 and 2, we learned what our users truly need, and then start to converge and narrow down our options/features, and make decisions about what minimum viable product (or minimum lovable experience) to launch.
4) and 5) Repeat what works - iterating in cycles is exactly how designers do it. Or more like a spiral, where we spiral in onto an increasingly better product. There’s a saying in the industry, that the product is never finished; it’s always a work-in-progress.
The best litmus test for whether this 5-step process really works on anything is to try it on something new. How about learning coding and debugging?
1) Explore widely - research widely on Stack Overflow and other forums. Read the docs, blog posts, Youtube videos. First learn how people describe the problem, and then use the same words to zoom in on the solutions.
2) Test cheaply - try various solutions and if you get stuck, move on to the next. Learn fast, fail fast to succeed sooner.
3) Edit ruthlessly - cut away the lame solutions and focus on what’s most promising, and dive deep into the fundamentals of the code.
4) Repeat what works - try small fixes, and build little successes on top one another instead of making many changes in one go. Deploy small fixes as you go so that you fix small changes in production rather than big ones.
5) Return to 1 - if despite it still fails, go back to step 1 and explore widely again - you might have missed out something crucial.
Pretty legit right? Must try this process out on more things in work and life!