Tuesday 11 April 2023

Against Test-First

Against Test-First in synthesis:

CONS:

  • negatively affects product quality:

    • obliterates technical analysis/specification
      (which is the fundamental aberration, in theory and in practice)
      => conflating problem with solution domains;

    • obliterates the separation coder/tester
      (akin to validating data models against the training sets)
      => conflating QA with the methods of production;

  • negatively affects product/process development:

    • obliterates external/internal distinctions (up to the worst RAD)
      (yet what we develop is *what allows building* what we sell, not directly it: whence, together with reasons of intrinsic and utmost complexity, software production driven by the commercial/PM/QA functions, once upon a time rather auxiliary, is just doomed)
      => no development proper: no consolidation of assets, nor of (sane) processes, even less of competences and the chance itself of acquiring those competences;

    • enforces the gradual local change (up to TDD)
      (yet the normality hypothesis for program code is false)
      => no restructuring, no global perspective;

    • glorifies and institutionalises the trial and error
      => no improvement, no global sanity;

PROS:

  • none known so far!

See also:

  • the notion of complex system up to that of phase transition in particular;

  • the need for "radical (global/strategic/discontinuous) change" vs "gradual (local/tactical/smooth) change": the history and need for BPR over TQM specifically.

[UPDATED 2024-10-22 20:15 UTC+2]