Hammock driven development
You’ve heard of TDD, and more recently also SDD (spec driven development)… but have you heard of HDD — aka Hammock driven development?
I recently came across a video gifted to me by the YouTube algorithmic gods with a catchy enough title that sounded more like a “honest bait” than a clickbait, it was titled: “Hammock driven development”, talking about an alternate approach to software development. I’ve currently been thinking a lot about various new processes that could improve software development, and this lecture from Rich Hickey from 13 years ago seems like one of those older ideas that need a new revival story. Especially now.
So I jumped right in.
I try here to write in my own words what I understood from the lecture and not refer to any of the supporting transcripts or Youtube timestamps (it’s now ‘fresh’ in my mind and want to make use of this moment in time)
We have two types of minds: the waking mind, and the background mind. Historically we’re quite used to the system 1 and system 2 framing by Daniel Kahnemann, but this is far more encompassing than I’d expected, the background mind here, the OP refers to being generally good at strategic, holistic thinking.
You would normally want to leverage such strategic tasks for the background mind. Not that the waking mind doesn’t do strategy, but it’s more focussed on the input <> output processing. And as such its results are much more strategic and immediate output oriented. The OP then suggests to leverage this partisanship to our interests.
While writing code, we are thinking through problems and we should first know how to draft a problem, and this could be in terms of scope, constraints, framing etc, we need to get that right first, and then when we have to start solving problems, at times we might encounter harder problems which were not used to encountering before (not the usual fetch from a dB and display it on the CRUD UI types).
When this happens, we then need to think and segregate such problems into the known types which can be easily done by the ‘waking mind’, and the harder subset which needs to be delegated to the background mind. The background mind works in interesting ways, you would not know in advance what the solution might be, you just need to assign it to this background mind and see what the ‘eye of the mind’ unravels.
But you will get there nevertheless, and to let this slow burn process happen without any stress it needs. In fact stress environments make you go into the ‘waking mind’ mode, and you would not be able to do the slow burn. That’s also one of the reasons why this should be done through a shower thought.
OP also recommends Michael Poyalyi’s How to solve problems book as it gives a much more mathematical rigour to the varied approaches to solve problems. There is another book I was able to find on the YT comments called ‘How to solve with computer’ that gives an algorithmic perspective to solve problems. This is another one on my Umberto Eco’s antilibrary style to-read list.
This time when I listened to the lecture, it hit me in a different way especially since I’ve also been fascinated about the AFK (away from keyboard) and HITL (human in the loop) segregation of work by Matt Pocock, an AI tutor who recently shared this in his talk at the AI engineers forum.
The AFK mode is usually for known solved problems, it’s similar to the waking mind for the agents, where they could run autonomously and completely solve the problem/s without causing much tech debt.
The HITL mode is usually for problems that require a feedback-loop type dynamic with humans to provide the right inputs for it to solve the problems better. This works well for human guidance aided by the right ontology. In the HITL mode, for example in case of 1 and 2:
1:
“I have a deep pimple only on my chin is it more likely from diet or hormones”
2:
“sudden cystic acne isolated to chin, is the more likely etiology hormonal fluctuation or pro-inflammatory gut disruption from dietary changes?
Both 1 and 2 are effectively the same question but 2 provides you vastly different (and better) responses. There is also a Harvard AI safety study which talks about this method, where changing ontology provides different responses.
And for AFK mode, you might not even need such thoroughly grounded ontology. It gets the aim, the objective and the steering right in one go.
Now coming back to the original topic by OP about the waking mind and background mind, and also finding similar analogies in the agentic coding world with the AFK and HITL types, I do think there is a bigger set of problem space where despite the best of agentic coding modes, both HITL and AFK, you would need to consciously use your background mind, for days, weeks or months to probably crack the code.
This process might take days, or months. A question I have for the reader here is how rare or common has it been for you to be in this background mind mode trying to solve a hard problem? Me, personally, it’s been quite rare. It’s such a terrific experience to be in this mode of problem solving, where you don’t want to be disturbed, and neither do you should be in front of the computer.
You should be lazying around, doing random chores, or as the OP suggests, if you do have a hammock in your background, then that’s all you need.
Subscribe to get future posts via email (or grab the RSS feed). 2-3 ideas every month across design and tech
Read more
- Hammock driven developmentagentic-coding
- Peculiar ways number three fits into our funny little brains
- AI sandwich as a defacto principle for anything agentic engineering relatedagentic-coding
- How I write essays in 2026writing
- Authority in the guise of evidencecritical-rationalism
- Map is not the territoryphilosophy
- Self hypnosis as a manifestation ritualmeditation
- Hegelian dialectic for structured reasoning with AI agentsphilosophy
- How I prepare for tough negotiations nowadaysnegotiation
- When should we steelthread somethingproduct-development
- How to become a polyglot
- Breadboarding, shaping, slicing, and steelthreading solutions with AI agentsproduct-management
- Healthy conflict in teams have a tipping point
- Deslopify AI writing
- How I started building softwares with AI agents being non technicalagentic-coding
- Read raw transcriptsknowledge
- Legible and illegible tasks in organisationsproduct
- L2 Fat marker sketchesdesign
- Writing as moats for humanswriting
- Beauty of second degree probesdecision-making
- Boundary objects as the new prototypesprototyping
- One way door decisionsproduct
- Finished softwares should existproduct
- How I periodically rank my rough draftsobsidian
- Flipping questions on its headinterviewing
- Vibe writing maximswriting
- How I blog with Obsidian, Cloudflare, AstroJS, Githubwriting
- How I build greenfield apps with AI-assisted codingai-coding
- We have been scammed by the Gaussian distribution clubmathematics
- Classify incentive problems into stag hunts, and prisoners dilemmasgame-theory
- I was wrong about optimal stoppingmathematics
- Thinking like a ship
- Hyperpersonalised N=1 learningeducation
- New mediums for humans to complement superintelligenceai-coding
- Maxims for AI assisted codingai-coding
- Personal Website Starter Kitai-coding
- Virtual bookshelvesaesthetics
- It's computational everythingtrends
- Public gardens, secret routesdigital-garden
- Git way of learning to codeai-coding
- Kaomoji generatorsoftware
- Copy, Paste and Citeai-coding
- Style Transfer in AI writingai-coding
- Understanding codebases without using codeai-coding
- Vibe coding with Cursorai-coding
- Virtuoso Guide for Personal Memory Systemsmemory
- Writing in Future Pastwriting
- Publish Originally, Syndicate Elsewhereblogging
- Poetic License of Designdesign
- Idea in the shower, testing before breakfastsoftware
- Technology and regulation have a dance of ice and firetechnology
- How I ship "stuff"software
- Writing is thinkingwriting
- Song of Shapes, Words and Pathscreativity
- How do we absorb ideas better?knowledge
- Read writers who operatewriting
- Brew your ideas lazilyideas
- Trees, Branches, Twigs and Leaves — Mental Models for Writingwriting
- Compound Interest of Private Notesknowledge
- Conceptual Compression for LLMsai-coding
- Meta-analysis for contradictory research findingsdigital-health
- Proof of workproduct
- Gauging previous work of new joinees to the teamleadership
- Task management for product managersproduct
- Beauty of Zettelswriting
- Stitching React and Rails togetherai-coding
- Exploring "smart connections" for note takingknowledge
- Deploying Home Cooked Apps with Railssoftware
- Repetitive Copypromptingwriting
- Questions to ask every decadejournalling
- Balancing work, time and focusproductivity
- Hyperlinks are like cashew nutswriting
- Brand treatments, Design Systems, Vibesdesign
- How to spot human writing on the internetwriting
- Can a thought be an algorithm?product
- Opportunity Harvestingcareers
- How does AI affect UI?design
- Everything is a prioritisation problemproduct-management
- Nowlifestyle
- How I do product roastsproduct
- The Modern Startup Stacksoftware
- In-person vision transmissionproduct
- How might we help children invent for social good?social-design
- The meeting before the meetingmeetings
- Design that's so bad it's actually gooddesign
- Lessons learnt interview prepping for product rolesinterviewing
- Obsessing over personal websitessoftware
- English is the hot new programming languagesoftware
- Better way to think about conflictsconflict-management
- The role of taste in building productsdesign
- Dear enterprises, we're tired of your subscriptionssoftware
- Products need not be user centereddesign
- World's most ancient public health problemsoftware
- Pluginisation of Modern Softwaredesign
- Let's make every work 'strategic'consulting
- Making Nielsen's heuristics more digestibledesign
- Startups are a fertile ground for risk takingentrepreneurship
- Insights are not just a salad of factsdesign
- Minimum Lovable Productproduct
- Methods are lifejackets not straight jacketsmethodology
- How to arrive at on-brand colours?design
- Minto principle for writing memoswriting
- Importance of Whytask-management
- Quality Ideas Trump Executionsoftware
- How to hire a personal doctor
- Why I prefer indie softwareslifestyle
- Use code only if no code failscode
- Self Marketing
- Personal Observation Techniquesdesign
- Design is a confusing worddesign
- A Primer to Service Design Blueprintsdesign
- Rapid Journey Prototypingdesign
- Visualise detailed file structures on CLIcli
- Do's and Don'ts of User Researchdesign
- Design Manifestodesign
- Complex project management for productproducts
- How might we enable patients and caregivers to overcome preventable health conditions?digital-health
- Pedagogy of the Uncharted — What for, and Where to?education
- Future of Ageing with Mehdi Yacoubiinterviewing
- Future of Tacit knowledge with Celeste Volpiinterviewing
- Future of Rural Innovation with Thabiso Blak Mashabainterviewing
- Future of Equity with Ludovick Petersinterviewing
- Future of work with Laetitia Vitaudinterviewing
- Future of Mental Health with Kavya Raointerviewing
- Future of unschooling with Che Vanniinterviewing
- How might we prevent acquired infections in hospitals?digital-health
- The why to endure any howentrepreneurship
- Design education amidst social tribulationsdesign
- How might we assist deafblind runners to navigate?social-design