---
date: 2025-03-03T09:19:07-07:00
description: "I learned the importance of taking time away from the computer in software development"
lastmod: 2025-03-03T09:19:07-07:00
showTableOfContents: true
type: "tils"
title: "TIL: Hammock Driven Development"
image: "images/hammock.jpg"
alt: "hammock with a cat"
tags: ["clojure", "practices", "rich hickey"]
---

# Context

I started learning Clojure recently with the [Clojure for the Brave](https://www.braveclojure.com/) book, and found online a mention of [Rich Hickey's Greatest Hits](https://changelog.com/posts/rich-hickeys-greatest-hits).
Curious, I listened to his [Hammock Driven Development](https://www.youtube.com/watch?v=f84n5oFoZBc) talk and had my mind changed about planning in software.

In essence, hammock driven development emphasizes thinking through the problem, uninterrupted and consistently, thus creating agenda notes for our background mind to mull over the problem.

Done correctly, you experience what Rich Hickey describes as a "delicious cake"[^1] of a solution.

[^1]: Quote from [his talk](https://www.youtube.com/watch?v=f84n5oFoZBc)

# Reflection

I think in the 90's / early 2000's the sun started to set on the big boom of software planning, epitomized in the [waterfall methodology](https://en.wikipedia.org/wiki/Waterfall_model).
But in my opinion, we may have thrown the baby out with the bath water here. I may be too Primegen-pilled, but I've shared his opinion that the best way to learn is to charge forward, 
spewing out code, breaking things, only dipping my toes into docs long enough to cobble together what I need. Then, once I understand the problem space, I can really start to design my
software for the space.