Ideas

Software should mature through four stages

I have started thinking about AI-assisted products as moving through four stages: novelty, usefulness, dependability, and refinement.

At the beginning, the question is whether the idea can work at all. Exploration matters and rough edges are acceptable. Once the idea exists, the question becomes whether it is useful to a real person. After that comes dependability: can it do the useful thing repeatedly without supervision? Refinement should come last.

Coding agents often collapse these stages. They polish something that has not proven useful, or harden an architecture before the important uncertainty is resolved. That can look productive while moving the work in the wrong direction.

Naming the stage changes what the system should optimize for now. The right kind of quality depends on what the product has already earned.