@rat @screwtape Like "Design Patterns", TDD is a bad smell that normally indicates a shortcoming of the development language in use. For instance, the pre- and post-conditions of subprograms need to be expressed in the language itself, and not bolted on externally to the program. Types need to be defined such that you cannot assign a temperature to an altitude, and so on. With these kinds of capabilities, many tests do not need to be written: the faults cannot happen.