Every working engineer eventually realizes that the code part of software is, in some real sense, the easy part. The hard parts are the questions wrapped around it. What problem is this actually solving? Who is going to use this, and what happens when they make a mistake? What about the user we didn’t think of? Who owns the data, and what are we required to do with it? How does this thing degrade, and how does it eventually retire?

These questions aren’t well-served by computer science curricula. They’re learned over years, often after the consequences of not asking them have already played out. This monograph tries to gather ten of them into one place, with the explicit assertion that they matter at least as much as the algorithmic content of any given project.

It’s the third in a small companion series:

What it covers

Ten short chapters organized into four sections, roughly thirty-five minutes to read.

§1 — What You’re Actually Building. Problem fit. Workflow reality. The gap between the requirements doc and what users actually do.

§2 — The Human Surface. Documentation that helps. Error messages that don’t humiliate. Accessibility that’s designed in rather than retrofitted.

§3 — Trust, Law and Data. Compliance. Data rights. Fairness across the populations the software will eventually serve.

§4 — The Long Tail. The true cost of the system you’re shipping. The eventual sunsetting question that almost nobody plans for at the start.

Written for the engineer who has been doing this for two or three years — long enough to have the algorithmic basics, not yet long enough to have hit all of these in the wild.

Read it

Open the monograph →

← Back to Autonomy