Smaller pieces, lower pain
In software and in life, breaking tasks into the tiniest possible pieces makes them smoother, and therefore easier and safer.
In software and in life, breaking tasks into the tiniest possible pieces makes them smoother, and therefore easier and safer.
Today I brought up a load of laundry. When doing chores, I practice keeping WIP (work in progress) to a minimum. Finish each thing, then do another one. This is good training for code. For instance, on the way up the stairs with the basket, I saw a tumbleweed of cat hair. I didn’t pick … Read moreReducing WIP in laundry and code
Today before breakfast, we started the dishwasher. I think they might have been clean already, but when I saw Avdi loading all the dirty cups from the counters in, I didn’t complain. Today making scrambled eggs, I didn’t have my favorite spatula. It was in the dishwasher. Dang it! This is a danger of running … Read moreSmarter dishwasher, smarter cook
In a big new project, where do you start? My dad bought this old building, and he’s turning it into an antique mall. It’s a huge project: two floors of shopping plus a gallery and museum at the top. Yesterday he showed me what he’s done so far. In the basement, he added support beams … Read moreBasements and galleries
A Swede, on American Football: “Are there any rules? It looks like they stand in two lines, someone throws the ball backwards, and then it’s a big pile.” Me: “141 pages, last I checked. It takes a lot of rules to look like there aren’t any.” Later, people talked about error messages. There are so … Read moreA lot of rules
Every action has two results: a set of side effects on the world, and the next version of ourselves. I learned this from Erlang, a purely functional yet stateful programming language. Erlang uses actor-based concurrency. The language is fully immutable, yet the programs are not: every time an actor receives a message, it can send … Read moreEvery action has two results (Erlang edition)
When we learn math, geometry, and logic in school, we’re always talking about things that are holding still. The element is in the set or it isn’t. The angle is acute or obtuse or right or we can’t know. Things are related or not. A thing has a property, or doesn’t. Code can have properties. … Read moreLet’s reason about behavior
There’s a funny thing, that when I walk into the kitchen and there’s sunscreen on the counter that I left there before yesterday’s bike ride, there’s a plate that I put to soak on the counter and there’s a book about Klimt that I had hoped to read with my coffee, this is fine. It … Read moreOther people’s messes
Observe, Orient, Decide, Act. This is the OODA loop, first recognized in fighter pilots and then in the Toyota Production System. It represents every choice of action in humans and higher level systems: take in sensory data, form a model of the world, choose the next action, make a change in the world. At least … Read moreMostly we orient
Humans are magic because we are components of many systems at once. We don’t just build into systems one level higher, we participate in systems many levels higher and everywhere in between. In code, a method while is part of a class which is part of a library which is part of a service which … Read moreImplementing all the interfaces