Notes

Boring but successful web development is as complex as necessary, but as simple as possible.

Greed has poisoned men’s souls, has barricaded the world with hate, has goose-stepped us into misery and bloodshed. We have developed speed, but we have shut ourselves in. Machinery that gives abundance has left us in want. Our knowledge has made us cynical. Our cleverness, hard and unkind. We think too much and feel too little. More than machinery we need humanity. More than cleverness we need kindness and gentleness. Without these qualities, life will be violent and all will be lost ...

This is the value of prototyping: you don’t have to figure everything out beforehand. You pick a place to start and let the natural process of problem solving birth the design of what you’re trying to make.

Simplicity should be ingrained in every layer of product design. From aesthetic simplicity (how it looks), to logical simplicity (how it works), all the way to technical simplicity (how it performs).

The less you know, the more you THINK you know. But the more you know, the more you know you DON'T know.

  1. Written by humans.
  2. Written for humans.
  3. Engagement is not a measure, it is an action.
  4. Algorithms don’t direct our attention.
  5. We curate our consumption.
  6. Open discourse is not to be weaponized.
  7. Our feeds intend to feed the mind, not the machine.
  8. Attention is our currency; we spend wisely.
  9. Tools facilitate an action, not a solution.
  10. Intention is the seed for all we aim to grow.

But it also got me thinking about how common this experience is: the feeling of powerlessness and hopelessness in the face of modern systems technology.

That is the terrible power of modern systems, I think. They make us alone, atomise us, and disconnect us from each other. They turn us tharn.

consider what tools or technologies will enable you to build the product. If AI is part of it, great. But if not, that’s also fine. Don’t build something with AI for the sake of AI. You’ll likely fail.

Nobody wakes up in the morning thinking, "I want some software."

... mostly our job is to get them to not care at all about the product because it's just a thing that does a thing.

When you're forced to be simple, you're forced to face the real problem. When you can't deliver ornamentation, you have to deliver substance.

If you’re building and making decisions in small, continuous, iterative ways, there’s little cost to making a bad decision because you can always backtrack and make an even better decision knowing with surety that the other fork in the road is not where you wanted to go.

A Moloch Trap is, in simple terms, a zero-sum game. It explains a situation where participants compete for object or outcome X but make something else worse in the process. Everyone competes for X, but in doing so, everyone ends up worse off.

Enshittification explained.

Quit doing hard things for simple problems. Quit doing things that are degrees of difficulty harder than the problem. When a problem presents itself, look for multiple solutions, and then choose the simplest one. Assume the simplest solution is the best one.

When you’re already “paying the React tax” for a component or two, there’s a tendency to just grab a React component for this new thing you’re going add, or this piece of your app you wanted to update, or for the whole damn thing, even when it’s just a blog or marketing site.

See also 'Wordpress tax' ...

And that ascent rocket, the most important piece of hardware in the lander, was a caveman design intentionally made so primitive that it would struggle to find ways to fail.

Attention to detail is not a personality trait; it is a manifestation of a preference for order and consistency. When that preference is fundamental, it makes it nearly impossible for a person to not see mistakes, flaws, inconsistencies, or differences.

The components sourced from an intern fixing ChatGPT's output just enough for it to run and the exhaustively tested ones from a senior developer are equivalent in the eyes of management.

And one is much, much cheaper than the other.

Quality is often invisible, until it isn't.

Companies that exploit our gameplaying compulsion will have an edge over those who don't, so every company that wishes to compete must gamify in ever more addictive ways, even though in the long term this harms everyone.

Quality is often something hard to talk about, but easy to experience. When you use it, it works; when you look at it, it's beautiful; when you pick it up, it feels good.

Technology is certainly disruptive. In many instances, it makes the fundamental aspects of my life more arduous.

I prefer a web of hand-laid bricks placed by skilled masons. The industry wants poured, stamped concrete. I want a web of bespoke suits. The industry wants mass-produced fast-fashion.

the hard work should never be the bureaucracy, it should be designing things and solving technical problems.

The creative process is not an assembly line. Complications and in-process revisions are something to be embraced, not feared, because they are an inherent part of making.

Our economy isn't one that produces things to be used, but things that increase usage - and the result is the public decay of creativity and innovation.

You need people at the highest ranks in the organization to be looking at craft every single day. People who will not let quality drop. People who understand that how you do something is as important as what or when you do it. If company leadership doesn't care for craft, chances are people at every level will overlook the details.

SPAs replace the bad user experience of having to wait a second or two for 20KBs of HTML to be sent to your browser from a server with the good user experience of waiting several seconds for the server to send a 300KB JavaScript bundle, used to render HTML from scratch.

If users are already struggling to extract value from existing features, how do you expect them to extract any additional value you might be adding to the product?

Clear is better than clever. Clever will make you feel smart in the moment and dumb later. Clear will make you feel dumb in the moment and smart later.

We absolutely need experts who focus exclusively on product, on engineering, on policy - those demand high-quality, dedicated specialists - but we also need people - I've taken to calling them technologists - whose expertise cuts across those three domains.

Ask as few actions of your audience as possible, and provide as little information to support those actions as possible. Everything else that you could put on your screen is a distraction.

Unlike the characteristics of functional quality, they cannot be checked or measured, but they can still be clearly identified. When we encounter them, we usually (not always, because we need to be capable of it) recognise them.

They are characteristics of deep quality.

A process works better than a sign-off. A design should be approved by users through testing and not based on the foibles of stakeholders' personal tastes.

the only way to build a great product is to use it every day, to stare at it, to hold it in your hands to feel its lumps. The data and customers will lie to you but the product never will.

A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.

The first draft of anything is shit. Good design is not a function of talent, but number of iterations.

At least nine times out of ten, a multi-page approach is leaner, more robust, and simpler.

since the late 50s, science has shown again and again, that when we come up with ideas together there is a loss in both quantity and quality of the ideas generated.

The burden of pushing for simplicity in the org falls on the few who can devise and implement a consistent framework, project after project.

I believe 'good developer experience' needs to be re-imagined as the enabling of developers to deliver reliable and first rate end user experiences - for as many users as possible, and for as long as possible

The Lean Web is an approach to web development that focuses on fast, resilient experiences that work for everyone.

Slow design is about embracing the time-consuming process of trial and error so we can figure out the most elegant, considered, and sustainable solution.

We ship to learn. We know that we will be wrong more often than we will be right. Because we care most about learning, we prioritize speed to execution.

A lesson in how to accomplish big things: figure out a plan, get to work, work hard, and keep working until it's done.

The truth is that dents in the universe are only observable after they have occurred; this is why their continued creation is best induced by the establishment of conditions in which risk-taking and experimentation are rewarded.

I'm not the most talented coder in the world. No, it's true. So I try to write as little code as possible. The less I write, the less there is to break, justify, or maintain.

But the fact is, the reality is all grey area. All of it. There are very few black and white answers and no solutions without second-order consequences.

I try to remember that making those mistakes and dealing with the messy reality of the work, while still trying to do my best work, puts me on a path of constant improvement.