Hammock driven development

Shreyas Prakash headshot

Shreyas Prakash

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

  1. Hammock driven developmentagentic-coding
  2. Peculiar ways number three fits into our funny little brains
  3. AI sandwich as a defacto principle for anything agentic engineering relatedagentic-coding
  4. How I write essays in 2026writing
  5. Authority in the guise of evidencecritical-rationalism
  6. Map is not the territoryphilosophy
  7. Self hypnosis as a manifestation ritualmeditation
  8. Hegelian dialectic for structured reasoning with AI agentsphilosophy
  9. How I prepare for tough negotiations nowadaysnegotiation
  10. When should we steelthread somethingproduct-development
  11. How to become a polyglot
  12. Breadboarding, shaping, slicing, and steelthreading solutions with AI agentsproduct-management
  13. Healthy conflict in teams have a tipping point
  14. Deslopify AI writing
  15. How I started building softwares with AI agents being non technicalagentic-coding
  16. Read raw transcriptsknowledge
  17. Legible and illegible tasks in organisationsproduct
  18. L2 Fat marker sketchesdesign
  19. Writing as moats for humanswriting
  20. Beauty of second degree probesdecision-making
  21. Boundary objects as the new prototypesprototyping
  22. One way door decisionsproduct
  23. Finished softwares should existproduct
  24. How I periodically rank my rough draftsobsidian
  25. Flipping questions on its headinterviewing
  26. Vibe writing maximswriting
  27. How I blog with Obsidian, Cloudflare, AstroJS, Githubwriting
  28. How I build greenfield apps with AI-assisted codingai-coding
  29. We have been scammed by the Gaussian distribution clubmathematics
  30. Classify incentive problems into stag hunts, and prisoners dilemmasgame-theory
  31. I was wrong about optimal stoppingmathematics
  32. Thinking like a ship
  33. Hyperpersonalised N=1 learningeducation
  34. New mediums for humans to complement superintelligenceai-coding
  35. Maxims for AI assisted codingai-coding
  36. Personal Website Starter Kitai-coding
  37. Virtual bookshelvesaesthetics
  38. It's computational everythingtrends
  39. Public gardens, secret routesdigital-garden
  40. Git way of learning to codeai-coding
  41. Kaomoji generatorsoftware
  42. Copy, Paste and Citeai-coding
  43. Style Transfer in AI writingai-coding
  44. Understanding codebases without using codeai-coding
  45. Vibe coding with Cursorai-coding
  46. Virtuoso Guide for Personal Memory Systemsmemory
  47. Writing in Future Pastwriting
  48. Publish Originally, Syndicate Elsewhereblogging
  49. Poetic License of Designdesign
  50. Idea in the shower, testing before breakfastsoftware
  51. Technology and regulation have a dance of ice and firetechnology
  52. How I ship "stuff"software
  53. Writing is thinkingwriting
  54. Song of Shapes, Words and Pathscreativity
  55. How do we absorb ideas better?knowledge
  56. Read writers who operatewriting
  57. Brew your ideas lazilyideas
  58. Trees, Branches, Twigs and Leaves — Mental Models for Writingwriting
  59. Compound Interest of Private Notesknowledge
  60. Conceptual Compression for LLMsai-coding
  61. Meta-analysis for contradictory research findingsdigital-health
  62. Proof of workproduct
  63. Gauging previous work of new joinees to the teamleadership
  64. Task management for product managersproduct
  65. Beauty of Zettelswriting
  66. Stitching React and Rails togetherai-coding
  67. Exploring "smart connections" for note takingknowledge
  68. Deploying Home Cooked Apps with Railssoftware
  69. Repetitive Copypromptingwriting
  70. Questions to ask every decadejournalling
  71. Balancing work, time and focusproductivity
  72. Hyperlinks are like cashew nutswriting
  73. Brand treatments, Design Systems, Vibesdesign
  74. How to spot human writing on the internetwriting
  75. Can a thought be an algorithm?product
  76. Opportunity Harvestingcareers
  77. How does AI affect UI?design
  78. Everything is a prioritisation problemproduct-management
  79. Nowlifestyle
  80. How I do product roastsproduct
  81. The Modern Startup Stacksoftware
  82. In-person vision transmissionproduct
  83. How might we help children invent for social good?social-design
  84. The meeting before the meetingmeetings
  85. Design that's so bad it's actually gooddesign
  86. Lessons learnt interview prepping for product rolesinterviewing
  87. Obsessing over personal websitessoftware
  88. English is the hot new programming languagesoftware
  89. Better way to think about conflictsconflict-management
  90. The role of taste in building productsdesign
  91. Dear enterprises, we're tired of your subscriptionssoftware
  92. Products need not be user centereddesign
  93. World's most ancient public health problemsoftware
  94. Pluginisation of Modern Softwaredesign
  95. Let's make every work 'strategic'consulting
  96. Making Nielsen's heuristics more digestibledesign
  97. Startups are a fertile ground for risk takingentrepreneurship
  98. Insights are not just a salad of factsdesign
  99. Minimum Lovable Productproduct
  100. Methods are lifejackets not straight jacketsmethodology
  101. How to arrive at on-brand colours?design
  102. Minto principle for writing memoswriting
  103. Importance of Whytask-management
  104. Quality Ideas Trump Executionsoftware
  105. How to hire a personal doctor
  106. Why I prefer indie softwareslifestyle
  107. Use code only if no code failscode
  108. Self Marketing
  109. Personal Observation Techniquesdesign
  110. Design is a confusing worddesign
  111. A Primer to Service Design Blueprintsdesign
  112. Rapid Journey Prototypingdesign
  113. Visualise detailed file structures on CLIcli
  114. Do's and Don'ts of User Researchdesign
  115. Design Manifestodesign
  116. Complex project management for productproducts
  117. How might we enable patients and caregivers to overcome preventable health conditions?digital-health
  118. Pedagogy of the Uncharted — What for, and Where to?education
  119. Future of Ageing with Mehdi Yacoubiinterviewing
  120. Future of Tacit knowledge with Celeste Volpiinterviewing
  121. Future of Rural Innovation with Thabiso Blak Mashabainterviewing
  122. Future of Equity with Ludovick Petersinterviewing
  123. Future of work with Laetitia Vitaudinterviewing
  124. Future of Mental Health with Kavya Raointerviewing
  125. Future of unschooling with Che Vanniinterviewing
  126. How might we prevent acquired infections in hospitals?digital-health
  127. The why to endure any howentrepreneurship
  128. Design education amidst social tribulationsdesign
  129. How might we assist deafblind runners to navigate?social-design