On my last project, I kept run into problem after problem.

It felt like fighting a hydra, I'd chop off one head and two others would appear.

I was building a time zone converter app, or trying to anyways.

To get out of this rut and move forwards, I had to focus on the key development principles:

  • Be clear about your goals. They let you know how you can simplify your vision. Once you achieve them, there’s no shame in not completing the rest of the planned work
  • Cut scope ruthlessly. Be realistic about how long you’ll work on the project and don’t let the scope exceed that
  • Minimize how much you have to learn. Lessons will come anyways, minimize the additional things you’ll have to learn as part of cutting scope.
  • Focus on the user. Keep your target audience in mind, as well as their possible failings. What will it take to give them a great experience?
  • You don’t have make everyone happy. If you can give one half of people a great experience and the other half nothing, that’s usually better than giving everyone a mediocre experience.

You can read exactly how I applied those principles to slay that Hydra in How I started finishing more side projects

Your nuggets for the week

Today's nuggets are about how problem solving, all taken from my current favorite book The Art of Doing Science and Engineering.

Honestly, this book is so densely packed with insights that I can only read a few pages at a time, otherwise I'll forget most of what I read.

The nuggets:

  1. Enlist your subconscious to also think about your problems
  2. We learn best via analogy, so optimize for it
  3. Ask around to identify important problems

#1 Leverage your subconscious

Spend more time thinking about a problem by getting your subconscious mind to also think about it. This will happen if you force yourself to only think about one key problem for a period of hours, days, or weeks.

Don't let other problems enter your head (you can write down extraneous thoughts to leverage the Zeigarnik effect to keep them out). Eventually your subconscious will add it's own CPU cycles to working on your problem

#2 Optimize for learning via analogy

Most learning happens in the context of what you already know. Whenever you pick up a new topic, you'll understand it much more thoroughly if you can see how it's similar to an idea you already understand.

If you're familiar with mental models, this is the same concept taken to a more generalized level.

#3 Finding the important problems

It's hard to do impactful work if you don't know which work is really important. And the important stuff isn't always obvious.

How do you find it?

Just ask. Ask your teammates what they think is important, ask your boss the same question, ask coworkers in other departments what they think are the most important problems their teams face.

Each time you ask this question, you're sifting for gold.

Eventually you'll find something really worth solving.

Your Turn 👊

I'm certainly not perfect at applying the above principles, but it's a work in progress and I keep trying

Which of the above did you find most applicable to your own life?

Reply back and let me know.  The repetition will increase your chances of remembering the concept, and it'll help me understand what you all find most valuable 🙂