Time for an 8th Virtue: Coherence
I've written repeatedly about the 7 Code Virtues, and they have been reliable guides for me, as well as a language for describing goodness in code. When I started applying this agentically, I realised that I may have been wrong about ordering (as I suspected all along) and adjusted to 'Working is prime, the rest are equal', and this has served me well. The agentic code still wasn't going as well as I hoped. After a bunch of reflection, ChatGPT, and trial and error, I discovered that I was missing Coherence. Most simply described, coherence is the degree to which concepts, abstractions, vocabulary, architecture, patterns, and representations of the system reinforce one another. Over its evolution, a coherent system increasingly feels like a single language. This goes hand in hand with the 'developed' code virtue. Coherent systems increase the value of learning because knowledge gained in one part of the system becomes useful elsewhere. This raises the bar for ...