AI is the next layer of software development
Nobody writes machine code anymore. For a good reason - it's inefficient to write. Luckily, we don't need to, because somebody already wrote it for us.
Nobody writes machine code anymore. For a good reason - it's inefficient to write. Luckily, we don't need to, because somebody already wrote it for us.
A lot of new AI coding tools are built around the same idea: start a thread, keep feeding it work, and let it run forever. You can see the assumption hardening into product features: Claude Code lets you name sessions, find and resume them by name, branch them, and export their transcripts. Cursor has editable chat titles, stored history, Markdown exports, and a way to pull old chats into the current one.
Spec-driven development means treating a written specification as the source of truth: define the intended behavior first, then implement and validate the code against it.
I find the principle intuitive and exciting, but it has the same problem we've always had with documentation: drift.
We added a links field to our APIAPI (Application Programming Interface). A set of rules and protocols that allows different software applications to communicate with each other. APIs define the methods and data formats that applications can use to request and exchange information. response objects this week.
Small change, and I'd put it off for a while because it felt like ceremony.
It isn't.
A status field is a contract. It is also the place where most APIsAPI (Application Programming Interface). A set of rules and protocols that allows different software applications to communicate with each other. APIs define the methods and data formats that applications can use to request and exchange information. quietly leak ambiguity, a single word doing the work of three, consumed by people who weren't in the room when you named it. Get it right and an integrator can build correct handling from the payload alone. Get it wrong and they reverse-engineer your intentions from support tickets.
Prioritization has a structural problem. If every piece of work competes in the same backlog, large, high-impact projects will always beat small improvements. That's usually the right outcome for each decision, but the wrong outcome for the product over time.
Minor bugs, inconsistent spacing, awkward copy, and other small flaws rarely become important enough to win on their own. So they linger.
A small plea: stop abbreviating field and method names in your APIsAPI (Application Programming Interface). A set of rules and protocols that allows different software applications to communicate with each other. APIs define the methods and data formats that applications can use to request and exchange information., SDKsSDK (Software Development Kit). A collection of software development tools, libraries, documentation, code samples, and guides that help developers create applications for a specific platform or framework., and config.