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]