▲ | godelski 5 days ago | ||||||||||||||||||||||||||||||||||
I disagree. It's, like you say, one description of your spec but that's not the spec.
Well that's the thing, there is no single source of truth. A single source of truth is for religion, not code.The point of saying this is to ensure you don't fall prey to fooling yourself. You're the easiest person for you to fool, after all. You should always carry some doubt. Not so much it is debilitating, but enough to keep you from being too arrogant. You need to constantly check that your documentation is aligned to your specs and that your specs are aligned to your goals. If you cannot see how these are different things then it's impossible to check your alignment and you've fooled yourself. | |||||||||||||||||||||||||||||||||||
▲ | 9rx 5 days ago | parent [-] | ||||||||||||||||||||||||||||||||||
> You need to constantly check that your documentation is aligned to your specs Documentation, tests, and specs are all ultimately different words for the same thing. You do have to check that your implementation and documentation/spec/tests are aligned, which can be a lot of work if you do so by hand, but that's why we invented automatic methods. Formal verification is theoretically best (that we know of) at this, but a huge pain in the ass for humans to write, so that is why virtually everyone has adopted tests instead. It is a reasonable tradeoff between comfort in writing documentation while still providing sufficient automatic guarantees that the documentation is true. > If you cannot see how these are different things If you see them as different things, you are either pointlessly repeating yourself over and over or inventing information that is, at best, worthless (but often actively harmful). | |||||||||||||||||||||||||||||||||||
|