See ContinuousIntegrationRelentlessTesting.
Recording every decision you make in a form that can be automatically verified. One strategy is striving for mathematical rigor. Another is relying on a combination of AcceptanceTests and UnitTests.
A strong way of stating this is: "the feature doesn't actually exist until there are tests that prove it works."