"Design in Practice" by Rich Hickey
ClojureTV2 HN recommenders · 2023–2024
65K views · talk · evergreen · Uploaded 2023-05-12
Rich Hickey's Clojure Conj 2023 talk on design in practice, covering problem statements, decision matrices, choosing precise words and making decisions in a team.
HN draws on it for practical decision-making and problem-framing techniques that apply well beyond Clojure.
53:22Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Confreaks
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
18:13Try to Rule Fairly and You'll Be Overthrown
CGP Grey
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
1:31:06William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
PapersWeLove
1:00:19How To Design A Good API and Why it Matters
Google TechTalks
4 comments from Hacker News
I experienced this in Scrum planning, daily standups, and other rituals were done with Excel shared via Zoom (or similar) meetings. The Scrum Master would ask each team member a question (e.g. estimation, etc.) and then fill the Excel while online, wasting everyone's time. Same with planning, there will be some basic template for a sprint, and it will be filled with the estimations/Jira tickets during the online meeting! Given said that, there are some valid uses for shared spreadsheets in Product/SDLC. One method I used is specific for data engineering projects: the product fills Excel/Google Spreadsheet with the example input, output shapes in the form of tables, and the developers asking question while they arriving to common spec. Another is called Decision Matrix (almost as old as Periodic Table;), which was recently popularized by Rich Hickey in his talk Design in Practice[1,2]. Another valid usecase for shared spreadsheets is Use Cases table. --- [1] [VIDEO] [2] slide #31 [LINK]
Reminds on Rich Hickey ranting about touch screens in cars [1] in Design in Practice: > We do not have feature X" is never a valid problem statement. If you need proof of this you only need to look at a modern car which has a touch screen where no one said, "I need to slide my finger on some random piece of glass to a precise point to set my blower in my car while I am driving." No one has ever said that, right? But somebody did say, "We need touch screens because young people will never buy our cars." This is what happens when you are not talking about the problem. [1]: [VIDEO]
Rich Hickey has a section on using good words, on not using nicknames, in his (as ever wonderful) Clojure Conj 2023 talk Design in Practice, [VIDEO]
A good approach to making decisions in a team context (also works for personal use) is explained by Rich Hickey here: [VIDEO] The talks is called "Design in Practice" but is really about making decisions.