Contracts made older objects better

Developers love contracts, i.e. types and type systems. Except, and especially, when they don’t. Contracts tell us, this module has a few functions and they definitely take these inputs and produce these outputs. Some languages (Haskell, Elm) even encode the possible side-effects of calling a function in the types. Contracts place useful, and sometimes comforting, constraints on the relationship between two bits of code.

A consequence of software eating the world is real-world contracts became weaker. Physical objects no longer have the constraints that made them special before.

That fancy car you bought might mix artificial engine sounds in with whatever’s playing on your speakers. It may also collect data on where you’re going, upload it through a cellular data connection you’re not even paying for, and sell it for “marketing”. All of this a departure from what was previously considered the “contract” for a high-end car.

That porch camera an e-commerce giant sold you so people don’t steal packages off your porch may also be accessible to their customer support. Or, the police. Again, a departure from the contract most of us grew up with for household electronics.

That book you bought might get “turned off” if it’s no longer a good business for the vendor. It might get changed if words in it were wrong or politically inconvenient. You guessed it, not quite the contract most of us expect from a bag of words.

That computer-enhanced movie you went to see might get revamped wholesale because the teeth are creepy, a human hand where a cat's paw should be was overlooked, or because people were having too much of a laugh about the whole movie. Notably, this is not Martin Scorcese’s vision of what cinema should be.

Before they were software it was natural that cars, books, appliances, vinyl, etc. had better contracts:

To understand why books are still around, and why they delight as they do, we need to do some “media accounting” — What are the costs (individually, socially) of engaging with certain media and mediums, apps and publications?


Understanding the contracts into which we enter with media helps demystify why physical books (and, similarly, vinyl, analog film, et cetera) not only remain compelling, but become more compelling the more their digital twins grow vast and fuzzy.

Stab a Book, the Book Won't Die - Craig Mod

The software we’re building today is in almost every way superior to the immutable objects we created before. But I can’t help think that the constraints that make a copy of Cat’s Cradle, The White Album, an Omega watch, or a Porsche 911 special might make software better as well.

Perhaps what we need is a little less change and a little more purpose.


Training & Learning

A thing I’ve learned from weightlifting (also from Destiny, but that’s a whole other thing), is the value of showing up several times a week and putting in the right kind of work.

Learning is training, and the quality of your reps is important. David Perell makes the connection better than I could:

Athletes train. Musicians train. Performers train. But knowledge workers don’t.


Knowledge workers should train like LeBron, and implement strict “learning plans.” To be sure, intellectual life is different from basketball. Success is harder to measure and the metrics for improvement aren’t quite as clear. Even then, there’s a lot to learn from the way top athletes train. They are clear in their objectives and deliberate in their pursuit of improvement.


Knowledge workers should imitate them.

Learn like an athlete

In short:

  • Train intentionally: choose one learning project per quarter.
  • Do the reps: learn every day.
  • Train in public/on Instagram: write/blog/etc. about your journey.

Economist Tyler Cowen also commented and shared his routine.

My personal routine this month is: read fiction and non-fiction every day. Write or revise every day with an eye towards building up my muscle for publishing articles on this blog.

Also: floss every night. 🤷‍♂️

Related: applying a fitness training mindset to software development is a great way to reach “I know this”!


William Gibson in the New Yorker

How William Gibson Keeps His Science Fiction Real - I gotta read more Gibson; just as soon as I finish all the Stephenson. 🤦‍♂️

One of them showed him an episode of “Cops,” the pioneering reality series in which camera crews sprinted alongside police officers as they apprehended suspects. Policing, as performance, could be monetized. He could feel the world’s [fuckedness quotient] drifting upward.

Futurists he knew had begun talking about “the Singularity”—the moment when humanity is transformed completely by technology. Gibson didn’t buy it; he aimed to represent a “half-assed Singularity”—a world transforming dramatically but haphazardly. “It doesn’t feel to me that it’s in our nature to do anything perfectly,” he said.

He spent time on eBay—the first Web site that felt to him like a real place, perhaps because it was full of other people and their junk. Through eBay, he discovered an online watch forum, and, through the forum, he developed some expertise in military watches. He learned of a warehouse in Egypt from which it was possible to procure extinct Omega components; he sourced, for the forum membership, a particular kind of watch strap, the G10, which had originally been manufactured in the nineteen-seventies and had since become obscure. (A version of it, known as the NATO strap, is now wildly popular in menswear circles.) Gibson noticed that people with access to unlimited information could develop illusions of omniscience. He got into a few political debates on the forum. He felt the F.Q. creeping upward.

Did Gibson popularize the NATO watch strap or was he just ahead of the horological time?🥁


Options everywhere

Setting roadmaps and key results feel like truthful, strategic work. But the flip side is, if you approach them at face value or don’t focus on the outcome, they reduce the ability for teams to creatively pursue different solutions in service of the desired outcome. That increases your risk of exceeding calendar/complexity budgets!

I’ve come to hate the damage the “product roadmap” metaphor does to the brains of everyone involved in developing a product. When I use an actual map of actual roads, I assume that I know where I’m going and how I’m going to get there. This is never the case when developing a product.

Kent Beck, Decisions, Decisions or Why Baskets of Options Dominate

Instead: choose shorter iterations that let you try an idea, spend a limited amount of time on it, and decide if it’s worth further pursuit. Optionality! The downside is, now you have to decide on each idea that got you closer to building the product or achieving the key result. Decision fatigue: It’s a better problem than no options! 🤷‍♂️

Consumers, on the other hand, love options. Buying a car, instead of e.g. a bike or using scooters and buses, is buying a bundle of options:

That’s why ditching car ownership is going to be really unattractive for a lot of people - no matter how attractive you make the alternatives. Unless you can replace all of the important jobs that a car does for you, all at once, then competing against the car means competing against free. Actually, it’s worse than that - it means competing against free and nice. Bundle economics (and also ego issues) are powerful enough that it’s pretty rare to see people downgrade their cars, even if their car requirements have gone way down (like they had kids go off to college). Once you go SUV, you don’t go back.

Alex Danco, The Car Bundle

When we’re buying cars, we are making trade-offs on money, signaling, time, practicality, wanderlust, recreation, and whatever hoops the car salesperson is putting us through. Again, decisions are fatiguing!