| "correctness" != "correct". I don't have time for distracting meta-work with questionable efficacy. My prime requisite is to deliver actual value, not dubious internal metrics. One of our jobs as programmers, leads, or architects is to determine, of many strategies to solve a problem, which are (or may be) appropriate for the current context. Testing is done the same way; and parameters for testing are decided by the QA department. Any strategy that claims to be universally applicable (like anything labelled "clean" or "correct" or "best practices") is likely at least partially bullshit. Every problem is different, and every requirement requires special care to ensure what's being done is appropriate for achieving both long and short term goals within time allotted. It's a given that the business already pushes as hard as they can on deadlines. If I have to cut effective quality assurance, or make compromises on what will and won't be done a maintainable or performance oriented manner to fit in meta-work that really doesn't matter; I'm going to pick a fight. The development team has a finite bullshit budget, and the business has generally spent our bullshit budget before we get to your correctness bullshit. The very notion of universal "software correctness" within a system of sufficient complexity is reductive and borderline offensive. |
What items mentioned in the linked post do you consider meta-work? Unit tests (TDD), types (type systems) or formal methods (to prove hard to replicate edge cases like race condition perform as expected, for example)?
The rest of your reply seems to be directed at points the post never made. Nothing was written about universality of application or that trade-offs didn't matter. The bulk of the post was how the inability of these methodologies / tools to gain traction may be because they're inconvenient... which from what I can tell you seem to agree with.