Hammock Driven Development - Rich Hickey
ClojureTV12 HN recommenders · 2014–2024
333K views · talk · evergreen · Uploaded 2012-12-17
Rich Hickey's philosophical talk from the first Clojure Conj in 2010. He argues that good design comes from deliberate, away-from-keyboard thinking, and describes how to feed the background mind so it solves problems.
HN returns to it constantly as permission and method for thinking deeply before coding, and as an antidote to always-working anxiety.
53:22Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Confreaks
1:03:43How to Speak
MIT OpenCourseWare
38:47RailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
42:03The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO Conferences
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
14:34Steve Jobs Stanford Commencement Speech 2005
JoshuaG
1:31:06William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
PapersWeLove
20 comments from Hacker News
This is a classic and hilarious series of posts on the foolhardiness of the TDD approach to software design: [LINK] Personally I prefer Rich Hickey's "Hammock Driven Development": [VIDEO]
"don't get stuck" reminds me of the feynman method of problem solving: 1. Write down the problem. 2. Think very hard. 3. Write down the answer. Rich Hickey's Hammock Driven Development, [VIDEO] , is IMO very good for actually not getting stuck in a bad place problem solving.
This was a joke, the only out of stock item on the list is the Hammock at the bottom. This is a reference to Rich's talk "Hammock Driven Development": [VIDEO]
This is very similar to what Rich Hickey (creator of Clojure) talks about when he talks about Hammock Driven Development, I recommend watching him talking about it here: [VIDEO]
That and Hammock Driven Development: [VIDEO] Both of these talks are in my top 5. Edit (okay, here are the other 3): * All the Little Things by Sandi Metz [LINK] * Programming is terrible—Lessons learned from a life wasted. [LINK] * Some talk I saw by Dan McKinley on making Data-Driven decisions. I can't find the original video, but here's a really similar one: [LINK]
I was searching for exactly the same stuff yesterday, and I found this: [LINK] I usually keep notebooks, but I am ever more convinced of using one because of Rich hickey's talk: [VIDEO] and we have a better chance of remembering something if we write than type. [LINK] . I have previously read that people like Martin Gardner had an awesome system of keeping notes. I would love to know more about your tips. How do keep your notes? How do you organize stuff, while retaining the freedom to doodle. How do you find stuff again(which is the killer feature for typed notes). Would love to learn from the masters - do you have any books to recommend?
I have loved this talk for some time and have forced everyone at my company to watch the video. I found a lot of parallels with this "Hammock Driven Development" talk by Rich Hickey: [VIDEO] They both seem to suggest that you have to put in the effort, do the hard work and dig into the problem deeply. But then when you hit a wall, you should take a break. Relax. Play. Sleep. It is often during this "open" minded stage when the solution comes.
I like this kind of development also. But I don't think it is for everyone (the person has to keep thinking on the problem for long time). A good talk about It, from the creator of clojure: [VIDEO]
This makes me think of Rich Hickey's Hammock Driven Development: [VIDEO] - "Stay away from the computer" - Start by asking: "what is the problem?"
Nobody's stupid because they're not sure about something. It's totally cool to ask for help or opinions when you're thinking through a hard problem. To answer your question you should understand what creativity and practicality mean in your context. I would generally think that being practical and creative aren't at odds with each other. When working through a problem for work I tend to err on the side of practicality. We could be coming up with a new way to do data transformations, building out distributed tracing tools, or trying a new way of scaffolding our projects. Each of those solve a real problem and have practical implications. They also require creative thinking to imagine and design new tools and workflows. These projects are practical in the sense that they need to solve an actual problem (e.g. deliver a net benefit to customer UX or development velocity). Contrary to how they sound, they often aren't obvious projects to take on or straight-forward solutions. It usually required days or weeks of lateral thinking to cook up one of these. In this context, creative thinking complimented practical thinking and produced a better result than one of those modes taken in isolation. Sometimes it's helpful to circle around the problem you think you want to solve to better understand what your actual problem is. Be careful reading other's ideas since it will affect the way in which you see the problem. Your view of the problem may be skewed after reading other information. O
The feeling you're describing is called anxiety. Some anxiety is normal, but constant anxiety that interferes with your life is a problem. I think it'd be worth trying that label on: call it anxiety, and ask "how do I reduce my anxiety?". About 1 in 4 people experience an anxiety disorder at some point in their lives, so there's a lot of research and good approaches out there. One thing that stands out to me is that you've made some pretty big and scary claims without a lot of evidence to back them up. Are you actually not a good developer? Are smart people really "capturing" the opportunity (ie there is less opportunity over time)? Do people who aren't working all the time fall behind and never make anything of significance? If so, prove it! Figure out what evidence you would need to definitively answer these questions, and research or experiment until you have that evidence. Anxious thoughts are like dreams: they seem perfectly reasonable in your head, but when you try to bring them into the real world they fall apart. As far as evidence goes, I'd point you in the direction of two of my favourite Richards. The one who did Clojure: [VIDEO] and the one who got a Nobel for Quantum Electrodynamics: [LINK]
I think a good starting point is to integrate the principles described in the Simple Made Easy[1] & Hammock Driven Development[2]. These are overarching first principles that help in designing and writing code, but also in communication & team work. [1]: [LINK] [2]: [VIDEO]
In terms of mind-expanding or intellectually stimulating, I find it's easier to get that from Youtube. I recommend: 3blue1brown for math ( [LINK] ) Everyday Astronaut if you are casually interested in rockets ( [LINK] ) Bret Victor ( [LINK] ) or Rich Hickey ( [VIDEO] ) for programming and design. Doing a full college course is such a time investment and it usually takes a few weeks to start proving the interesting stuff. I find it more fun to look to shorter content for inspiration. I might realize I don't understand the fundamentals of the topic and then seek out a way to study it.
Rich Hickey, of Clojure fame, has a talk you might find interesting. It goes by multiple titles: * Step Away from the Computer * Hammock-Driven Development [VIDEO] The idea / hypothesis is that sometimes we need to sit down and think about something for an hour, a day... This seemingly "wasted time" can pay huge dividends in long-term health of a project. Like compound interest. As others have noted, this may seen "lazy" to managers, especially if LOC or sprint velocity is the metric they use.
What a tale. This is such a key insight, such a core lesson on how the world tends to work. > At his next salary review Charles was given a raise which was about half the inflation over the period. He was not given a promotion. After about a year he became discouraged and left Consolidated. To be fair to Alan, spinning up an organization & knowledge system is real hard work. Legitimizing your projects is real hard work. But there's such tension over who steers, over how the work happens, and there's so many really good solid workers who slip through the cracks & never get appreciated. The corporate body is so often so very far away from the workers on the edge, sees the faults and problems, incompetent at appreciating and respecting many of the best acts done for it. Thanks for the share. This is a great article. I see a lot of relationships to other submissions. Jonathan Blow talking about work-life balance has some relationship here, on how we exert ourselves ( [LINK] [LINK] ). The "midlife crisis of a programmer" seems ultra-pertinent ( [LINK] [LINK] , 2 comments). "Hammock-driven development" made the rounds against ( [VIDEO] [LINK] ). All of these deal with questions of time-base & commitment & application, all of these feel like they could be informed by The Parable. Worth pointing out that the parable is reportedly from (1985)! It's somewhat confirming to hear the struggles of the lowly engineer to get work done & fit in are not new.
Rich Hickey talks about this, calling it "hammock-driven development." [VIDEO] Aaron Sorkin has also touched on this: > Most of the time, me writing looks—to the untrained eye—like someone watching ESPN. The truth is if you did a pie chart of the writing process, most of the time is spent thinking. When you’re loaded up and ready to go—when you’ve got that intention and obstacle for the first scene that’s all you need. For me at least, getting started is 90% of the battle. The difference between page zero and page two is all the difference in the world.
He gave a well-known talk with that name - Hammock Driven Development , Rich Hickey, Closure Conj 2010 [VIDEO]
sorry guys, i don't know clojure, so i'll write this script in my favorite programming language: #/usr/bin/english if clojure is mentioned, can rich hickey be far behind? and if rich is mentioned, can this video of his be far behind? methinks not. lo, and behold, said video: [VIDEO]
Hammock driven development [VIDEO] When I worked in an office I'd get up and go on walks, or move to a sofa and let the problem simmer a bit, several times a day. I've been fortunate to work in companies which seem to, I think, recognize these are productive activities
Hammock-driven development is a thing: [VIDEO] I think anyone can experience this even if you're unaware of the science behind it. The brain during sleep can also connect seemingly disconnected things in ways that your daily logical process would have a lot of trouble with. That's why things seem to "click" when you wake up from sleep. If your daily thinking is a gradient descent, your sleep thinking is a flood from all points and in all directions. But I don't have any science refs on this; just my experience.