Hammock-Driven Development Notes

Occasionally you will find a video or talk that connects or resonates with you in a great way. Rich Hickey’s “Hammock Driven Development”, a self-described “rant” is packed with wisdom. I keep coming back to re-watch and today, I have written down some key points from this amazing rant!

Key Ideas

Take more time to think through your problem.

When was the last time you…

thought about some for a whole day?

thought about something for a whole month or year?

Hammock Driven Development, https://www.youtube.com/watch?v=f84n5oFoZBc

On Bugs

  • Bugs are cheaper to fix in development.
  • Least expensive to avoid in design
  • Most expensive in to fix in production

Analysis & Design, Simplified

  • Identify problem trying to solve.
  • Assess whether it solves that problem.

On Problem Solving

Problem Solving (cont.)

  • State the problem out loud.
  • Understand the problem’s facts, context and constraints.
  • What don’t you know?
  • Find problems in your solution.
  • Write it all down.

More Input, Better Output

  • Read in and around your space.
  • Look critically at other solutions.
  • You can’t connect things you don’t know about.

On Focus

  • On the hammock, no one knows if you’re sleeping and they don’t bother you because of this.
  • Computers are distracting.
  • Let loved ones know you are going to be “gone”, focusing deeply for some time.

Waking Mind vs Background Mind

  • The waking mind is good at critical thinking.
  • Use waking time to assign tasks to background mind.
  • The background mind is good at making connections and good at strategy.

Sleep According to Scientific American:

  • The brain processes info learned while sleeping.
  • Sleep makes memories stonger and weeds out irrelevant details.
  • Our brain finds hidden relations among memories to solve waking problems.

Closing Ideas

Write the proposed solution down. Hammock time is important “mind’s eye time”. We switch from “input mode” to “recall mode” during hammock time. Wait overnight, or sometimes months, to think about your problem, sleep sober for best results! Eventually coding is required, and your feedback loop is important, but “don’t lean on it too much”. You will be wrong, facts and requirements will change. Mistakes happen. That’s fine, do not be afraid of being wrong. /rant

The notes in this blog post are paraphrased from this rant.