Test-Driven Development is a good idea - especially in multi-person projects (aka essentially all projects of note). A robust test-driven development increases [[Modularity]] by testing whether all interfaces adhere to the [[Standardization Enables Creativity|standard]] codified into the test. In a way, it can function as source-of-truth documentation. The tests will tell you what expected results should be for a given situation, which is a giant part of documentation.[^1] Test driven coding is _slower_, but doesn't acquire (as much) [[Technical Debt]] (as quickly). Test-driven development is consistently pointed out as a [[Best Practices Index|best practice]] by [[Refactoring Guru]]. **** # More ## Source - [[Refactoring Guru]] ## Related [^1]: I haven't full thought this through, but it feels like documentation is essentially **only** _architecture_ decisions at the super high level, and then specific situation handling at the lower levels. Documenting anything in the middle of that feels like it wouldn't really be helpful.