What we mean by “software done right”
Our standard has three words. This note explains what each word asks of the work.
We put three words at the top of everything we make: software done right. The phrase fits on a business card. It also starts arguments in code review, so this note defines each word.
Software
Software is the code that runs at 3am when nobody watches it. A teammate inherits it two years later. A customer uses it every day and never thinks about it. So we deliver the code, the schema and the deploy as the product.
This view changes many small decisions. Each function gets a name that makes sense out of context. Each error path reports its failure. Each migration gets a way back. Six months later, these choices help the team that changes the code.
Done
On many projects, the word “done” changes over time. It starts as finished. Then it becomes demoed, then merged, then shipped on paper. We hold “done” to four tests:
If one test fails, the work is still in progress, even when it is in production. Our published security audits show how we review code.
Right
“Right” is the hard word, because it says that a wrong version exists. In our experience, the wrong version costs the team more time after the merge.
Right means that the second engineer on a project works faster than the first. It means proven tools for the parts that carry load, and new tools only where they give a clear gain. It also means that we are ready to be on call for the system, and often we are.