Solving Problems

September 14, 2015

These are my notes on Rich Hickey's Talk "Hammock Driven Development". It distills his experience in the methodology of coding/problem solving and even psychology.


  1. State the problem. What are you solving with this software?
  2. Understand the problem.
    • what do you know?
      • facts
      • context
      • constraints
    • what do you not know?
    • are there related problems?
      • number one way to get up to speed with current progress.
    • write it all down
  3. Be discerning
    • not everything is awesome.
    • find problems in your own solutions.
      • solve those too
    • look for tradeoffs
    • write down your questions. Things you know you don't know.
      • there should be question marks
  4. Look around
    • read about and around your space.
    • other people around trying to do the same thing.
    • be extremely critical at other solutions.
  5. Tradeoffs
    • need two or more possible solutions to say it's a tradeoff
    • write them down.
  6. Focus
    • on a hammock, nobody knows you're not sleeping.
    • computer is prime source of distraction.
    • you can't do everything. emails will be not responded to.
    • let loved ones know you will be "gone".

Waking Mind

  • good at critical thinking
    • analysis
    • tactics
  • finds local maxima
  • use waking time to feed work to background mind.
    • and to analyze its products
Background Mind
  • good at making connections
    • syntehsis
    • strategy
    • abstracts, analogizes
  • solves most non-trivial problems
Sleep makes memories stronger, and you remember the most important parts.Finds hidden relations among memories. Make it an agenda item for their background mind.

Can only focus on 7+/-2 things. write down proposed solutions, with pictures.

Work on multiple things at once. Capture the results of your background processes.

Usually code is small. You gain confidence during implementation.

You will be wrong, and you will think of better ideas. Also, the facts change. The requirements, too.

Don't be afraid to be wrong.

Tags: Mindset