TDD, pairing, trunk-based, no estimates: which practices does the evidence actually back?
Conference talks state them as laws. Most come out "partly": a real mechanism whose payoff depends on dose and context. This page lines up every claim against the studies that exist, and flags where the folklore and the data disagree.
- 93sources checked46 videos · 47 posts
- 67channels and authors26 repeat appearances
- 21 hof video, so you need notmedian 24 min
- 413distinct claims623 times asserted
- 29studies and reportsdecide 59 claims
- 17AI guesses overturnedby a study
Recap
Studies decide 59 claims; the rest use an AI guess, which counts for at most 50% confidence. 2 more videos had no captions and are not counted. How to read the verdict labels.
Bottom line: the advice is more confident than the evidence. Most practice claims come out "partly": a real mechanism whose payoff depends on dose and context, and only a minority have a study that settles them either way. Where studies do speak they mostly cut against folklore: TDD is no better than disciplined test-last, language choice barely moves bug rates and the big GitHub study did not replicate, organisational structure predicts defects better than code metrics, open-plan offices cut face-to-face talk rather than raising it, and recording your estimates does not make you better at estimating. Small changes, fast review and trunk-based delivery are the practices with the most consistent support.
The verdicts below update automatically as evidence is added; the bottom line is a hand-written summary of them.
Testing and TDD
- Writing tests first forces the code to be decoupled and testable by construction Leans partly right · AI guess
- Test-first development reduces time spent debugging Leans partly right · AI guess
- Test-driven development produces no better quality or productivity than other disciplined testing approaches. Probably right · Fucci et al. 2016 (TDD replication) + 2 more
- A trustworthy automated test suite lets developers change and deploy code without fear Leans partly right · AI guess (1 weaker study as context)
- Line coverage shows code was executed, not that the tests check its behaviour Probably right · Inozemtseva & Holmes 2014 (coverage)
- Writing a test per method and mocking every dependency couples tests to implementation so refactoring breaks them Leans right · AI guess
Static vs dynamic typing
- Static typing catches type errors at compile time before code reaches users Probably right · Hanenberg et al. 2014 (static types) + 3 more
- Large-scale repository studies claiming some languages produce fewer bugs did not survive replication. Very likely right · Berger et al. 2019 (languages reproduction)
- Dynamic typing is faster for prototyping and rapid iteration Leans partly right · Prechelt 2000 (seven languages) + 2 more
- Static typing yields better runtime performance because the compiler knows each variable's memory layout Leans partly right · AI guess (1 weaker study as context)
Pairing and code review
- Pairing or mobbing puts the best of each participant into the code and rarely the worst Leans partly right · AI guess
- Mob programming onboards new members quickly and spreads knowledge so the team does not depend on one person Leans partly right · AI guess
- Pair programming provides continuous code review without adding a separate review step that slows delivery. Leans partly right · AI guess (1 weaker study as context)
- Small pull requests are picked up and merged faster Leans right · Sadowski et al. 2018 (Google code review)
- Reviewer defect-finding effectiveness drops sharply once a single review exceeds a few hundred lines Leans right · AI guess (2 weaker studies as context)
- Smaller changes mean less rework, fewer incidents and faster restoration Leans partly right · AI guess (1 weaker study as context)
Microservices vs monolith
- Microservices cost more in the short term and rarely save money Leans right · AI guess (1 weaker study as context)
- Hype drives teams to adopt microservices they do not need, adding cost and risk Leans partly right · AI guess
- Coordination cost grows faster than linearly with team count on a shared codebase, which service boundaries contain Leans partly right · AI guess (2 weaker studies as context)
- Keeping modules in one process with enforced boundaries gets most of the modularity benefit without the distribution cost Leans partly right · AI guess
- Service boundaries are usually wrong on the first attempt because the domain is not yet understood, so systems built as microservices from scratch tend to end in trouble Leans partly right · AI guess (2 weaker studies as context)
Estimation and agile
- Long-horizon task estimates are inaccurate and managers should not rely on them Leans partly right · Halkjelsvik & Jørgensen 2018 (Time Predictions)
- Most software projects run late or over budget, with few finishing early. Leans partly right · Halkjelsvik & Jørgensen 2018 (Time Predictions)
- Estimates become deadlines, and deadlines drive the overtime that destroys sustainable pace. Leans partly right · AI guess (1 weaker study as context)
- Short fixed-budget increments let the business decide early whether to continue or kill a project, reducing risk without estimates. Leans partly right · AI guess
10x developers and productivity
- Some programmers are vastly more productive than their typical peers Leans partly right · Prechelt 1999 (28:1 legend) + 1 more
- The 10x spread between fastest and slowest programmers is mostly noise: a programmer's own task-to-task variation is as large as the variation between programmers. Leans partly right · Prechelt 1999 (28:1 legend)
- Many widely repeated software engineering facts trace back to sources that are missing, measure something else, or are methodologically flawed Leans partly right · Prechelt 1999 (28:1 legend) + 2 more
- Hiring super-programmers is a poor route to team productivity compared with improving the working environment. Leans partly right · AI guess
Clean code and technical debt
- Preferring runtime polymorphism over switch statements makes code slower by forcing pointer indirection and hiding the code path from the compiler Leans right · AI guess
- Code in unhealthy files has many times more defects and takes several times longer to change than healthy code Leans partly right · Tornhill & Borg 2022 (Code Red) + 1 more
- Modular decomposition behind simple interfaces reduces the information a programmer must hold in mind at once Leans right · AI guess
- Rewriting a working system from scratch throws away accumulated bug fixes and hands years of lead to competitors. Leans partly right · AI guess
- Architectural problems can be fixed by incremental refactoring without discarding the codebase. Leans partly right · AI guess
Continuous delivery
- Trunk-based development with one small change per release increases release frequency and makes rollbacks easier Leans partly right · AI guess (1 weaker study as context)
- Long-lived branches delay integration and produce merge conflicts that grow with team size Leans right · AI guess (1 weaker study as context)
- Software delivery speed and stability move together rather than trading off; the best teams get both. Leans right · DORA State of DevOps 2019
- Feature flags let unfinished work merge to trunk and decouple deployment from release Leans right · AI guess
Hours, interruptions and offices
- Sustained crunch lowers productivity and employee happiness Leans right · AI guess (2 weaker studies as context)
- Sleep deprivation impairs cognition like alcohol intoxication and blinds people to their own impairment. Leans right · AI guess
- Programming needs blocks of at least half a day, so a single mid-block meeting destroys the block Leans partly right · AI guess (3 weaker studies as context)
- Open-plan offices increase noise and visual distraction that impairs focused work Leans right · AI guess (1 weaker study as context)
- Moving to open-plan offices reduces face-to-face interaction and shifts communication to email and messaging Probably right · Bernstein & Turban 2018 (open offices)
Five most worth your time
Ranked by score, then novelty (rare claims that hold up, weighted by verdict confidence).
What We Know We Don't Know
Hillel Wayne · novelty 3.00Source list and FAQ for an empirical-software-engineering talk: code review, simple tests and sleep have evidence, TDD and language choice are mixed or null, and most beliefs remain untested.
Simple tests of error-handling paths could prevent most catastrophic failures in distributed systems
Leans right“Simple Testing Can Prevent Most Critical Failures”
only this sourceLines of code predict defects about as well as any complexity metric
Leans right“Beyond Lines of Code: Do we Need More Complexity Metrics?”
only this sourceOrganisational structure metrics predict defect-prone components better than code metrics
Probably right“The Influence of Organizational Structure On Software Quality: An Empirical Case Study”
only this sourceLarge-scale repository studies claiming some languages produce fewer bugs did not survive replication.
Very likely right“A Large Scale Study of Programming Languages and Code Quality in Github (original faulty study)”
1 of 3 sourcesTest-driven development produces no better quality or productivity than other disciplined testing approaches.
Probably right“Analyzing the Effects of Test Driven Development in GitHub (negative results)”
1 of 3 sourcesThe most damaging software faults are design flaws rather than coding slips
Leans partly right“Worst bugs are design bugs”
only this sourceCode review catches most of the defects in reviewed code.
Leans partly right“there's more evidence that code review reduces bugs, and the evidence shows a bigger effect”
1 of 2 sourcesPair programming shows little measurable effect on defects or productivity in controlled studies.
Leans partly right“Pairing is nice, but it's not "continous code review."”
1 of 2 sourcesAbbreviated identifiers are no harder to debug than full-word identifiers.
Leans partly right“Fixing Faults in C and Java Source Code: Abbreviated vs. Full-Word Identifier Names (preprint)”
1 of 2 sourcesDecomposing code into very small methods can go too far, producing shallow interfaces and entangled methods that are harder to read than one longer method
Leans partly right“Small Functions Have Problems”
1 of 2 sourcesMany widely repeated software engineering facts trace back to sources that are missing, measure something else, or are methodologically flawed
Leans partly right“There are many things in software we believe are true but very little we know.”
1 of 3 sourcesSustained crunch lowers productivity and employee happiness
Leans right“Impact of a Night of Sleep Deprivation on Novice Developers Performance”
1 of 4 sources
cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion
GitHub · novelty 2.78Muratori and Martin converge: clean-code structures do cost cycles, most business software can afford them, Clean Code teaching neglected performance, tests should be selective, and OO versus switch is a symmetric trade-off.
Choosing the right algorithm improves efficiency by many orders of magnitude while cycle-level tuning gives about one
Leans right“Cycle-lean code can increase efficiency by an order of magnitude; but the right choice of algorithm can increase efficiency by many orders of magnitude.”
only this sourceClean Code teaching gives performance almost no attention, so its audience learns to ignore it
Leans right“not a single one of the things you mentioned here are discussed in the nine hour runtime”
only this sourceInteractive and visual behaviour such as GUIs and game feel cannot practically be test-driven because the correct answer is not known up front
Leans right“I cannot practically write tests for things that I have to see in order to know that they work. GUIs, Game behaviors, Hardware interactions, etc.”
only this sourcePolymorphism makes adding new types easy while switch statements make adding new operations easy; neither is a free win
Leans right“OO (Operand Primal) is a great way to add types to existing functions without changing those functions.”
only this sourceFor most software, conserving programmer time matters more than conserving CPU cycles, so readability-first practices pay off
Leans partly right“It is economically better for most organizations to conserve programmer cycles than computer cycles.”
only this sourceDependency inversion via polymorphism protects high-level policy from recompilation and redeployment when low-level details change
Leans partly right“it prevents changes at to low level modules from forcing a wave of recompilation and redeployment from sweeping through the system towards higher level modules”
only this sourceApplying design patterns such as factories everywhere makes code harder to understand than direct code
Leans partly right“the idea of structuring code around swappable types is generally wrong”
1 of 2 sourcesHow much to invest in tests depends on required feedback frequency, fidelity, overhead and the expected lifespan of the code.
Untestable“tests that you don't use, or that don't find bugs, or that took longer to write and maintain than the number of bugs they prevented”
1 of 3 sourcesPreferring runtime polymorphism over switch statements makes code slower by forcing pointer indirection and hiding the code path from the compiler
Leans right“Indeed, using those structures can cost you a lot of nanoseconds. They are not efficient at the nanosecond level.”
1 of 5 sourcesA trustworthy automated test suite lets developers change and deploy code without fear
Leans partly right“When I have a suite of tests that I trust, and that has high coverage, I can refactor that code without fear.”
1 of 5 sources
code.talks 2023 - Our journey from Gitflow to Trunk Based Development
code.talks (ehem. Developer Conference) · novelty 2.65Case study of a team moving from Gitflow to trunk-based development with feature flags and ephemeral per-branch environments, reporting more frequent releases and happier developers.
Reusing an old feature flag can switch on dormant code paths with catastrophic results
Leans right“they recycled an old future flag and when they turn it on the last machine that did not receive the new version”
only this sourceFeature flags carry an ongoing removal cost that teams must schedule and pay back
Leans right“we need to remove video Flex that there is an extra cost”
only this sourceRunning a CI server is not continuous integration if branches live for days or weeks
Leans right“it's not because you are using Jenkins GitHub gitlab Circle CI that you are doing continuous integration”
1 of 2 sourcesFeature flags let unfinished work merge to trunk and decouple deployment from release
Leans right“we are actually decoupling deployment from release”
1 of 2 sourcesTrunk-based development only works with a fast comprehensive test suite and same-day code review
Leans partly right“you need to have a pretty strong test Suite in terms of completeness a good coverage and it needs to execute fasts”
only this sourceEphemeral per-branch environments remove the bottleneck of shared test environments
Leans partly right“we remove the bottleneck okay it's been completely removed”
only this sourceTrunk-based development is unsuited to products that must tightly control released versions
Leans partly right“maybe trunk base development is not suitable for you and git flow still is a good option”
only this sourceDevelopers who deploy their own work to production are happier because they see its impact
Leans partly right“they are way much happier than before when they were just like okay I finished this feature somebody else is going to validate”
only this sourceLong-lived branches delay integration and produce merge conflicts that grow with team size
Leans right“we spend a lot of time to handle conflicts because we have so many branches”
1 of 4 sourcesTrunk-based development with one small change per release increases release frequency and makes rollbacks easier
Leans partly right“it also allows us to increase the release frequency to have much more stable iteration”
1 of 5 sources
Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024
NDC Conferences · novelty 2.38Austin Bingham explains mutation testing theory, its practical obstacles (runtime, equivalent mutants, unreachable code) and demonstrates the Cosmic Ray tool for Python.
Mutation score measures test suite quality better than coverage does
Leans right“the quality of your tests can be gauged by the percentage of mutations killed”
only this sourceMutation testing is too slow to run routinely without parallelisation or incremental selection
Leans right“it is just not practical to do on a frequent basis”
only this sourceEquivalent mutants cannot be detected automatically and require human judgment
Probably right“it is not really detectable in any practical way”
only this sourceLine coverage shows code was executed, not that the tests check its behaviour
Probably right“it's not really telling you that your tests are that you understand what your program is doing”
1 of 3 sourcesA surviving mutant reveals either a missing test or code that can be removed
Leans partly right“your tests are inadequate to protect this change this Behavior modifying change or the code that was mutated is extraneous”
only this sourceHigher-level behavioural tests make mutation testing more practical than many fine-grained unit tests
Unknown“when I have higher level tests that tests my functionality that that is probably one of the keys to Breaking the time barrier”
only this sourceFull line coverage is relatively easy to reach when a team is motivated
Leans partly right“that's actually relatively easy to get if you're if you're motivated to do it”
only this sourceWriting tests first forces the code to be decoupled and testable by construction
Leans partly right“good testing results in better design almost always in my experience”
1 of 6 sources
Physiological Effects of Crunch: A Look at the Science
GDC Festival of Gaming · novelty 2.29GDC talk reviewing peer-reviewed research on crunch: cognitive decline past moderate hours, net productivity loss, health damage, and sleep loss as intoxication.
Long working hours raise rates of injury, illness, cardiovascular disease and mental health problems through chronic stress.
Leans right“a very clear linear relationship between hours worked above 8 a day or 40 a week with greater incidence of injury or illness”
only this sourceCaffeine tolerance builds within days, so it cannot offset extended overtime.
Leans right“you reach caffeine tolerance shockingly quickly it takes about a week”
only this sourceCrunch does not improve product outcomes; it correlates with slightly worse ones.
Leans right“there is a very mild negative correlation between working overtime and making a successful game”
1 of 2 sourcesSleep deprivation impairs cognition like alcohol intoxication and blinds people to their own impairment.
Leans right“going without sleep it turns out physiologically is almost indistinguishable from drinking alcohol”
1 of 3 sourcesLetting workers choose their own hours improves satisfaction, health and productivity.
Leans partly right“allowing people flexible time over their schedules whether in crunch or not has basically nothing but positive effects”
only this sourceA full day of rest after a missed night of sleep does not restore performance to baseline.
Leans partly right“even after a full night's sleep and a full day off test subjects were not recovered all the way back to their baseline levels”
only this sourceFatigue raises the rate of catastrophic errors, so an overworked team can make net negative progress.
Leans partly right“the more fatigued someone is the more likely they are to make catastrophic errors”
1 of 2 sourcesCrunch is a symptom of poor planning, especially failing to schedule testing and iteration time
Leans partly right“the cause of crunch is usually not uh is usually not a skill problem or a laziness problem it's an unrealistic schedule”
1 of 2 sourcesSustained crunch lowers productivity and employee happiness
Leans right“once you get past 60 hours your cognitive function is actually worse than someone who wasn't working at all”
1 of 4 sources
Next: Critique - Google's Code Review Tool | Reaction (2.06), Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (2.05), Laurence Tratt: Another Non-Argument in Type Systems (1.88), Don’t Feature Branch | Dave Farley’s Weblog (1.82), Trunk Based Development (1.63).
Judged wrong
The claim's deciding verdict is "wrong". The stat line shows whether a study decided it or only the AI guess.
Estimation is a learnable skill: recording estimates and comparing them to outcomes calibrates future estimates
Leans wrongIndependent studies of the Personal Software Process, which records estimates and analyses deviations from actuals, found no improvement in estimation accuracy, and a feedback-and-lessons-learned programme likewise produced none versus untrained controls.
· denied 0 ·
Estimation is a learnable skill: recording estimates and comparing them to outcomes calibrates future estimates
Leans wrong- Software Estimation Is Hard. Do It Anyway. - Jacob Kaplan-Moss (jacobian.org)“If you get in the habit of breaking projects down and making timeline estimates, you can review those estimates against reality and recalibrate.”
- Leans partly right AI guessJorgensen's reviews find feedback and decomposition improve estimates modestly, but overconfidence persists even in experts.
- Leans wrong Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 2375-2389Independent studies of the Personal Software Process, which records estimates and analyses deviations from actuals, found no improvement in estimation accuracy, and a feedback-and-lessons-learned programme likewise produced none versus untrained controls.
- Leans partly right Jørgensen 2004 (expert estimation) lines 1092-1103The only software study found outcome feedback (estimate vs actual) did not improve accuracy, consistent with other domains, though it does improve assessment of estimate uncertainty; task-relation feedback is needed for accuracy gains.
Pairing's value cannot be proven scientifically because development output is too hard to measure, so teams must try it themselves
Leans wrongThe review describes research on particular practices like pair programming as at an intermediate or even mature state, and cites an earlier review calling pair programming supported by a well-established research stream; the evidence may be mixed, but the authors treat it as a scientifically studiable question, not an unmeasurable one.
· denied 0 ·
Pairing's value cannot be proven scientifically because development output is too hard to measure, so teams must try it themselves
Leans wrong- On Pair Programming (martinfowler.com)“Staunch opponents of pairing will always find ways to poke holes into the reproducibility”
- Leans wrong Dybå & Dingsøyr 2008 (agile review) lines 1315-1319The review describes research on particular practices like pair programming as at an intermediate or even mature state, and cites an earlier review calling pair programming supported by a well-established research stream; the evidence may be mixed, but the authors treat it as a scientifically studiable question, not an unmeasurable one.
- Untestable AI guessEpistemic framing.
Per-change pull request gates break down under continuous delivery with many deployments a day
Leans wrongMore than 25,000 Google developers put about 20,000 changes a day through mandatory per-change review into one trunk, with median latency under 4 hours and developers confirming the process works well at scale; one highly tuned company, not a GitHub pull-request setup.
· denied 0 ·
Per-change pull request gates break down under continuous delivery with many deployments a day
Leans wrong- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“If all of these four are to create pull requests all the time for all of the small changes, the team will break down immediately”
- Leans partly right AI guessGoogle and others sustain high deploy rates with change-based review; the claim holds only when review latency is high.
- Leans wrong Sadowski et al. 2018 (Google code review) lines 31-34More than 25,000 Google developers put about 20,000 changes a day through mandatory per-change review into one trunk, with median latency under 4 hours and developers confirming the process works well at scale; one highly tuned company, not a GitHub pull-request setup.
- Leans partly right DORA State of DevOps 2019 lines 1297-1299DORA says approving each individual change by an external board is impossible in the continuous paradigm, but it recommends shifting to per-change peer review by a teammate during development, so the breakdown applies to external gates, not to peer review itself.
Relative-size estimation is more accurate than time estimates for complex or uncertain work
Leans wrongFew studies exist; relative estimation improved accuracy in some contexts and worsened it in others, and the authors conclude relative predictions are generally not more accurate than absolute ones and bias estimates when tasks differ much in size.
· denied 0 ·
Relative-size estimation is more accurate than time estimates for complex or uncertain work
Leans wrong- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“This is more accurate for complex or uncertain work and avoids the pitfalls of timebased estimates which can quickly become inaccurate.”
- Leans wrong Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4210-4227Few studies exist; relative estimation improved accuracy in some contexts and worsened it in others, and the authors conclude relative predictions are generally not more accurate than absolute ones and bias estimates when tasks differ much in size.
- Leans partly right AI guessComparison-based estimation has some support, but experiments do not show story points beating well-calibrated hour estimates.
Time spent estimating is wasted and better spent building
Leans wrongThe review's authors reject the NoEstimates position that predictions are a waste as unrealistic, noting that extrapolating progress is itself a time prediction and that judgement-based predictions are on average fairly accurate (20-30% error).
· denied 0 ·
Time spent estimating is wasted and better spent building
Leans wrong- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“I believe all estimates are a waste of valuable time that could be better spent actually building something.”
- Leans wrong Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4313-4321The review's authors reject the NoEstimates position that predictions are a waste as unrealistic, noting that extrapolating progress is itself a time prediction and that judgement-based predictions are on average fairly accurate (20-30% error).
- Leans partly right AI guessEstimation has coordination and prioritization value; NoEstimates works in some contexts but not where commitments are needed.
Contested
Claims some sources assert and others deny.
Slow UI-driven end-to-end test suites are fragile and break on cosmetic changes
Leans rightFlaky and brittle UI tests are extensively documented in industry reports and flaky-test research, which is why the test pyramid pushes coverage downward.
· ·
Slow UI-driven end-to-end test suites are fragile and break on cosmetic changes
Leans right- 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) (DevTernity Conference)“the tools all break because I changed the way that my widgets work”
- SWETUGG 2015 - Is TDD Dead? What are the alternatives? - Emily Bache (Swetugg)“it's actually very difficult to get the threading and the timing right for a machine to use the user interface”
- Clean Coder Blog (blog.cleancoder.com)“Databases and GUIs are slow.”
- DENIES TDD is dead. Long live testing. (DHH) (dhh.dk)“Which btw do not need to be so slow any more, thanks to advances in parallelization and cloud runner infrastructure”
- Probably right AI guessFlaky and brittle UI tests are extensively documented in industry reports and flaky-test research, which is why the test pyramid pushes coverage downward.
All claims
Showing 413 of 413 claims.
Microservices cost more in the short term and rarely save money
Leans rightOperational overhead of distributed systems is well documented and several public cases of consolidating back to a monolith cite cost; evidence is case studies not controlled data.
· denied 0 ·
Microservices cost more in the short term and rarely save money
Leans right- When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 (GOTO Conferences)“microsoft's architectures will very rarely save you money they do not save you money”
- Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard (NDC Conferences)“For a twoperson team, you do not need this.”
- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“as soon as I create separate processes I do distribution and that always implies a cost”
- Microservice Premium (martinfowler.com)“microservices introduce complexity on their own account. This adds a premium to a project's cost and risk”
- Back to the Monolith: Why Did Amazon Dump Microservices? | Nordic APIs | (Nordic APIs)“This monolithic conversion ended up saving their organization 90% on their monthly AWS bill.”
- Serverless was a big mistake... says Amazon (Fireship)“they saved 90 on their Amazon web services bill by switching from serverless microservices to an Old-Fashioned monolith architecture”
- David Heinemeier Hansson: Microservices vs. Monolith (CultRepo)“you are paying a heavy complex city tax for an environment and a context that just doesn't exist in your organization”
- Deconstructing the Monolith - Shopify (Shopify)“communicating between services means crossing the network, which adds latency and decreases reliability with every call”
- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“splitting a single monolithic application into a distributed system of services increases the overall complexity considerably”
- The Majestic Monolith (Signal v. Noise)“Every time you extract a collaboration between objects to a collaboration between systems, you’re accepting a world of hurt with a myriad of liabilities”
- Probably right AI guessOperational overhead of distributed systems is well documented and several public cases of consolidating back to a monolith cite cost; evidence is case studies not controlled data.
- Leans partly right Soldani et al. 2018 (microservices review) lines 1029-1037Industrial sources name higher compute and network resource consumption than monoliths as the primary operational pain (network cited by 17 of 51), supporting higher running cost; no source quantifies money or distinguishes short from long term.
Writing tests first forces the code to be decoupled and testable by construction
Leans partly rightStudies of TDD find modest improvements in some internal quality metrics such as coupling and cohesion, with mixed results overall and effects that depend on developer experience.
· denied 0 ·
Writing tests first forces the code to be decoupled and testable by construction
Leans partly right- Why you should write tests first - Uncle Bob (Dev Tools Made Simple)“you cannot write the code that's hard to test if you write the test first”
- Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024 (NDC Conferences)“good testing results in better design almost always in my experience”
- Accelerate: The State of DevOps with Dr. Nicole Forsgren (Scott Hanselman)“when developers help write tests we write better and more testable code”
- Clean Coder Blog (blog.cleancoder.com)“Writing tests first requires decoupling that other testing strategies do not”
- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“every small part of the system must be designed to be testable, and testability requires decoupling”
- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“I was quite surprised at how much better separated my code become when I started writing unit testing as I was developing.”
- Leans partly right AI guessStudies of TDD find modest improvements in some internal quality metrics such as coupling and cohesion, with mixed results overall and effects that depend on developer experience.
Pairing or mobbing puts the best of each participant into the code and rarely the worst
Leans partly rightPair programming meta-analyses show modest quality gains at higher effort, with effects depending on task complexity and pair expertise; no measurement exists for mobs.
· denied 0 ·
Pairing or mobbing puts the best of each participant into the code and rarely the worst
Leans partly right- Mob Programming, A Whole Team Approach - Woody Zuill (NDC Conferences)“when I work with a pair the best of both of us and almost never the worst of either of us gets into it”
- Why Pull Requests Are a Bad Idea • Dave Farley • GOTO 2022 (GOTO Conferences)“pairs make progress and nearly but not quite twice the rate of an individual working alone but they also produce work with significantly fewer defects”
- You Must Be CRAZY To Do Pair Programming (Modern Software Engineering)“all of the studies that I've ever seen show this increase in quality”
- On Pair Programming (martinfowler.com)“When we pair, we have 4 eyes on the little and the bigger things as we go, more errors will get caught”
- Pair Programming Misconceptions (martinfowler.com)“a pair is actually more productive that two separate developers. This is due to the continuous discussion and review”
- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“on the defects side we have very few defects in production”
- Leans partly right AI guessPair programming meta-analyses show modest quality gains at higher effort, with effects depending on task complexity and pair expertise; no measurement exists for mobs.
A single-process monolith is the right default and microservices need a specific justifying outcome
Leans rightA footnote states it is important to avoid premature decomposition of new systems into services, which can inhibit delivery performance, citing Fowler's MonolithFirst; this is an authorial assertion, not a measured result.
· denied 0 ·
A single-process monolith is the right default and microservices need a specific justifying outcome
Leans right- When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 (GOTO Conferences)“my default is a single process monolithic application simple deployment topology you sidestep lots of issues”
- Microservice Premium (martinfowler.com)“The majority of software systems should be built as a single monolithic application.”
- Monolith First (martinfowler.com)“you should build a new application as a monolith initially, even if you think it's likely that it will benefit from a microservices architecture later on”
- Deconstructing the Monolith - Shopify (Shopify)“no architecture is often the best architecture in the early days of a system”
- The Majestic Monolith can become The Citadel (Signal v. Noise)“the vast majority of web applications will continue to be served well by The Majestic Monolith for their entire lifespan”
- The Majestic Monolith (Signal v. Noise)“Integrate your systems until it’s impossible for one person to hold it all in their head.”
- Leans right DORA State of DevOps 2019 lines 1091-1092A footnote states it is important to avoid premature decomposition of new systems into services, which can inhibit delivery performance, citing Fowler's MonolithFirst; this is an authorial assertion, not a measured result.
- Untestable AI guessArchitecture advice whose correctness depends on context; widely endorsed but not something a study can settle.
Smaller changes mean less rework, fewer incidents and faster restoration
Leans partly rightDORA's small-batch findings and defect-per-line research support the direction, but the evidence is correlational and vendor-sourced.
· denied 0 ·
Smaller changes mean less rework, fewer incidents and faster restoration
Leans partly right- DORA Metrics: We've Been Using Them Wrong (LinearB)“smaller PRS means less churn because there's less to review less back and forth”
- Accelerate: The State of DevOps with Dr. Nicole Forsgren (Scott Hanselman)“when you do introduce code you're introducing very very small pieces of code so that introduction is small it has a small blast radius”
- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“they have a much smaller blast radius and it's much much easier to identify what those changes are”
- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“each change is so small and simple and easy to reason about, it's trivial to to revert it if you need to”
- Small CLs (eng-practices)“Since you’re making fewer changes, it’s easier for you and your reviewer to reason effectively about the impact of the CL”
- The ideal PR is 50 lines long (Graphite)“They’re 15% less likely to be reverted than 250-line changes”
- Leans partly right AI guessDORA's small-batch findings and defect-per-line research support the direction, but the evidence is correlational and vendor-sourced.
- Leans partly right DORA State of DevOps 2019 lines 1272-1283DORA tested whether extra approvals lead to larger, less frequent batches with higher impact and higher change failure rates and reports the hypothesis was supported, linking batch size to incident rate; rework and restoration time are not tied to change size directly.
Test-first development reduces time spent debugging
Leans partly rightControlled studies show TDD lowers defect density at some cost in development time; direct measurements of debugging time are scarce.
· denied 0 ·
Test-first development reduces time spent debugging
Leans partly right- Why you should write tests first - Uncle Bob (Dev Tools Made Simple)“it reduces your debug time”
- Clean Coder Blog (blog.cleancoder.com)“We spend less time debugging.”
- 95%-ile isn't that good (danluu.com)“I now test each function as I write it to make sure they work”
- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“The benefit comes because unit tests expose bugs earlier and in an environment where they are easier to track down.”
- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“With unit tests, you get feedback immediately if you make a mistake.”
- Leans partly right AI guessControlled studies show TDD lowers defect density at some cost in development time; direct measurements of debugging time are scarce.
A trustworthy automated test suite lets developers change and deploy code without fear
Leans partly rightSurvey research such as DORA links reliable test automation with higher delivery confidence and performance, but the direction of causation is not isolated.
· denied 0 ·
A trustworthy automated test suite lets developers change and deploy code without fear
Leans partly right- Why you should write tests first - Uncle Bob (Dev Tools Made Simple)“the most profound effect is that button and the fact that you trust it”
- TW Hangouts | Is TDD dead? [Part III] (Thoughtworks)“to be able to run the tests and go okay I don't have to worry about stuff breaking elsewhere is such a magnificent plus”
- Clean Coder Blog (blog.cleancoder.com)“developers can quickly and easily clean the code without fear of breaking anything”
- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“Enabling fearless refactoring? BINGO! This is the where almost all of the benefits from unit testing come from”
- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“When I have a suite of tests that I trust, and that has high coverage, I can refactor that code without fear.”
- Leans partly right AI guessSurvey research such as DORA links reliable test automation with higher delivery confidence and performance, but the direction of causation is not isolated.
- Leans partly right DORA State of DevOps 2019 lines 1006-1015DORA 2019 finds automated testing predicts continuous integration, which predicts continuous delivery, and frames the mechanism as developers trusting that a passing suite means deployable code; the fear/confidence effect itself is asserted, not measured, and the data are survey self-reports.
Mob programming onboards new members quickly and spreads knowledge so the team does not depend on one person
Leans partly rightCase studies and surveys of mob teams consistently report faster knowledge spread, but no study measures onboarding time against a control.
· denied 0 ·
Mob programming onboards new members quickly and spreads knowledge so the team does not depend on one person
Leans partly right- Mob Programming, A Whole Team Approach - Woody Zuill (NDC Conferences)“it's a very fast way to onboard new team members”
- You Must Be CRAZY To Do Pair Programming (Modern Software Engineering)“i know of no better way of spreading learning”
- On Pair Programming (martinfowler.com)“Having two people work on a piece of the code helps the team spread knowledge on technology and domain on a daily basis”
- Mob Programming Basics – Mob Programming (mobprogramming.org)“we transfer knowledge quickly througout the team which quickly improves everyones coding skills”
- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“I have never seen teams learn as quickly or as effectively without bare programming as with it.”
- Leans partly right AI guessCase studies and surveys of mob teams consistently report faster knowledge spread, but no study measures onboarding time against a control.
Static typing catches type errors at compile time before code reaches users
Probably rightJournal version of the same experiment: the compiler points to the exact location of a type error, whereas the dynamic system finds it at run time with symptoms that may appear far from the cause, which is why Groovy subjects needed more navigation and more test runs.
· denied 0 ·
Static typing catches type errors at compile time before code reaches users
Probably right- Code Faster or Safer? Static vs Dynamic Typing (deep dive dev)“type errors happen at compilation time before the code is ever ran”
- Why Static Typing Came Back • Richard Feldman • GOTO 2022 (GOTO Conferences)“all of these things do not have any nil null or undefined errors in production all of them 100 have been caught at build time”
- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“it has barely any runtime performance impact, it’s more stable, and it provides advanced features like interfaces”
- Laurence Tratt: Dynamically Typed Languages (tratt.net)“statically typed programs have an implicit form of documentation within them, which happens to be machine checkable”
- Review: A Philosophy of Software Design by John Ousterhout (Yevgeniy Brikman)“A very closely related idea that this book misses is to “make illegal states unrepresentable.””
- Very likely right AI guessTrue by definition for the class of errors the type checker covers; studies estimate roughly fifteen percent of real JavaScript bugs would have been caught by a type checker, so the benefit is real but bounded.
- Probably right Kleinschmager et al. 2012 (static types) lines 246-249In the type-error tasks the Java version simply failed to compile while the Groovy version only surfaced the error as a failing test at run time; the experiment is built on exactly this compile-time-versus-run-time difference.
- Probably right Hanenberg et al. 2014 (static types) lines 1365-1371Journal version of the same experiment: the compiler points to the exact location of a type error, whereas the dynamic system finds it at run time with symptoms that may appear far from the cause, which is why Groovy subjects needed more navigation and more test runs.
- Leans right Gao, Bird & Barr 2017 (types vs JS bugs) lines 24-31Adding Flow or TypeScript annotations to 400 fixed public JavaScript bugs (which had already survived testing and review) made the type checker flag 15% of them, so those would have been caught before release; the other 85% are not type errors.
- Leans right Ray et al. 2014 (languages on GitHub) lines 600-605In the GitHub corpus 122 runtime-error bug fixes appear in JavaScript projects but not TypeScript ones, while TypeScript projects log more type-related fixes because the compiler flags them during development; observational and the TypeScript sample was later found to be mislabelled.
Trunk-based development with one small change per release increases release frequency and makes rollbacks easier
Leans partly rightDORA data correlate trunk-based development with better delivery metrics and small changes are easier to revert, but the gains are correlational and the team's own numbers are self-reported.
· denied 0 ·
Trunk-based development with one small change per release increases release frequency and makes rollbacks easier
Leans partly right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“it also allows us to increase the release frequency to have much more stable iteration”
- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“these are the ones that we have seen are predictive of your ability to develop and deliver software with both speed and stability”
- Why Pull Requests Are a Bad Idea • Dave Farley • GOTO 2022 (GOTO Conferences)“if you don't check that your changes work alongside everybody else's at least once per day then statistically you produce lower quality software more slowly”
- DORA | Capabilities: Trunk-based development (dora.dev)“teams achieve higher levels of software delivery and operational performance (delivery speed, stability, and availability) if they follow these practices”
- Trunk Based Development (trunkbaseddevelopment.com)“This ensures the codebase is always releasable on demand and helps to make Continuous Delivery a reality.”
- Probably partly right AI guessDORA data correlate trunk-based development with better delivery metrics and small changes are easier to revert, but the gains are correlational and the team's own numbers are self-reported.
- Leans partly right DORA State of DevOps 2019 lines 1039-1041Survey data show trunk-based development with frequent check-in and deployment to production is predictive of software delivery performance (deploy frequency, lead time, change failure rate, time to restore); rollback ease is not measured.
Coordination cost grows faster than linearly with team count on a shared codebase, which service boundaries contain
Leans partly rightCommunication-path growth is the classic Brooks argument and Conway-style case studies support boundaries helping, but there is no controlled measurement of microservices reducing coordination.
· denied 0 ·
Coordination cost grows faster than linearly with team count on a shared codebase, which service boundaries contain
Leans partly right- When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 (GOTO Conferences)“i believe it gets exponentially harder to coordinate people's team size increases”
- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“microservices in my opinion never were a thing you would do because you wanted to write good software”
- David Heinemeier Hansson: Microservices vs. Monolith (CultRepo)“microservices is a pattern that is about organizational structure much more than it is about how to organize your code”
- The Majestic Monolith can become The Citadel (Signal v. Noise)“Maybe you’re dealing with very large teams that constantly have people tripping over each other”
- The Majestic Monolith (Signal v. Noise)“M/SOA fits the organizational shape of very large corporations.”
- Leans partly right AI guessCommunication-path growth is the classic Brooks argument and Conway-style case studies support boundaries helping, but there is no controlled measurement of microservices reducing coordination.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 2779-2788Coordination and administration grow nonlinearly with team and organisation size (e.g. administrative staff scales as academic staff^1.3; +50% total time from two- to four-person teams); whether service boundaries contain it is not studied.
- Leans partly right Bird et al. 2011 (code ownership) lines 405-411More contributors to a Windows binary, especially low-expertise minor ones, means more pre- and post-release failures after controlling for size, churn and complexity, which the authors attribute to coordination and communication breakdowns; growth rate and the effect of service boundaries are not tested.
Small pull requests are picked up and merged faster
Leans rightAt Google the median wait for first reviewer feedback is under an hour for small changes versus about 5 hours for very large ones; overall median review latency is under 4 hours with a median change of 24 lines.
· denied 0 ·
Small pull requests are picked up and merged faster
Leans right- DORA Metrics: We've Been Using Them Wrong (LinearB)“PR's under 200 dip size under 200 lines of code changes get merged twice as fast”
- Critique - Google's Code Review Tool | Reaction (NeetCodeIO)“it's easy to review someone's poll request if you send small poll requests”
- DORA | Capabilities: Trunk-based development (dora.dev)“it is hard to reason about the impact of large changes on a system through inspection, defects are likely to escape the attention of reviewers”
- Small CLs (eng-practices)“It’s easier for a reviewer to find five minutes several times to review small CLs than to set aside a 30 minute block”
- The ideal PR is 50 lines long (Graphite)“50-line code changes are reviewed and merged ~40% faster than 250-line changes.”
- Probably right AI guessCode review studies at Google and Microsoft consistently show review latency and defect density rise with change size, in line with the vendor data.
- Leans right Sadowski et al. 2018 (Google code review) lines 358-362At Google the median wait for first reviewer feedback is under an hour for small changes versus about 5 hours for very large ones; overall median review latency is under 4 hours with a median change of 24 lines.
Some programmers are vastly more productive than their typical peers
Leans partly rightInterpersonal work time differences are real and larger than most experimental effects, but the slowest-to-fastest-quarter ratio is rarely above 4 and the Grant/Sackman 28:1 figure (really 14:1) looks like an outlier; the author cautions that student populations may understate practical variability.
· denied 0 ·
Some programmers are vastly more productive than their typical peers
Leans partly right- Why The "10x Engineer" Is A Dangerous Myth (Modern Software Engineering)“I think the thing probably exists, but I think it's a dumb target”
- The “10x engineer:" 50 years ago and now (The Pragmatic Engineer)“We’ve all seen developers who seem to be a lot more productive than others.”
- Uncle Bob is Ruining Software (Hillel Wayne)“There are 10x programmers out there”
- Is the 10x Engineer a Myth? (James Peralta)“I think it's very very like very possible to be 10 times better than the average engineer”
- The 10x developer is NOT a myth (Yevgeniy Brikman)“the general finding that "There are order-of-magnitude differences among programmers" has been confirmed by many other studies of professional programmers”
- Leans partly right Prechelt 1999 (28:1 legend) lines 1204-1212Interpersonal work time differences are real and larger than most experimental effects, but the slowest-to-fastest-quarter ratio is rarely above 4 and the Grant/Sackman 28:1 figure (really 14:1) looks like an outlier; the author cautions that student populations may understate practical variability.
- Leans partly right AI guessLarge individual variation is consistently observed, but the specific tenfold figure traces to small studies from the 1960s and 70s.
- Leans partly right Prechelt 2000 (seven languages) lines 432-441Work-time bad/good ratios within a language ran 1.5 (C) to 3.2 (Perl), with three Java programmers at 40-63 hours against a 10-hour median; so a several-fold spread exists on one small task but not an order of magnitude in the typical case.
Most software effort goes into understanding, maintaining, extending and operating code rather than writing it
Leans rightMaintenance is generally estimated to consume well over half of lifecycle effort, though the exact figures are poorly sourced.
· denied 0 ·
Most software effort goes into understanding, maintaining, extending and operating code rather than writing it
Leans right- Why The "10x Engineer" Is A Dangerous Myth (Modern Software Engineering)“writing code is not the hard part. It never has been.”
- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“Programmers spend far more hours reading code than writing code, so the activity we want to ease is that of reading.”
- Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 (ACCU Conference)“here is not typing typing is not the bottleneck it is understanding”
- Pair Programming Misconceptions (martinfowler.com)“that would be true if the hardest part of programming was typing”
- Mob Programming Basics – Mob Programming (mobprogramming.org)“the real work of software development is the problem solving, not the typing”
- Probably right AI guessMaintenance is generally estimated to consume well over half of lifecycle effort, though the exact figures are poorly sourced.
- Leans right Tornhill & Borg 2022 (Code Red) lines 70-75Relays Glass's view that understanding existing code is the dominant maintenance activity and a field study finding developers spend about 60% of their time on program comprehension; secondary citations, not measured in this study.
- Leans right Buse & Weimer 2010 (readability) lines 25-32Introduction cites maintenance consuming over 70% of lifecycle cost and reading code being the most time-consuming maintenance activity; background citations rather than findings of this paper.
- Leans right Scalabrino et al. 2019 (understandability) lines 27-28Opens by citing a field study that developers spend most of their time (70%) understanding code; a secondary citation used as motivation.
Preferring runtime polymorphism over switch statements makes code slower by forcing pointer indirection and hiding the code path from the compiler
Leans rightReproducible on this microbenchmark; the gain in real programs depends on how much time hot loops spend in dispatch.
· denied 0 ·
Preferring runtime polymorphism over switch statements makes code slower by forcing pointer indirection and hiding the code path from the compiler
Leans right- "Clean" Code, Horrible Performance (computerenhance.com)“writing the code the old fashioned way rather than the “clean” code way — gave us an immediate 1.5x performance increase”
- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“when you actually look at what those transforms do to code it all just slows it down it never speeds it up”
- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“this revision of the code creates a serious performance regression: I measured a factor of 3-4x slowdown compared to either of the earlier revisions”
- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“Indeed, using those structures can cost you a lot of nanoseconds. They are not efficient at the nanosecond level.”
- "Clean" Code, Horrible Performance (Molly Rocket)“you immediately get what is effectively a 1.5 x performance increase for not really doing anything other than removing all of that extraneous stuff”
- Probably right AI guessReproducible on this microbenchmark; the gain in real programs depends on how much time hot loops spend in dispatch.
Hype drives teams to adopt microservices they do not need, adding cost and risk
Leans partly rightMicroservice envy is widely reported; its magnitude is unmeasured.
· denied 0 ·
Hype drives teams to adopt microservices they do not need, adding cost and risk
Leans partly right- Microservice Premium (martinfowler.com)“we've seen teams be too eager to embrace microservices”
- Back to the Monolith: Why Did Amazon Dump Microservices? | Nordic APIs | (Nordic APIs)“it's just a lot of buzz that people are attaching their assignment to, when honestly it's not gonna necessarily solve their problem”
- David Heinemeier Hansson: Microservices vs. Monolith (CultRepo)“apply them to companies of 5 10 or 100 developers you very often get really poor results”
- Deconstructing the Monolith - Shopify (Shopify)“Microservices surged in popularity in recent years and were touted as the end-all solution to all of the problems arising from monoliths.”
- The Majestic Monolith (Signal v. Noise)“The patterns that make sense for organizations orders of magnitude larger than yours, are often the exact opposite ones that’ll make sense for you.”
- Probably partly right AI guessMicroservice envy is widely reported; its magnitude is unmeasured.
Static typing suits safety- and performance-critical domains while dynamic typing suits fast-iteration domains
UntestableA description of adoption patterns and taste rather than a measurable benefit claim.
· denied 0 ·
Static typing suits safety- and performance-critical domains while dynamic typing suits fast-iteration domains
Untestable- Code Faster or Safer? Static vs Dynamic Typing (deep dive dev)“statically typed languages are more popular for things like Financial software systems programming and game development where safety and performance is preferred”
- Static vs Dynamic Typing (Boot dev)“you can build large production back-end systems in statically typed or dynamically typed languages it's certainly been done both ways”
- Laurence Tratt: Another Non-Argument in Type Systems (tratt.net)“Arguing whether static or dynamic typing is universally better or more expressive is therefore pointless.”
- Laurence Tratt: Dynamically Typed Languages (tratt.net)“it is my contention that both statically typed and dynamically typed languages are required for the increasingly broad range of tasks”
- Untestable AI guessA description of adoption patterns and taste rather than a measurable benefit claim.
Sustained crunch lowers productivity and employee happiness
Leans rightLabour economics and reviews of overtime research show output per hour falls and errors rise after sustained weeks beyond roughly fifty hours, and burnout studies link crunch to attrition.
· denied 0 ·
Sustained crunch lowers productivity and employee happiness
Leans right- Overtime & Crunching in Game Development (vs others) (Jason Weimann (GameDev))“basically driving down their productivity in my opinion and driving down employee happiness”
- Physiological Effects of Crunch: A Look at the Science (GDC Festival of Gaming)“once you get past 60 hours your cognitive function is actually worse than someone who wasn't working at all”
- What We Know We Don't Know (Hillel Wayne)“Impact of a Night of Sleep Deprivation on Novice Developers Performance”
- Why Crunch Mode Doesn’t Work: Six Lessons [2005] – IGDA (igda.org)“When used long-term, Crunch Mode slows development and creates more bugs when compared with 40-hour weeks.”
- Probably right AI guessLabour economics and reviews of overtime research show output per hour falls and errors rise after sustained weeks beyond roughly fifty hours, and burnout studies link crunch to attrition.
- Leans partly right Pencavel 2014 (working hours) lines 613-624122 weekly observations on WWI munitions workers: output is proportional to hours below 49 h/week, rises at a decreasing rate above it and peaks near 63 h, so output per hour falls once weeks run long; happiness was not measured and the workers were not programmers.
- Leans partly right DORA State of DevOps 2019 lines 1732-1738The report cites recovery research that feeling overworked blocks detachment from work, which leads to burnout and lower life satisfaction; it does not itself measure crunch or its effect on productivity.
Long-horizon task estimates are inaccurate and managers should not rely on them
Leans partly rightReview of time-prediction studies finds average error of 20-30% and no general bias, but software projects of at least 100 work hours show a median overrun of about 20%, so large-scope estimates are biased low rather than useless.
· denied 0 ·
Long-horizon task estimates are inaccurate and managers should not rely on them
Leans partly right- Overtime & Crunching in Game Development (vs others) (Jason Weimann (GameDev))“don't want to get estimates that are out that long they're just inaccurate they're not very useful”
- #NoEstimates (Allen Holub) (Allen Holub)“the main problem with estimates is that estimates are always based on guesswork you're always guessing”
- Story points considered harmful? 1 of 4 – Journey's start – Allan Kelly (allankelly.net)“we can't estimate. By “we” I mean humans.”
- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“Human beings are terrible at accurately estimating the time required to carry out work, even for tasks that they carry out on a regular basis.”
- Probably partly right AI guessEstimation research consistently finds large optimism bias and variance that grows with horizon, though structured estimation methods narrow the error.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 665-684Review of time-prediction studies finds average error of 20-30% and no general bias, but software projects of at least 100 work hours show a median overrun of about 20%, so large-scope estimates are biased low rather than useless.
Long-lived branches delay integration and produce merge conflicts that grow with team size
Leans rightThe mechanism is direct, and DORA research associates short-lived branches and trunk-based development with higher delivery performance.
· denied 0 ·
Long-lived branches delay integration and produce merge conflicts that grow with team size
Leans right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“we spend a lot of time to handle conflicts because we have so many branches”
- Don’t Feature Branch | Dave Farley’s Weblog (davefarley.net)“the merge problem it faces could be nothing at all or represent days or even weeks of effort”
- DORA | Capabilities: Trunk-based development (dora.dev)“large merges frequently introduce bugs or regressions”
- Trunk Based Development (trunkbaseddevelopment.com)“Shared branches off mainline/main/trunk are bad at any release cadence”
- Probably right AI guessThe mechanism is direct, and DORA research associates short-lived branches and trunk-based development with higher delivery performance.
- Leans partly right DORA State of DevOps 2019 lines 1059-1070DORA observes that merging patches sooner avoids rebases and that short-lived branches and small patches make everyone more productive, but it does not measure merge conflicts or how they scale with team size.
Slow UI-driven end-to-end test suites are fragile and break on cosmetic changes
Leans rightFlaky and brittle UI tests are extensively documented in industry reports and flaky-test research, which is why the test pyramid pushes coverage downward.
· ·
Slow UI-driven end-to-end test suites are fragile and break on cosmetic changes
Leans right- 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) (DevTernity Conference)“the tools all break because I changed the way that my widgets work”
- SWETUGG 2015 - Is TDD Dead? What are the alternatives? - Emily Bache (Swetugg)“it's actually very difficult to get the threading and the timing right for a machine to use the user interface”
- Clean Coder Blog (blog.cleancoder.com)“Databases and GUIs are slow.”
- DENIES TDD is dead. Long live testing. (DHH) (dhh.dk)“Which btw do not need to be so slow any more, thanks to advances in parallelization and cloud runner infrastructure”
- Probably right AI guessFlaky and brittle UI tests are extensively documented in industry reports and flaky-test research, which is why the test pyramid pushes coverage downward.
Architectural problems can be fixed by incremental refactoring without discarding the codebase.
Leans partly rightIncremental re-architecture is widely practiced and documented, but some structural changes are impractical without large rewrites.
· denied 0 ·
Architectural problems can be fixed by incremental refactoring without discarding the codebase.
Leans partly right- Joel Spolsky, Things You Should Never Do: Rewriting the Code from Scratch (ratherabstract)“Even fairly major architectural changes can be done without throwing away the code.”
- Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard (NDC Conferences)“We had to abandon that because the integration risk with the old billing system was just way too high.”
- Things You Should Never Do, Part I (Joel on Software)“These problems can be solved, one at a time, by carefully moving code, refactoring, changing interfaces.”
- Revisiting Spolsky's "Things You Should Never Do, Part I" (natashajaffe.substack.com)“at least with a refactor you get to deliver value along the way and stay alive”
- Probably partly right AI guessIncremental re-architecture is widely practiced and documented, but some structural changes are impractical without large rewrites.
Pair programming provides continuous code review without adding a separate review step that slows delivery.
Leans partly rightPairing does catch defects as they are written, but pairs cost more person-hours, so 'without slowing' depends on the measure.
· denied 0 ·
Pair programming provides continuous code review without adding a separate review step that slows delivery.
Leans partly right- Why Pull Requests Are a Bad Idea • Dave Farley • GOTO 2022 (GOTO Conferences)“that provides the second pair of eyes and the constant code review without slowing down the development process”
- You Must Be CRAZY To Do Pair Programming (Modern Software Engineering)“i could cure that by having some form of always-on review pair programming”
- DORA | Capabilities: Trunk-based development (dora.dev)“If your team practices pair programming, then the code has already been reviewed by a second person.”
- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“You don't you don't have to spend time on P request because the way the work is already done as part of peering.”
- Leans partly right AI guessPairing does catch defects as they are written, but pairs cost more person-hours, so 'without slowing' depends on the measure.
- Leans right DORA State of DevOps 2019 lines 1237-1241The report treats approval by a teammate during pair programming, before commit, as a valid lightweight way to implement peer review and segregation of duties, as an alternative to review before merge; this is a recommendation, not a measured comparison.
Most developers who try pair programming end up preferring it.
Leans partly rightWilliams' student studies found high post-trial preference, but professional adoption surveys show persistent dislike among many.
· denied 0 ·
Most developers who try pair programming end up preferring it.
Leans partly right- Why Pull Requests Are a Bad Idea • Dave Farley • GOTO 2022 (GOTO Conferences)“most people that I have seen try pair programming actually prefer it as a way of working”
- You Must Be CRAZY To Do Pair Programming (Modern Software Engineering)“they also had much higher confidence in their solutions”
- Pair Programming Misconceptions (martinfowler.com)“They gave it a try, expecting to hate it, and found they really liked it.”
- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“that's much more personally rewarding even to an old introvert like me”
- Leans partly right AI guessWilliams' student studies found high post-trial preference, but professional adoption surveys show persistent dislike among many.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 1167-1170Surveys in the review found 73% of XP employees say pairing speeds development and most students found it helpful, but the review summarises findings on pair programming effectiveness as mixed, with several developers calling it exhausting and one project drifting back to solo work.
Excellence in engineering takes different forms; a few well-judged lines can be worth more than high-volume output
UntestableA values statement about what counts as excellence.
· denied 0 ·
Excellence in engineering takes different forms; a few well-judged lines can be worth more than high-volume output
Untestable- Why The "10x Engineer" Is A Dangerous Myth (Modern Software Engineering)“there's room for lots of different definitions of excellence depending on what is needed by the team”
- Is the 10x Engineer a Myth? (James Peralta)“these projects are so complicated that the average engineer couldn't even solve that project”
- The 10x Programmer Myth (Simple Thread)“By avoiding a lot of extra software and overly complex processes, these developers can save their teams countless hours.”
- The 10x developer is NOT a myth (Yevgeniy Brikman)“You become a 10x programmer not by doing an order of magnitude more work, but by making better decisions an order of magnitude more often.”
- Untestable AI guessA values statement about what counts as excellence.
Reviewer defect-finding effectiveness drops sharply once a single review exceeds a few hundred lines
Leans rightThe SmartBear Cisco field study found defect density per line falling past roughly 200-400 lines per review, though it is a single vendor-run industrial dataset rather than a controlled experiment.
· denied 0 ·
Reviewer defect-finding effectiveness drops sharply once a single review exceeds a few hundred lines
Leans right- The Death of the Code Review: What the Data Actually Says — Laurie Voss, Arize AI (AI Engineer)“reviewers stop finding defects effectively if they try to read more than 400 lines of code in one sitting”
- The ideal PR is 50 lines long (Graphite)“There’s a practical limit to how much code your reviewer is willing to read - I suspect that 2k lines is the point”
- Best Practices for Code Review (smartbear.com)“beyond 400 LOC, the ability to find defects diminishes”
- Probably right AI guessThe SmartBear Cisco field study found defect density per line falling past roughly 200-400 lines per review, though it is a single vendor-run industrial dataset rather than a controlled experiment.
- Leans partly right McIntosh et al. 2014 (review coverage) lines 604-611Changes approved faster than 200 lines per hour ('hastily reviewed') are associated with more post-release defects in Qt 5.1.0, and only 10% of such changes are needed before a component is expected to have a defect; this is about review rate, not a fixed lines-per-review threshold.
- Leans partly right Sadowski et al. 2018 (Google code review) lines 405-412Google data show comments per change keep rising with size up to about 1250 lines before falling (large changes are generated code or deletions); the paper cites prior work that useful comments decrease with size but does not measure defect-finding per line itself.
Static typing yields better runtime performance because the compiler knows each variable's memory layout
Leans partly rightConflates typing with ahead-of-time compilation; static languages are usually faster, but JIT compilers make dynamic languages competitive and types are only one of several causes.
· denied 0 ·
Static typing yields better runtime performance because the compiler knows each variable's memory layout
Leans partly right- Code Faster or Safer? Static vs Dynamic Typing (deep dive dev)“static typing leads to better performance while Dynamic typing is usually slower”
- Why Static Typing Came Back • Richard Feldman • GOTO 2022 (GOTO Conferences)“there's no way to get a dynamically typed language to be as fast as the fastest possible statically type language”
- Laurence Tratt: Dynamically Typed Languages (tratt.net)“There is little doubt that, in practice, equivalent programs in dynamically typed languages are slower than in statically typed languages.”
- Probably partly right AI guessConflates typing with ahead-of-time compilation; static languages are usually faster, but JIT compilers make dynamic languages competitive and types are only one of several causes.
- Leans partly right Prechelt 2000 (seven languages) lines 145-150C/C++ ran faster than Java (p=0.074) and tended to beat scripts (p=0.15), but statically typed Java was not significantly faster than the dynamically typed scripts overall and scripts tended to be faster than Java in the search phase, so the speed advantage tracks the language implementation, not static typing as such (JDK 1.2 era).
Dynamic typing is faster for prototyping and rapid iteration
Leans partly rightScripts (Perl, Python, Rexx, Tcl) took a median 3.1 hours versus 10.0 hours for C, C++ and Java and were half as long, but the author attributes this to built-in associative arrays and the absence of declarations, times were self-reported for the script group, and the result is explicitly limited to the phonecode problem.
· denied 0 ·
Dynamic typing is faster for prototyping and rapid iteration
Leans partly right- Code Faster or Safer? Static vs Dynamic Typing (deep dive dev)“dynamic typing is better for prototyping and fast iteration”
- Static vs Dynamic Typing (Boot dev)“when we don't have to specify types as we're writing our code we're able to write the code a little more quickly”
- Laurence Tratt: Dynamically Typed Languages (tratt.net)“Such simplicity makes both learning and using dynamically typed languages simpler, in general, than statically typed languages”
- Leans partly right AI guessControlled experiments by Hanenberg and others found no consistent development-time advantage for dynamic typing, and static types sometimes sped tasks up, so the advantage is at best small and task-dependent.
- Leans partly right Prechelt 2000 (seven languages) lines 438-441Scripts (Perl, Python, Rexx, Tcl) took a median 3.1 hours versus 10.0 hours for C, C++ and Java and were half as long, but the author attributes this to built-in associative arrays and the absence of declarations, times were self-reported for the script group, and the result is explicitly limited to the phonecode problem.
- Leans partly right Hanenberg et al. 2014 (static types) lines 282-292Summarising the same series: an earlier experiment found the dynamic type system significantly faster for writing a scanner, and Mayer et al. found dynamic typing faster on simpler tasks with static typing paying off on larger ones; in the present experiment no task favoured dynamic typing.
- Leans partly right Ray et al. 2014 (languages on GitHub) lines 711-715Related-work summary: in Hanenberg's controlled experiment (undergraduates, custom language and IDE, parser task) the dynamically typed variant had shorter development time with no quality difference; a narrow lab setting, not iteration on real products.
Open-plan offices increase noise and visual distraction that impairs focused work
Leans rightLarge occupant surveys such as Kim and de Dear find open-plan workers less satisfied, especially on noise and privacy, with no offsetting gain in ease of interaction.
· denied 0 ·
Open-plan offices increase noise and visual distraction that impairs focused work
Leans right- Open plan offices are terrible for innovation and productivity (Nick Skillicorn)“people in open plan offices complained that they were significantly more prone to distraction”
- Open concept offices aren’t as productive as you think | Your Morning (CTV Your Morning)“there was more distractions happening because people who are taking personal calls for example you would hear all their business”
- Beyond Open Offices: The New Fog Creek Headquarters (blog.glitch.com)“the research is pretty clear that it is a massive booster of productivity for people in those kinds of technical roles”
- Probably right AI guessLarge occupant surveys such as Kim and de Dear find open-plan workers less satisfied, especially on noise and privacy, with no offsetting gain in ease of interaction.
- Leans partly right Bernstein & Turban 2018 (open offices) lines 132-141Not measured in the study; the paper's review cites prior workplace design research finding open offices reduce focus and psychological privacy, and the discussion notes employees isolating themselves with large headphones, so support here is second-hand.
Line coverage shows code was executed, not that the tests check its behaviour
Probably rightAcross 31,000 generated suites on five large Java systems, coverage correlated only low-to-moderately with mutation-detection effectiveness once suite size was controlled, so high coverage does not indicate an effective suite; executing a line does not reveal an error in it.
· denied 0 ·
Line coverage shows code was executed, not that the tests check its behaviour
Probably right- Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024 (NDC Conferences)“it's not really telling you that your tests are that you understand what your program is doing”
- TW Hangouts | Is TDD dead? [Part III] (Thoughtworks)“all your tests are [ __ ] green but they're not finding all the problems”
- Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard (NDC Conferences)“we effectively had a test suite that told us nothing about how well our codebase worked”
- Very likely right AI guessWell established; Inozemtseva and Holmes found coverage only weakly correlates with suite effectiveness once suite size is controlled.
- Probably right Inozemtseva & Holmes 2014 (coverage) lines 733-747Across 31,000 generated suites on five large Java systems, coverage correlated only low-to-moderately with mutation-detection effectiveness once suite size was controlled, so high coverage does not indicate an effective suite; executing a line does not reveal an error in it.
Software delivery speed and stability move together rather than trading off; the best teams get both.
Leans rightSix years of survey data show speed and stability are outcomes that enable each other: cluster analysis finds elite performers do significantly better on all four metrics and low performers worse on all, rather than trading throughput for stability.
· denied 0 ·
Software delivery speed and stability move together rather than trading off; the best teams get both.
Leans right- Accelerate: The State of DevOps with Dr. Nicole Forsgren (Scott Hanselman)“speed and stability move in tandem the highest performers get both there is no tradeoff”
- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“we find that software delivery performance is through putting stability and both are possible without trade-offs”
- Code Red: the Business Impact of Code Quality (InfoQ)“the shorter your cycle times for deployment, the fewer production failures”
- Probably partly right AI guessFive years of DORA survey clustering show throughput and stability correlate, but the data are self-reported and correlational rather than experimental.
- Leans right DORA State of DevOps 2019 lines 367-382Six years of survey data show speed and stability are outcomes that enable each other: cluster analysis finds elite performers do significantly better on all four metrics and low performers worse on all, rather than trading throughput for stability.
The 10x spread between fastest and slowest programmers is mostly noise: a programmer's own task-to-task variation is as large as the variation between programmers.
Leans partly rightRe-analysis of 61 experiments (614 subjects) finds the slowest-quarter to fastest-quarter median ratio is typically 2-3x and max/min ratios above 10 are rare, so the 10x spread is an artifact of best-vs-worst comparison; the report does not measure a programmer's own task-to-task variation.
· denied 0 ·
The 10x spread between fastest and slowest programmers is mostly noise: a programmer's own task-to-task variation is as large as the variation between programmers.
Leans partly right- Challenging the Myth of the 10x Programmer (Software Engineering Institute | Carnegie Mellon University)“the variation within a programmer within a programmer's own 10 programs was comparable to the variation between programmers”
- The Leprechauns of Software Engineering (adamtornhill.com)“the 10x productivity difference between programmers”
- The 10X Programmer, and other Myths (blog.glitch.com)“in many cases the research was done on very small groups and was not extremely representative”
- Leans partly right AI guessNichols' repeated-measures PSP data support this, but the sample is trained PSP students on small exercises and other studies still find stable individual differences.
- Leans partly right Prechelt 1999 (28:1 legend) lines 395-401Re-analysis of 61 experiments (614 subjects) finds the slowest-quarter to fastest-quarter median ratio is typically 2-3x and max/min ratios above 10 are rare, so the 10x spread is an artifact of best-vs-worst comparison; the report does not measure a programmer's own task-to-task variation.
Higher-level tests often pay back better than unit tests at finding bugs in integration-heavy code.
Leans partly rightIntegration and system tests do catch defects unit tests miss, but relative cost-effectiveness depends on the system and is not well quantified.
· denied 0 ·
Higher-level tests often pay back better than unit tests at finding bugs in integration-heavy code.
Leans partly right- SWETUGG 2015 - Is TDD Dead? What are the alternatives? - Emily Bache (Swetugg)“if you do them well they actually I think pay back very well in finding bugs often compared with unit tests”
- TDD is dead. Long live testing. (DHH) (dhh.dk)“I test active record models directly, letting them hit the database”
- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“unit tests are most valuable when you use them for algorithmic logic. They are not particularly useful for code that is more coordinating”
- Leans partly right AI guessIntegration and system tests do catch defects unit tests miss, but relative cost-effectiveness depends on the system and is not well quantified.
Estimates become deadlines, and deadlines drive the overtime that destroys sustainable pace.
Leans partly rightDeadline pressure is a documented driver of overtime, but the chain from estimate to crunch is not inevitable.
· denied 0 ·
Estimates become deadlines, and deadlines drive the overtime that destroys sustainable pace.
Leans partly right- #NoEstimates (Allen Holub) (Allen Holub)“as soon as you have estimates you have deadlines and as soon as you have deadlines you have people working 18-hour days”
- Q&A with Vasco Duarte on the #NoEstimates Book (InfoQ)“additionally promote many different dysfunctions in the organization. In the book I explain some of those dysfunctions such as: estimate bargaining, political games”
- Story Points Revisited (ronjeffries.com)“Because estimates are at least implicated in the application of undue pressure, I'd prefer to avoid them.”
- Leans partly right AI guessDeadline pressure is a documented driver of overtime, but the chain from estimate to crunch is not inevitable.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 1518-1550Time predictions change the work: software teams whose estimates were cut by up to 20% by clients were more productive, beyond 20% productivity fell, and estimates set 40% too low raised programmer error rates; overtime itself is not measured.
Short fixed-budget increments let the business decide early whether to continue or kill a project, reducing risk without estimates.
Leans partly rightIncremental funding does reduce exposure, but cancelling early still needs some forecast of what remains.
· denied 0 ·
Short fixed-budget increments let the business decide early whether to continue or kill a project, reducing risk without estimates.
Leans partly right- #NoEstimates (Allen Holub) (Allen Holub)“if we're doing the wrong thing we have the option of fixing it here really early”
- Q&A with Vasco Duarte on the #NoEstimates Book (InfoQ)“we can easily decide which stories to take into a sprint without sizing those stories”
- Story Points Revisited (ronjeffries.com)“the important thing in Real Agile is to pick the next few things to do, and do them promptly”
- Leans partly right AI guessIncremental funding does reduce exposure, but cancelling early still needs some forecast of what remains.
Sleep deprivation impairs cognition like alcohol intoxication and blinds people to their own impairment.
Leans rightDawson and Reid's equivalence studies and later work show sleep loss impairs performance like alcohol and degrades self-assessment.
· denied 0 ·
Sleep deprivation impairs cognition like alcohol intoxication and blinds people to their own impairment.
Leans right- Physiological Effects of Crunch: A Look at the Science (GDC Festival of Gaming)“going without sleep it turns out physiologically is almost indistinguishable from drinking alcohol”
- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“when you are sleep-deprived you can't tell your work is worse”
- Why Crunch Mode Doesn’t Work: Six Lessons [2005] – IGDA (igda.org)“subjects who slept four to six hours a night for fourteen consecutive nights showed significant deficits in cognitive performance”
- Very likely right AI guessDawson and Reid's equivalence studies and later work show sleep loss impairs performance like alcohol and degrades self-assessment.
Rewriting a working system from scratch throws away accumulated bug fixes and hands years of lead to competitors.
Leans partly rightNetscape, Borland and similar cases support it, but successful rewrites exist, so the harm depends on scale and context.
· denied 0 ·
Rewriting a working system from scratch throws away accumulated bug fixes and hands years of lead to competitors.
Leans partly right- Joel Spolsky, Things You Should Never Do: Rewriting the Code from Scratch (ratherabstract)“When you throw away code and start from scratch, you are throwing away all that knowledge, all those collected bug fixes, years of programming work.”
- Things You Should Never Do, Part I (Joel on Software)“When you throw away code and start from scratch, you are throwing away all that knowledge. All those collected bug fixes.”
- Revisiting Spolsky's "Things You Should Never Do, Part I" (natashajaffe.substack.com)“If this goes on for long enough your competitors will eat your lunch.”
- Probably partly right AI guessNetscape, Borland and similar cases support it, but successful rewrites exist, so the harm depends on scale and context.
Code is harder to read than to write, so programmers misjudge old code as a mess.
Leans partly rightComprehension consumes most maintenance effort in studies, supporting the premise; the inference about misjudging old code is plausible but untested.
· denied 0 ·
Code is harder to read than to write, so programmers misjudge old code as a mess.
Leans partly right- Joel Spolsky, Things You Should Never Do: Rewriting the Code from Scratch (ratherabstract)“It's harder to read code than to write it.”
- Things You Should Never Do, Part I (Joel on Software)“It's harder to read code than to write it.”
- Revisiting Spolsky's "Things You Should Never Do, Part I" (natashajaffe.substack.com)“Old code is hairy for a reason. Each one of those hairs represents a weird bug that was detected, fixed, and vetted in real life.”
- Leans partly right AI guessComprehension consumes most maintenance effort in studies, supporting the premise; the inference about misjudging old code is plausible but untested.
Most software projects run late or over budget, with few finishing early.
Leans partly rightSystematic review found no general overoptimism in software when small tasks are included, but projects of 100+ hours had a median overrun of about 20%, i.e. more than half of larger projects overran while small tasks were unbiased or overpessimistic.
· denied 0 ·
Most software projects run late or over budget, with few finishing early.
Leans partly right- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“In a study of nearly 6,000 projects, 17% of them go so badly that they threaten the existence of the company”
- Q&A with Vasco Duarte on the #NoEstimates Book (InfoQ)“Of the large systems that are completed, about 66% experience schedule delays & cost overrun”
- Software Estimation Is Hard. Do It Anyway. - Jacob Kaplan-Moss (jacobian.org)“One study by HBR found that one in six IT projects had cost overruns of over 200% and were late by almost 70%.”
- Leans partly right AI guessSurveys like Standish and McKinsey consistently report high overrun rates, though their methods are criticized.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 665-684Systematic review found no general overoptimism in software when small tasks are included, but projects of 100+ hours had a median overrun of about 20%, i.e. more than half of larger projects overran while small tasks were unbiased or overpessimistic.
Large-scale repository studies claiming some languages produce fewer bugs did not survive replication.
Very likely rightIndependent repetition and reanalysis of Ray et al.'s 729-project study: mislabelled TypeScript files, duplicated bitcoin forks, 36% false-positive bug labels and no multiple-testing correction; only 4 of the 11 claimed language-defect associations survive and even those have exceedingly small effect sizes.
· denied 0 ·
Large-scale repository studies claiming some languages produce fewer bugs did not survive replication.
Very likely right- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“they could not find any evidence that one language was better than any other language”
- Literature review on the benefits of static types (danluu.com)“the study appears to use a fundamentally flawed methodology that's not capable of revealing much information”
- What We Know We Don't Know (Hillel Wayne)“A Large Scale Study of Programming Languages and Code Quality in Github (original faulty study)”
- Very likely right Berger et al. 2019 (languages reproduction) lines 11-19Independent repetition and reanalysis of Ray et al.'s 729-project study: mislabelled TypeScript files, duplicated bitcoin forks, 36% false-positive bug labels and no multiple-testing correction; only 4 of the 11 claimed language-defect associations survive and even those have exceedingly small effect sizes.
- Probably right AI guessBerger et al.'s 2019 replication of Ray et al. removed most significant effects after fixing labeling errors.
Test-driven development produces no better quality or productivity than other disciplined testing approaches.
Probably rightBlind-analysis crossover replication with 21 graduate students found no difference between TDD and incremental test-last in tests written (p=1.00), external quality (p=.82) or productivity (p=.82), with negligible effect sizes, confirming the Oulu baseline experiment.
· denied 0 ·
Test-driven development produces no better quality or productivity than other disciplined testing approaches.
Probably right- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“test-driven development is no better or worse than any other disciplined controlled testing technique”
- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“To do that, we'd need empirical data about the frequency of good and bad outcomes from TDD. Unfortunately I'm not aware of any such data.”
- What We Know We Don't Know (Hillel Wayne)“Analyzing the Effects of Test Driven Development in GitHub (negative results)”
- Probably partly right AI guessMeta-analyses find small or no quality gains and some productivity loss, with large heterogeneity between studies.
- Probably right Fucci et al. 2016 (TDD replication) lines 432-447Blind-analysis crossover replication with 21 graduate students found no difference between TDD and incremental test-last in tests written (p=1.00), external quality (p=.82) or productivity (p=.82), with negligible effect sizes, confirming the Oulu baseline experiment.
- Leans right Fucci et al. 2017 (TDD dissection) lines 1034-1049Regression over 82 task sessions by 39 professionals: test-first sequencing was dropped from both the quality and productivity models, so incremental test-last and TDD look like substitutes once cycles are equally granular and uniform.
- Leans right Karac & Turhan 2018 (TDD review) lines 186-195Review of 15 years of TDD studies concludes there is no convincing evidence that TDD consistently fares better than other iterative development methods, and the secondary studies contradict each other on both quality and productivity.
How much to invest in tests depends on required feedback frequency, fidelity, overhead and the expected lifespan of the code.
UntestableA decision framework rather than a measurable claim.
· denied 0 ·
How much to invest in tests depends on required feedback frequency, fidelity, overhead and the expected lifespan of the code.
Untestable- TW Hangouts | Is TDD dead? [Part III] (Thoughtworks)“there's a Continuum of lifespan and and lifespan isn't just measured in years”
- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“tests that you don't use, or that don't find bugs, or that took longer to write and maintain than the number of bugs they prevented”
- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“Unit tests are not a goal in themselves. They are not useful in every situation.”
- Untestable AI guessA decision framework rather than a measurable claim.
Once a developer has internalised test-driven design thinking, the design benefit remains even if the tests are no longer written first
UnknownSelf-reported by experienced practitioners; no study separates the design effect of TDD from the habit it builds.
· denied 0 ·
Once a developer has internalised test-driven design thinking, the design benefit remains even if the tests are no longer written first
Unknown- Agile is Dead • Pragmatic Dave Thomas • GOTO 2015 (GOTO Conferences)“I think about that as I'm coding and the test doesn't have to exist it still drives the design”
- TDD is dead. Long live testing. (DHH) (dhh.dk)“The test-first part was a wonderful set of training wheels”
- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“working in small units, and then immediately writing after the fact tests, can give you all the above advantages”
- Unknown AI guessSelf-reported by experienced practitioners; no study separates the design effect of TDD from the habit it builds.
Rapid individual output often comes at the cost of maintainability that the rest of the team pays for
UnknownWidely reported anecdotally; no study measures downstream debt created by high-output individuals.
· denied 0 ·
Rapid individual output often comes at the cost of maintainability that the rest of the team pays for
Unknown- Why The "10x Engineer" Is A Dangerous Myth (Modern Software Engineering)“not conscious of the tech debt that they were fluffing off onto everyone else”
- The “10x engineer:" 50 years ago and now (The Pragmatic Engineer)“might do so by writing unmaintainable code that several developers will struggle to modify, later”
- The 10x Programmer Myth (Simple Thread)“really all they are doing is leaning on the rest of the team to make themselves look productive”
- Unknown AI guessWidely reported anecdotally; no study measures downstream debt created by high-output individuals.
Many widely repeated software engineering facts trace back to sources that are missing, measure something else, or are methodologically flawed
Leans partly rightOne documented instance: the famous 28:1 programmer variability figure is wrong (two methodological mistakes, correct value 14:1), rests on 12 subjects, was published in an obscure journal, and kept being quoted after Dickey debunked it in 1981.
· denied 0 ·
Many widely repeated software engineering facts trace back to sources that are missing, measure something else, or are methodologically flawed
Leans partly right- The Leprechauns of Software Engineering (adamtornhill.com)“that data is 1) often not there, 2) measures something else, or 3) suffers serious methodical problems”
- Uncle Bob is Ruining Software (Hillel Wayne)“I can't look into the research because there's almost no software engineering research out there.”
- What We Know We Don't Know (Hillel Wayne)“There are many things in software we believe are true but very little we know.”
- Very likely right AI guessBossavit's tracing of the cone of uncertainty, 10x and defect-cost claims to absent or weak sources is well documented.
- Leans partly right Prechelt 1999 (28:1 legend) lines 84-105One documented instance: the famous 28:1 programmer variability figure is wrong (two methodological mistakes, correct value 14:1), rests on 12 subjects, was published in an obscure journal, and kept being quoted after Dickey debunked it in 1981.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 1263-1272For agile specifically, the review grades the strength of evidence for benefits and limitations as very low: 25 of 33 studies lacked an appropriate recruitment strategy, 23 had no comparison group, only one mentioned researcher bias, and it calls this consistent with criticism of the sparse scientific support for agile claims.
- Leans partly right Berger et al. 2019 (languages reproduction) lines 1439-1442One worked example: the widely cited (119 papers, CACM research highlight) finding that language choice affects defect rates rested on mislabelled data, grep-based bug detection with 36% false positives and uncorrected multiple testing, and the reanalysis invalidated its key result.
Modular decomposition behind simple interfaces reduces the information a programmer must hold in mind at once
Leans rightWorking-memory limits are well established and information hiding has long-standing empirical support for change isolation.
· denied 0 ·
Modular decomposition behind simple interfaces reduces the information a programmer must hold in mind at once
Leans right- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“one of the most important ways to reduce the amount of information a programmer has to keep in their mind at once”
- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“due to complexity is always easier and cheaper to create two small pieces rather than one big piece”
- Review: A Philosophy of Software Design by John Ousterhout (Yevgeniy Brikman)“It reduces dependencies, as you can’t build dependencies on things that are hidden from you.”
- Probably right AI guessWorking-memory limits are well established and information hiding has long-standing empirical support for change isolation.
Code in unhealthy files has many times more defects and takes several times longer to change than healthy code
Leans partly rightAcross 30,737 files in 39 proprietary codebases, Alert (low Code Health) files had 15x the Jira defects of Healthy files and issues took 124% (about 2.2x) longer on average, so 'many times more defects' holds but 'several times longer' overstates the average time effect; observational, CodeScene-customer sample, vendor-authored, causality direction acknowledged as open.
· denied 0 ·
Code in unhealthy files has many times more defects and takes several times longer to change than healthy code
Leans partly right- Code Red: the Business Impact of Code Quality (InfoQ)“Red code has, on average, 15 times more defects than a healthy codebase.”
- Technical Debt Quadrant (martinfowler.com)“The whole point of good design and clean code is to make you go faster”
- Story Points Revisited (ronjeffries.com)“the team tries to go faster, and wind up skimping on code quality and on tests. They soon begin shipping more defects”
- Leans partly right AI guessThe Code Red paper on 39 codebases is correlational and from the vendor of the code-health metric; the direction matches other complexity-defect studies.
- Leans partly right Tornhill & Borg 2022 (Code Red) lines 362-389Across 30,737 files in 39 proprietary codebases, Alert (low Code Health) files had 15x the Jira defects of Healthy files and issues took 124% (about 2.2x) longer on average, so 'many times more defects' holds but 'several times longer' overstates the average time effect; observational, CodeScene-customer sample, vendor-authored, causality direction acknowledged as open.
- Leans partly right Buse & Weimer 2010 (readability) lines 532-547Functions scored less readable were more likely to carry FindBugs warnings, change next release, and be touched by bug-fix commits (f-measure 0.62-0.65, precision about 0.9, recall about 0.5) across 15 open-source Java projects; supports the defect half of the claim for low readability but measures nothing about time to change.
Service boundaries are usually wrong on the first attempt because the domain is not yet understood, so systems built as microservices from scratch tend to end in trouble
Leans partly rightConsistent practitioner anecdote from Fowler, Newman and others, but anecdotes suffer selection bias.
· denied 0 ·
Service boundaries are usually wrong on the first attempt because the domain is not yet understood, so systems built as microservices from scratch tend to end in trouble
Leans partly right- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“typically first wave of microservices is likely to be wrong”
- Monolith First (martinfowler.com)“Almost all the cases where I've heard of a system that was built as a microservice system from scratch, it has ended up in serious trouble.”
- Deconstructing the Monolith - Shopify (Shopify)“Designing a complex system of microservices before you have domain expertise is a risky move that too many software projects fall into.”
- Leans partly right AI guessConsistent practitioner anecdote from Fowler, Newman and others, but anecdotes suffer selection bias.
- Leans partly right Soldani et al. 2018 (microservices review) lines 526-53116 industrial sources recognise service dimensioning as a pain and all agree it is hard to identify bounded contexts because boundaries between business capabilities are not sharp; the review does not track whether greenfield microservice systems end in trouble.
- Leans right DORA State of DevOps 2019 lines 1091-1092The same footnote advises avoiding premature decomposition of new systems into services because it can inhibit delivery performance, which matches the claim's conclusion though the report offers no data on boundary mistakes.
Keeping modules in one process with enforced boundaries gets most of the modularity benefit without the distribution cost
Leans partly rightModular monolith reports from Shopify and Prime Video are positive, but in-process boundaries are known to erode without tooling.
· denied 0 ·
Keeping modules in one process with enforced boundaries gets most of the modularity benefit without the distribution cost
Leans partly right- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“this needs to have modularity but that modularity won't use a microservices approach it will instead split it up into larger pieces”
- Microservice Premium (martinfowler.com)“there's no reason why you can't make a single monolith with well defined module boundaries”
- Deconstructing the Monolith - Shopify (Shopify)“A modular monolith is a system where all of the code powers a single application and there are strictly enforced boundaries between different domains.”
- Leans partly right AI guessModular monolith reports from Shopify and Prime Video are positive, but in-process boundaries are known to erode without tooling.
Moving functionality across service boundaries is far harder than refactoring inside one process
Leans rightNo IDE-level refactoring crosses process or API boundaries; coordinated deploys and versioning are required.
· denied 0 ·
Moving functionality across service boundaries is far harder than refactoring inside one process
Leans right- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“when your components are servic as remote Communications then refactoring is much harder than within processed libraries”
- Monolith First (martinfowler.com)“Any refactoring of functionality between services is much harder than it is in a monolith.”
- Deconstructing the Monolith - Shopify (Shopify)“large refactors across multiple services can be tedious, requiring changes across all dependent services and coordinating deploys”
- Very likely right AI guessNo IDE-level refactoring crosses process or API boundaries; coordinated deploys and versioning are required.
Legacy code results from technical neglect, the failure to keep refactoring, rather than from technical debt itself
Leans partly rightA reframing consistent with debt-interest models but not separately testable.
· denied 0 ·
Legacy code results from technical neglect, the failure to keep refactoring, rather than from technical debt itself
Leans partly right- Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 (ACCU Conference)“technical debt is not your problem technical neglect is your problem that's the course”
- Technical Neglect, Kevlin Henney (Codecamp Romania)“your problem is technical neglect because we have to ask the question where did the technical debt come from”
- Review: A Philosophy of Software Design by John Ousterhout (Yevgeniy Brikman)“invest ~20% of your time in improving the design of the code for the long term”
- Leans partly right AI guessA reframing consistent with debt-interest models but not separately testable.
Programming needs blocks of at least half a day, so a single mid-block meeting destroys the block
Leans partly rightInterruption studies by Mark and Parnin show substantial resumption cost; the half-day unit is unmeasured.
· denied 0 ·
Programming needs blocks of at least half a day, so a single mid-block meeting destroys the block
Leans partly right- Maker's Schedule, Manager's Schedule (paulgraham.com)“A single meeting can blow a whole afternoon, by breaking it into two pieces each too small to do anything hard in.”
- The 10x Programmer Myth (Simple Thread)“If you can reduce distractions, focus, and get into flow, then you’ll automatically be more effective than most software engineers.”
- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“someone interrupt me it takes around 15 minutes to get back into flow state”
- Probably partly right AI guessInterruption studies by Mark and Parnin show substantial resumption cost; the half-day unit is unmeasured.
- Leans partly right Meyer et al. 2014 (productivity perceptions) lines 505-511Developers value few interruptions (50.4% of 379 surveyed), but the 11 observed developers switched tasks every 6.2 minutes while still feeling productive, and they uniformly said productivity drops only beyond two meetings a day, which argues against a single meeting destroying the day.
- Leans partly right Parnin & Rugaber 2011 (resumption) lines 190-212Only 10% of programming sessions saw an edit within a minute and about 30% took over 30 minutes to reach the first edit; developers typically worked in several 15-30 minute sessions plus one or two 1-4 hour sessions a day; a real resumption cost, but no evidence that half a day is the minimum.
- Leans partly right Mark et al. 2008 (interruptions) lines 232-240In a lab email task, people interrupted every 2 minutes for 20 minutes produced as much, as accurately, as uninterrupted subjects, compensating with speed at the cost of stress; so for simple tasks an interruption does not destroy the block, which limits the claim to harder work like programming that this study did not test.
AI-generated code volume outruns fixed human review capacity, making code review the bottleneck on shipping software
Leans partly rightOne large telemetry study reports code output rising far faster than shipped software after agent adoption, but attributing the gap to review is the authors' inference and other bottlenecks (testing, deployment, product decisions) are not separated out.
· denied 0 ·
AI-generated code volume outruns fixed human review capacity, making code review the bottleneck on shipping software
Leans partly right- Code review is no longer the bottleneck (OpenAI)“there's so much code being written all the time, all over all of our companies. Code review is the new bottleneck.”
- The Death of the Code Review: What the Data Actually Says — Laurie Voss, Arize AI (AI Engineer)“the speed at which humans can review code has stayed exactly the same”
- Leans partly right AI guessOne large telemetry study reports code output rising far faster than shipped software after agent adoption, but attributing the gap to review is the authors' inference and other bottlenecks (testing, deployment, product decisions) are not separated out.
Teams that stop reading agent-written code accumulate hidden defects that later force large rewrites
Leans partly rightSupported by a public retraction and by audits of agent-ported code finding unusual numbers of unsafe constructs, but the evidence is anecdotal with no controlled comparison.
· denied 0 ·
Teams that stop reading agent-written code accumulate hidden defects that later force large rewrites
Leans partly right- The Death of the Code Review: What the Data Actually Says — Laurie Voss, Arize AI (AI Engineer)“We tried not reading the code for like six months. It did not end well.”
- Technical Neglect, Kevlin Henney (Codecamp Romania)“they have automated the creation of Legacy code and have redefined their role as debugging and fixing such code”
- Leans partly right AI guessSupported by a public retraction and by audits of agent-ported code finding unusual numbers of unsafe constructs, but the evidence is anecdotal with no controlled comparison.
Crunch is a symptom of poor planning, especially failing to schedule testing and iteration time
Leans partly rightPostmortems and case studies link crunch to scope and schedule failures, but publisher deadlines, funding and studio culture also drive it, so planning is one cause among several.
· denied 0 ·
Crunch is a symptom of poor planning, especially failing to schedule testing and iteration time
Leans partly right- Overtime & Crunching in Game Development (vs others) (Jason Weimann (GameDev))“I think it's a terrible sign of just mismanagement and bad planning”
- Physiological Effects of Crunch: A Look at the Science (GDC Festival of Gaming)“the cause of crunch is usually not uh is usually not a skill problem or a laziness problem it's an unrealistic schedule”
- Leans partly right AI guessPostmortems and case studies link crunch to scope and schedule failures, but publisher deadlines, funding and studio culture also drive it, so planning is one cause among several.
Running a CI server is not continuous integration if branches live for days or weeks
Leans rightMatches the standard definition of continuous integration as frequent integration to a shared mainline, which tooling alone does not guarantee.
· denied 0 ·
Running a CI server is not continuous integration if branches live for days or weeks
Leans right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“it's not because you are using Jenkins GitHub gitlab Circle CI that you are doing continuous integration”
- Trunk Based Development (trunkbaseddevelopment.com)“Trunk-Based Development is a key enabler of Continuous Integration and by extension Continuous Delivery.”
- Probably right AI guessMatches the standard definition of continuous integration as frequent integration to a shared mainline, which tooling alone does not guarantee.
- Leans partly right DORA State of DevOps 2019 lines 1006-1024DORA defines impactful CI as every commit producing a build and test run, and separately defines effective trunk-based development as fewer than three active branches with lifetimes under a day; both predict continuous delivery, but branch lifetime is treated as a distinct capability rather than part of the definition of CI.
Feature flags let unfinished work merge to trunk and decouple deployment from release
Leans rightA well-established mechanism used at scale by large web companies, with documented costs in flag management.
· denied 0 ·
Feature flags let unfinished work merge to trunk and decouple deployment from release
Leans right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“we are actually decoupling deployment from release”
- Trunk Based Development (trunkbaseddevelopment.com)“techniques should include feature flags, branch by abstraction and "don't break the build"”
- Probably right AI guessA well-established mechanism used at scale by large web companies, with documented costs in flag management.
Writing a test per method and mocking every dependency couples tests to implementation so refactoring breaks them
Leans rightOver-specified interaction tests are a documented cause of fragile suites in both practitioner literature and studies of test co-evolution.
· denied 0 ·
Writing a test per method and mocking every dependency couples tests to implementation so refactoring breaks them
Leans right- 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) (DevTernity Conference)“all these tests with mocks they broke and we had to rewrite all the mocks”
- TestDesiderata (TestDesiderata)“Structure-insensitive — tests should not change their result if the structure of the code changes.”
- Probably right AI guessOver-specified interaction tests are a documented cause of fragile suites in both practitioner literature and studies of test co-evolution.
Writing tests slows delivery by a meaningful fraction compared with not writing them
Leans partly rightControlled studies of TDD report roughly fifteen to thirty-five percent more initial development time alongside fewer defects, so the slowdown is real but is partly repaid later.
· denied 0 ·
Writing tests slows delivery by a meaningful fraction compared with not writing them
Leans partly right- 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) (DevTernity Conference)“we were you know twenty to fifty percent slower than we had been before by writing tests”
- Jim Coplien and Bob Martin Debate TDD (alexsmail)“the code mass is is about the same as a test mass and whereas there's code there's bugs you cut your velocity in half”
- Probably partly right AI guessControlled studies of TDD report roughly fifteen to thirty-five percent more initial development time alongside fewer defects, so the slowdown is real but is partly repaid later.
- Leans wrong DORA State of DevOps 2019 lines 1535-1549Elite performers report far more automated testing than low performers (87% vs 57% automated unit tests, 58% vs 28% acceptance tests) while deploying 208 times more often with shorter lead times, so at the delivery level testing is associated with faster, not slower, delivery; the data are cross-sectional self-reports and do not isolate per-feature development time.
Moving to open-plan offices reduces face-to-face interaction and shifts communication to email and messaging
Probably rightTwo Fortune 500 headquarters moved from cubicles to open floors; wearable badges and server logs showed face-to-face time fell 72% (5.8 to 1.7 h per person per day) at the first firm and 67-71% at the second, while emails sent rose 56%, received 20-50% and IM messages 67%; quasi-experiment without a control group, 52 and 100 participants.
· denied 0 ·
Moving to open-plan offices reduces face-to-face interaction and shifts communication to email and messaging
Probably right- Open plan offices are terrible for innovation and productivity (Nick Skillicorn)“the amount of collaboration in open-plan offices was actually lower than when people had their own individual space”
- Open concept offices aren’t as productive as you think | Your Morning (CTV Your Morning)“the volume of face-to-face interactions so speaking to people that you're now actually sitting across from went down”
- Very likely right AI guessThe Bernstein and Turban field study at two Fortune 500 firms found face-to-face interaction fell by roughly seventy percent after the switch; it is two sites but with objective sensor data.
- Probably right Bernstein & Turban 2018 (open offices) lines 172-193Two Fortune 500 headquarters moved from cubicles to open floors; wearable badges and server logs showed face-to-face time fell 72% (5.8 to 1.7 h per person per day) at the first firm and 67-71% at the second, while emails sent rose 56%, received 20-50% and IM messages 67%; quasi-experiment without a control group, 52 and 100 participants.
Comments that restate code are noise and drift out of date because nothing checks them
Leans partly rightStudies find comment-code inconsistency common after change, but comprehension research also shows explanatory comments help readers, so the claim holds for restating comments not all comments.
· denied 0 ·
Comments that restate code are noise and drift out of date because nothing checks them
Leans partly right- Clean Coders Hate What Happens to Your Code When You Use These Enterprise Programming Tricks (NDC Conferences)“a misleading comment can be very confusing third the issue of typography comments clutter code”
- The problem with comments - Uncle Bob (Dev Tools Made Simple)“comments silently rot because no one maintains them”
- Probably partly right AI guessStudies find comment-code inconsistency common after change, but comprehension research also shows explanatory comments help readers, so the claim holds for restating comments not all comments.
Applying design patterns such as factories everywhere makes code harder to understand than direct code
Leans partly rightPrechelt's controlled pattern experiments found patterns help only when their flexibility is needed and otherwise add comprehension cost.
· denied 0 ·
Applying design patterns such as factories everywhere makes code harder to understand than direct code
Leans partly right- Clean Coders Hate What Happens to Your Code When You Use These Enterprise Programming Tricks (NDC Conferences)“and this has led to as it were the over adoption of factory”
- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“the idea of structuring code around swappable types is generally wrong”
- Probably partly right AI guessPrechelt's controlled pattern experiments found patterns help only when their flexibility is needed and otherwise add comprehension cost.
Services that always change together should be merged or re-sliced
UntestableA design heuristic; co-change analysis can detect the pattern but whether merging is right is a judgment.
· denied 0 ·
Services that always change together should be merged or re-sliced
Untestable- When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 (GOTO Conferences)“that can sometimes be a sign that you might want to merge those things back together again”
- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“Change Locality is a sign of both low coupling and high cohesion and makes evolving the code easier.”
- Untestable AI guessA design heuristic; co-change analysis can detect the pattern but whether merging is right is a judgment.
Type inference gives static typing with dynamic-like brevity, removing most of the old verbosity trade-off
Leans partly rightInference clearly cuts annotation burden in Go, Rust and TypeScript, but compile times, generics complexity and type-error comprehension remain costs.
· denied 0 ·
Type inference gives static typing with dynamic-like brevity, removing most of the old verbosity trade-off
Leans partly right- Static vs Dynamic Typing (Boot dev)“type inference basically gives us the best of both worlds it allows us to have static typing but with a very simple syntax”
- Why Static Typing Came Back • Richard Feldman • GOTO 2022 (GOTO Conferences)“some languages and Community Norms encourage ceremony but they don't have to”
- Probably partly right AI guessInference clearly cuts annotation burden in Go, Rust and TypeScript, but compile times, generics complexity and type-error comprehension remain costs.
- Leans partly right Gao, Bird & Barr 2017 (types vs JS bugs) lines 539-552Flow's stronger type inference meant detecting a bug needed fewer annotation tokens (mean 1.7 vs 2.4) and less time (median 133s vs 262s) than TypeScript, so inference does cut annotation burden, but this is per-bug minimal annotation, not whole-program verbosity.
Summarizing a change and its risks helps a reviewer understand unfamiliar code faster.
Leans partly rightChange summaries plausibly cut orientation time, but there is little independent measurement of review speed or defect-finding with AI summaries.
· denied 0 ·
Summarizing a change and its risks helps a reviewer understand unfamiliar code faster.
Leans partly right- Code review is no longer the bottleneck (OpenAI)“I can ask, summarize this change and explain the risks for this entire project.”
- Best Practices for Code Review (smartbear.com)“the author will often find additional errors before the peer review even begins”
- Leans partly right AI guessChange summaries plausibly cut orientation time, but there is little independent measurement of review speed or defect-finding with AI summaries.
- Leans right Bacchelli & Bird 2013 (Microsoft code review) lines 541-549Understanding the reason for a change is reviewers' main challenge; 91% of 873 developers say unfamiliar files take longer, descriptions are valued when they state what changed and why, and developers report responding better and faster when the author provides context and direction.
- Leans partly right Sadowski et al. 2018 (Google code review) lines 411-417Google interviewees report that not knowing what gave rise to a change (urgent production fix versus nice-to-have) causes mismatched expectations, delays and frustration; the benefit of an explicit summary is inferred, not measured.
Keeping review feedback, discussion and fixes in one tool removes the context switching that slows review.
Leans partly rightContext switching has measurable cost in general, but the size of the gain from tool consolidation is a vendor claim without independent data.
· denied 0 ·
Keeping review feedback, discussion and fixes in one tool removes the context switching that slows review.
Leans partly right- Code review is no longer the bottleneck (OpenAI)“I can read the feedback alongside the change and I don't need to switch tools”
- Critique - Google's Code Review Tool | Reaction (NeetCodeIO)“it's only the tight integration and extreme personalization of the tooling towards a Google specific workflow and codebase that makes it so love”
- Leans partly right AI guessContext switching has measurable cost in general, but the size of the gain from tool consolidation is a vendor claim without independent data.
- Leans partly right Mark et al. 2008 (interruptions) lines 200-208Lab experiment with 48 students answering emails while interrupted every 2 minutes: interrupted work was finished faster with no quality loss but with significantly higher stress, frustration, time pressure and effort, so the switching cost showed up as strain rather than lost time; not a code-review task.
- Leans partly right Parnin & Rugaber 2011 (resumption) lines 190-197In about 7500 IDE sessions from 85 programmers only 10% had a first edit within a minute of starting and about 30% took over 30 minutes, so switching away from a programming task carries a real resumption cost; whether one tool removes it is not tested.
Infrequent releases leave security patches and compliance updates waiting months to reach production.
Leans rightPatch latency follows directly from lead time; the risk exposure is real though its magnitude varies.
· denied 0 ·
Infrequent releases leave security patches and compliance updates waiting months to reach production.
Leans right- Accelerate: The State of DevOps with Dr. Nicole Forsgren (Scott Hanselman)“if it takes you months to get a change through what happens to your security posture when you need to get a patch through”
- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“That alone closes a whole load of security areas.”
- Probably right AI guessPatch latency follows directly from lead time; the risk exposure is real though its magnitude varies.
- Leans right DORA State of DevOps 2019 lines 1372-1378The report argues high SDO performance lets organisations keep up with compliance and regulatory changes and deliver security patches quickly and reliably; this is reasoning from the delivery metrics, not a measured patch-latency result.
Driving architecture from unit tests without an up-front domain model yields a procedural, bottom-up design that cannot be refactored out of.
Leans partly rightDesign damage from test-driven isolation is reported in case studies and the DHH debate, but controlled studies of TDD's design effects are mixed and small.
· denied 0 ·
Driving architecture from unit tests without an up-front domain model yields a procedural, bottom-up design that cannot be refactored out of.
Leans partly right- Jim Coplien and Bob Martin Debate TDD (alexsmail)“leads to a procedural bottomup architecture because the things you're testing are units”
- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“it forces developers to work too tactically, in units of development that are too small; it discourages design thinking”
- Leans partly right AI guessDesign damage from test-driven isolation is reported in case studies and the DHH debate, but controlled studies of TDD's design effects are mixed and small.
Hiring super-programmers is a poor route to team productivity compared with improving the working environment.
Leans partly rightFollows from the variance finding, but environmental interventions have not been compared head-to-head with hiring in controlled studies.
· denied 0 ·
Hiring super-programmers is a poor route to team productivity compared with improving the working environment.
Leans partly right- Challenging the Myth of the 10x Programmer (Software Engineering Institute | Carnegie Mellon University)“you're going to be hard-pressed to really up the productivity by finding that super fast programmer”
- The 10x developer is NOT a myth (Yevgeniy Brikman)“I wouldn’t recommend building a hiring strategy around solely hiring “rock stars”; you’ll end up looking foolish and lonely.”
- Leans partly right AI guessFollows from the variance finding, but environmental interventions have not been compared head-to-head with hiring in controlled studies.
TDD biases design toward extra abstraction and indirection, which harms clarity unless the designer pushes back.
Leans partly rightTest-induced indirection is widely reported in practice and in the DHH debate, but controlled studies of TDD on design quality show small mixed effects.
· denied 0 ·
TDD biases design toward extra abstraction and indirection, which harms clarity unless the designer pushes back.
Leans partly right- SWETUGG 2015 - Is TDD Dead? What are the alternatives? - Emily Bache (Swetugg)“tdd gives you a bias uh a bias towards in Direction and interfaces and all that”
- TDD is dead. Long live testing. (DHH) (dhh.dk)“Test-first units leads to an overly complex web of intermediary objects and indirection in order to avoid doing anything that's “slow”.”
- Leans partly right AI guessTest-induced indirection is widely reported in practice and in the DHH debate, but controlled studies of TDD on design quality show small mixed effects.
The right mix of unit and higher-level tests depends on where a system's complexity lives, not on fixed pyramid ratios.
Leans partly rightReasonable and consistent with practice, but no study compares test-mix strategies against outcomes.
· denied 0 ·
The right mix of unit and higher-level tests depends on where a system's complexity lives, not on fixed pyramid ratios.
Leans partly right- SWETUGG 2015 - Is TDD Dead? What are the alternatives? - Emily Bache (Swetugg)“the pyramid might not look like a pyramid it might it might actually look like you flipped it but that might be the right decision”
- TDD is dead. Long live testing. (DHH) (dhh.dk)“The worst thing we can do is just rush into another testing religion.”
- Leans partly right AI guessReasonable and consistent with practice, but no study compares test-mix strategies against outcomes.
Hitting an estimate has no value if the software built is the wrong thing.
UntestableA framing about what counts as success rather than a measurable claim.
· denied 0 ·
Hitting an estimate has no value if the software built is the wrong thing.
Untestable- #NoEstimates (Allen Holub) (Allen Holub)“if you've built the wrong program you have not succeeded in doing so much of value”
- Q&A with Vasco Duarte on the #NoEstimates Book (InfoQ)“On-time, on-budget record is a poor predictor of project success.”
- Untestable AI guessA framing about what counts as success rather than a measurable claim.
Story points get converted back into time, defeating their purpose of keeping estimation away from the clock.
Leans partly rightWidely reported in practice surveys, but there is no measurement of how often it happens.
· denied 0 ·
Story points get converted back into time, defeating their purpose of keeping estimation away from the clock.
Leans partly right- #NoEstimates (Allen Holub) (Allen Holub)“what you ended up with was The Madness of taking story points and turning them into time”
- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“business stakeholders will attempt to hold the team to timelines regardless of story point estimates”
- Leans partly right AI guessWidely reported in practice surveys, but there is no measurement of how often it happens.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4203-4208The book's description of the story-point method includes as a standard step converting points to work hours or capacity via measured productivity (velocity), so conversion to time is built into the method rather than a corruption of it.
Simply counting completed stories forecasts delivery as accurately as story-point estimation.
Leans partly rightVasco Duarte's project data and some team analyses show story count tracks points closely, but this depends on stories being similarly sized.
· denied 0 ·
Simply counting completed stories forecasts delivery as accurately as story-point estimation.
Leans partly right- #NoEstimates (Allen Holub) (Allen Holub)“we can just count stories and we get the same number either way”
- Q&A with Vasco Duarte on the #NoEstimates Book (InfoQ)“I project (forecast) the rate of delivery (delivered items divided by the time it took to deliver) into the future”
- Leans partly right AI guessVasco Duarte's project data and some team analyses show story count tracks points closely, but this depends on stories being similarly sized.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4309-4321Extrapolating measured progress from the first stage of work (the NoEstimates approach) is endorsed as a simple local model that few prediction models beat, but it is not compared head-to-head with story-point estimation.
Organizations with high software delivery performance are more likely to meet their commercial and non-commercial goals.
Leans rightDORA's SEM finds SDO performance predicts organisational performance on commercial and non-commercial goals, and elite performers are twice as likely to meet or exceed their organisational performance goals; both sides are self-reported in a cross-sectional survey.
· denied 0 ·
Organizations with high software delivery performance are more likely to meet their commercial and non-commercial goals.
Leans right- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“high performers year over a year are twice as likely to achieve or exceed their commercial goals”
- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“organizations that do this kind of thing make more money than organizations that don't”
- Leans partly right AI guessDORA finds this association in self-reported data; organizational performance is reported by the same respondents, so common-method bias is possible.
- Leans right DORA State of DevOps 2019 lines 1383-1385DORA's SEM finds SDO performance predicts organisational performance on commercial and non-commercial goals, and elite performers are twice as likely to meet or exceed their organisational performance goals; both sides are self-reported in a cross-sectional survey.
Fatigue raises the rate of catastrophic errors, so an overworked team can make net negative progress.
Leans partly rightFatigue-error links are well documented; net negative team progress is a plausible extreme rather than a measured average.
· denied 0 ·
Fatigue raises the rate of catastrophic errors, so an overworked team can make net negative progress.
Leans partly right- Physiological Effects of Crunch: A Look at the Science (GDC Festival of Gaming)“the more fatigued someone is the more likely they are to make catastrophic errors”
- Why Crunch Mode Doesn’t Work: Six Lessons [2005] – IGDA (igda.org)“Error rates climb with hours worked and especially with loss of sleep. Eventually the odds catch up with you, and catastrophe occurs.”
- Probably partly right AI guessFatigue-error links are well documented; net negative team progress is a plausible extreme rather than a measured average.
- Leans partly right Pencavel 2014 (working hours) lines 1009-1020Concludes long weekly and daily hours do not necessarily yield more output (the estimated marginal product of weekly hours turns negative around 63 h) and that fatigue raises the probability of errors, accidents and sickness; supports net-negative hours for physical piece work, programmer error rates not studied.
Crunch does not improve product outcomes; it correlates with slightly worse ones.
Leans rightThe Gamasutra/IGDA survey analysis found this; it is a single self-reported dataset but no study shows crunch improving outcomes.
· denied 0 ·
Crunch does not improve product outcomes; it correlates with slightly worse ones.
Leans right- Physiological Effects of Crunch: A Look at the Science (GDC Festival of Gaming)“there is a very mild negative correlation between working overtime and making a successful game”
- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“they produced games that were worse on every single metric reviewer scores profitability user satisfaction sales”
- Probably right AI guessThe Gamasutra/IGDA survey analysis found this; it is a single self-reported dataset but no study shows crunch improving outcomes.
- Leans partly right Pencavel 2014 (working hours) lines 1003-1008For munitions workers in 1916, hours reductions from wartime levels would have cost little or no output, and seven-day weeks produced about 10% less output than six-day weeks at the same hours; extra hours bought nothing, but product quality and software work were not measured.
A rewrite team is unlikely to do better because it lacks the original team's experience and repeats old mistakes.
Leans partly rightSecond-system effects are documented, but a rewrite with clearer requirements can succeed.
· denied 0 ·
A rewrite team is unlikely to do better because it lacks the original team's experience and repeats old mistakes.
Leans partly right- Joel Spolsky, Things You Should Never Do: Rewriting the Code from Scratch (ratherabstract)“there is absolutely no reason to believe that you are going to do a better job than you did the first time”
- Things You Should Never Do, Part I (Joel on Software)“there is absolutely no reason to believe that you are going to do a better job than you did the first time”
- Leans partly right AI guessSecond-system effects are documented, but a rewrite with clearer requirements can succeed.
In-editor type errors give faster feedback than running the program and tracing a crash.
Probably rightAll indicators (time, test runs, files opened, file switches) favoured the static type system on type-error tasks because the compiler names the location while a run-time failure appears far from the cause; the feedback came from a compiler in a plain text editor, not an in-editor checker, so the claim's in-editor form is an extrapolation.
· denied 0 ·
In-editor type errors give faster feedback than running the program and tracing a crash.
Probably right- Why Static Typing Came Back • Richard Feldman • GOTO 2022 (GOTO Conferences)“this right here is a fast feedback loop seeing this error right there as you're writing your code”
- Static vs dynamic typed languages: an intentionally rigged experiment (Vivek Haldar)“the stat system identified all the places where changes needed to be made at compile time”
- Probably right Kleinschmager et al. 2012 (static types) lines 455-458For both type-error fixing tasks Java (compile error) beat Groovy (run-time no-such-method failure) significantly in both groups; mean times 78s vs 149s and 44s vs 246s, so a static error message is faster feedback than running the program and tracing the failure.
- Probably right Hanenberg et al. 2014 (static types) lines 1343-1371All indicators (time, test runs, files opened, file switches) favoured the static type system on type-error tasks because the compiler names the location while a run-time failure appears far from the cause; the feedback came from a compiler in a plain text editor, not an in-editor checker, so the claim's in-editor form is an extrapolation.
- Leans partly right AI guessDeveloper surveys cite this as TypeScript's main benefit; measured productivity gains from type feedback are modest in experiments.
Pull-request review delays feedback and pushes developers to batch changes, making daily integration impossible.
Leans partly rightReview latency is a measured delay in PR studies, but many teams integrate daily with small PRs, so the incompatibility is not absolute.
· denied 0 ·
Pull-request review delays feedback and pushes developers to batch changes, making daily integration impossible.
Leans partly right- Why Pull Requests Are a Bad Idea • Dave Farley • GOTO 2022 (GOTO Conferences)“if you can't process my pull request at least once per day then by definition continuous integration is impossible”
- DORA | Capabilities: Trunk-based development (dora.dev)“When code review is laborious and takes hours or days, developers avoid working in small batches”
- Leans partly right AI guessReview latency is a measured delay in PR studies, but many teams integrate daily with small PRs, so the incompatibility is not absolute.
- Leans wrong Sadowski et al. 2018 (Google code review) lines 588-592Google requires pre-commit review on every change yet median review latency is under 4 hours, 70% of changes commit within 24 hours of being sent for review, and the median author lands about 3 changes a week of 24 lines, so per-change review did not prevent daily integration there.
- Leans partly right DORA State of DevOps 2019 lines 580-588DORA notes elite lead times rose from under an hour to under a day and speculates this may reflect heavier code review and approval processes; it separately finds extra approvals produce larger, less frequent batches, but still recommends per-change peer review, so it does not support the claim that PR review makes daily integration impossible.
Pairs sustain focus better than individuals working alone.
Leans partly rightReported in pair-programming studies as 'pair pressure', mostly self-reported.
· denied 0 ·
Pairs sustain focus better than individuals working alone.
Leans partly right- Why Pull Requests Are a Bad Idea • Dave Farley • GOTO 2022 (GOTO Conferences)“pairs are actually able to sustain a better focus than individuals working alone”
- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“if you're pair programming then you're in flow state all the time. and and it's also like an um buffer from the outer world”
- Leans partly right AI guessReported in pair-programming studies as 'pair pressure', mostly self-reported.
Every comment is a failure to express intent in code and should be treated as a necessary evil.
Leans partly rightComments had only 33% relative predictive power for readability judgments, less than blank lines; the authors suggest comments appear where code was already less readable so the two balance out, giving neither strong support for comments nor for treating them as failures.
· denied 0 ·
Every comment is a failure to express intent in code and should be treated as a necessary evil.
Leans partly right- The problem with comments - Uncle Bob (Dev Tools Made Simple)“every comment you write is a failure”
- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“I prefer long names to comments. I don't trust comments to be maintained, nor do I trust that they will be read.”
- Leans partly right Scalabrino et al. 2019 (understandability) lines 978-982Interviewed developers listed the complete lack of comments as the single most negative aspect of the least understandable method and all said they would add comments to improve it, which runs against treating comments as failures; five-developer interview, and comment metrics showed no quantitative correlation.
- Leans partly right Buse & Weimer 2010 (readability) lines 622-632Comments had only 33% relative predictive power for readability judgments, less than blank lines; the authors suggest comments appear where code was already less readable so the two balance out, giving neither strong support for comments nor for treating them as failures.
- Untestable AI guessA coding doctrine about intent, not a measurable outcome.
Abbreviated identifiers are no harder to debug than full-word identifiers.
Leans partly rightScanniello et al. found no difference for debugging, but other comprehension studies found full words help, so results conflict.
· denied 0 ·
Abbreviated identifiers are no harder to debug than full-word identifiers.
Leans partly right- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“there's no evidence that a full word is required when an abbreviation can fit in”
- What We Know We Don't Know (Hillel Wayne)“Fixing Faults in C and Java Source Code: Abbreviated vs. Full-Word Identifier Names (preprint)”
- Leans partly right AI guessScanniello et al. found no difference for debugging, but other comprehension studies found full words help, so results conflict.
- Leans partly right Buse & Weimer 2010 (readability) lines 646-652Across 12,000 readability judgments, average identifier length had about zero predictive power and maximum identifier length predicted lower readability, which the authors say fails to support the belief that single-character identifiers hurt maintenance; the outcome is perceived readability of short snippets by students, not debugging performance.
- Leans partly right Scalabrino et al. 2019 (understandability) lines 825-827Shorter average identifier length correlated weakly (-0.12) with higher perceived understandability, and the identifier-abbreviation metric IMSQ showed no meaningful correlation with any understandability proxy; measured on comprehension of 50 Java methods by 63 participants, not on debugging.
Pair programming shows little measurable effect on defects or productivity in controlled studies.
Leans partly rightHannay et al.'s meta-analysis found small quality gains and effort increases with high heterogeneity.
· denied 0 ·
Pair programming shows little measurable effect on defects or productivity in controlled studies.
Leans partly right- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“pair programming type systems etc don't really have that much effect either”
- What We Know We Don't Know (Hillel Wayne)“Pairing is nice, but it's not "continous code review."”
- Leans partly right AI guessHannay et al.'s meta-analysis found small quality gains and effort increases with high heterogeneity.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 1167-1170The review deliberately excluded single-practice studies such as pair-programming experiments, but across the whole-method studies it included it reports mixed findings on pair programming effectiveness; it cannot speak to controlled studies directly.
Code review catches most of the defects in reviewed code.
Leans partly rightInspection studies report high detection rates under limited review rates; modern lightweight review finds fewer.
· denied 0 ·
Code review catches most of the defects in reviewed code.
Leans partly right- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“it finds about 60 to 80 percent of all the bugs in the code”
- What We Know We Don't Know (Hillel Wayne)“there's more evidence that code review reduces bugs, and the evidence shows a bigger effect”
- Probably partly right AI guessInspection studies report high detection rates under limited review rates; modern lightweight review finds fewer.
- Leans partly right Bacchelli & Bird 2013 (Microsoft code review) lines 533-538Defect comments are one-eighth of review comments and mostly micro-level; authors conclude review finds defects less often than teams expect and rarely finds deep or design-level issues, so relying on it for QA 'may be fraught' (defect escape rate itself is not measured).
- Leans partly right McIntosh et al. 2014 (review coverage) lines 472-492In Qt, VTK and ITK, lower review coverage and participation predict more post-release defects (up to 2 and 5 extra per component), but 70-87% of defective components had 100% of changes reviewed, so review reduces defects without catching most of them.
Testing advocacy has become a dogma that shames developers who do not follow it
UntestableA claim about community culture and tone, not a measurable effect.
· denied 0 ·
Testing advocacy has become a dogma that shames developers who do not follow it
Untestable- Agile is Dead • Pragmatic Dave Thomas • GOTO 2015 (GOTO Conferences)“they now have this total bigotry about testing”
- TDD is dead. Long live testing. (DHH) (dhh.dk)“Used as a hammer to beat down the nonbelievers, declare them unprofessional and unfit for writing software.”
- Untestable AI guessA claim about community culture and tone, not a measurable effect.
Code review is a major channel for learning and knowledge transfer, especially for newcomers
Leans rightSurveys at Microsoft and Google rank knowledge transfer among the top benefits of review.
· denied 0 ·
Code review is a major channel for learning and knowledge transfer, especially for newcomers
Leans right- Critique - Google's Code Review Tool | Reaction (NeetCodeIO)“I learned a lot through code reviews”
- Best Practices for Code Review (smartbear.com)“Peer review also allows junior team members to learn from senior leaders and for even the most experienced programmers to break bad habits.”
- Probably right AI guessSurveys at Microsoft and Google rank knowledge transfer among the top benefits of review.
- Leans right Sadowski et al. 2018 (Google code review) lines 557-576Education is the historical and current main motive for review at Google; developers in their first year get more than twice as many comments per change, falling with tenure, and the set of files a developer has seen through review grows well beyond the files they edited.
- Leans right Bacchelli & Bird 2013 (Microsoft code review) lines 336-348All interviewees but one cited learning as a reason to review, managers list 'education for junior developers learning the codebase' and grooming backup developers, and 12 of 570 comments explicitly transfer knowledge; the authors note this is self-report rather than hard evidence.
Tests serve as precise, unambiguous low-level documentation of the system
Leans partly rightTests document behaviour but are hard to navigate as documentation; evidence is practitioner opinion.
· denied 0 ·
Tests serve as precise, unambiguous low-level documentation of the system
Leans partly right- Clean Coder Blog (blog.cleancoder.com)“The tests act as accurate, precise, and unambiguous documentation at the lowest level of the system.”
- Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 (ACCU Conference)“a failing test you tell exactly what is wrong quickly without have you having to spend a lot of time analyzing the failure”
- Leans partly right AI guessTests document behaviour but are hard to navigate as documentation; evidence is practitioner opinion.
Fusing data layout with the operation in table-driven, data-oriented code can be an order of magnitude faster than encapsulated class hierarchies
Leans partly rightWell-known data-oriented design result for compute-bound loops; most application code is not compute-bound.
· denied 0 ·
Fusing data layout with the operation in table-driven, data-oriented code can be an order of magnitude faster than encapsulated class hierarchies
Leans partly right- "Clean" Code, Horrible Performance (computerenhance.com)“a table-driven version that’s fully 10x faster or more on the exact same problem”
- "Clean" Code, Horrible Performance (Molly Rocket)“there's no way you're doing any of that using clean code principles because just the nature of how you're going to organize your data”
- Probably partly right AI guessWell-known data-oriented design result for compute-bound loops; most application code is not compute-bound.
Following clean-code structure rules can cost performance equivalent to a decade or more of hardware improvement
Leans partly rightHolds for the toy benchmark; in typical applications I/O, allocation and network dominate so the end-to-end cost is far smaller.
· denied 0 ·
Following clean-code structure rules can cost performance equivalent to a decade or more of hardware improvement
Leans partly right- "Clean" Code, Horrible Performance (computerenhance.com)“The first two rules of the “clean code” concept wipe out 12 years of hardware evolution, all by themselves.”
- "Clean" Code, Horrible Performance (Molly Rocket)“for a certain segment of the Computing industry the answer of why is software so slow it's because of quote unquote clean code”
- Leans partly right AI guessHolds for the toy benchmark; in typical applications I/O, allocation and network dominate so the end-to-end cost is far smaller.
Code organised by operation rather than by type makes shared patterns visible and easier to simplify
UntestableA design-perception claim with no agreed measure.
· denied 0 ·
Code organised by operation rather than by type makes shared patterns visible and easier to simplify
Untestable- "Clean" Code, Horrible Performance (computerenhance.com)“When your code is organized by operation, rather than by type, it’s straightforward to observe and pull out common patterns.”
- "Clean" Code, Horrible Performance (Molly Rocket)“it's really easy to pull out common patterns when you look at them put together by function rather than by class”
- Untestable AI guessA design-perception claim with no agreed measure.
Clean-code rules were adopted for maintainability without evidence that they deliver it
Leans partly rightEvidence that small functions or polymorphism improve maintainability is thin and mixed; readability studies are mostly small.
· denied 0 ·
Clean-code rules were adopted for maintainability without evidence that they deliver it
Leans partly right- "Clean" Code, Horrible Performance (computerenhance.com)“The “clean” code rules were developed because someone thought they would produce more maintainable codebases.”
- "Clean" Code, Horrible Performance (Molly Rocket)“there is really no way to objectively assess whether these clean code ideas are good or bad”
- Leans partly right AI guessEvidence that small functions or polymorphism improve maintainability is thin and mixed; readability studies are mostly small.
- Leans partly right Scalabrino et al. 2019 (understandability) lines 36-42The authors state that knowledge of what affects understandability is tied to common beliefs with no empirical evidence that complexity predicts comprehension effort, and their 121-metric study found no readability or complexity metric correlates with it; this covers metrics, not clean-code rules as practices.
- Leans partly right Buse & Weimer 2010 (readability) lines 657-669Provides correlational evidence that low readability goes with more defects and churn over 2.2M lines, which cuts against 'without evidence', but the authors stress the model is descriptive and cannot prescribe that applying readability rules will improve code.
Retrofitting static types onto dynamically typed programs finds only a small fraction of their bugs
Leans partly rightFlow and TypeScript each detect 60 of 400 sampled public JavaScript bugs (15%, 95% CI 11.5-18.5%), so retrofitted types find a minority of bugs, but the authors stress this is a lower bound (public bugs only, two weak type systems, non-expert annotators) and an engineering manager called a 10% reduction a no-brainer.
· denied 0 ·
Retrofitting static types onto dynamically typed programs finds only a small fraction of their bugs
Leans partly right- Literature review on the benefits of static types (danluu.com)“you'd expect that this technique caught between 4% and 15% of the bugs in this code”
- Laurence Tratt: Dynamically Typed Languages (tratt.net)“in practice, run-time type errors in deployed programs are exceedingly rare”
- Leans partly right AI guessLater work on JavaScript found roughly fifteen percent of public bugs detectable by TypeScript or Flow; still a minority.
- Leans partly right Gao, Bird & Barr 2017 (types vs JS bugs) lines 372-377Flow and TypeScript each detect 60 of 400 sampled public JavaScript bugs (15%, 95% CI 11.5-18.5%), so retrofitted types find a minority of bugs, but the authors stress this is a lower bound (public bugs only, two weak type systems, non-expert annotators) and an engineering manager called a 10% reduction a no-brainer.
Skipping architecture review in a project's first weeks locks in decisions that take years to undo
Leans partly rightEarly structural decisions are the costliest to reverse, though the exponential defect-cost curve behind this is overstated.
· denied 0 ·
Skipping architecture review in a project's first weeks locks in decisions that take years to undo
Leans partly right- Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard (NDC Conferences)“I could have figured this out that there was a problem in about 10 minutes.”
- The 10x developer is NOT a myth (Yevgeniy Brikman)“a great programmer will know that errors are much more costly to fix later”
- Probably partly right AI guessEarly structural decisions are the costliest to reverse, though the exponential defect-cost curve behind this is overstated.
Decomposing code into very small methods can go too far, producing shallow interfaces and entangled methods that are harder to read than one longer method
Leans partly rightControlled studies find no comprehension gain from splitting code into very small methods, though none establishes where the optimum lies.
· denied 0 ·
Decomposing code into very small methods can go too far, producing shallow interfaces and entangled methods that are harder to read than one longer method
Leans partly right- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“it encourages programmers to create teeny-tiny methods that suffer from both shallow interfaces and entanglement”
- What We Know We Don't Know (Hillel Wayne)“Small Functions Have Problems”
- Probably partly right AI guessControlled studies find no comprehension gain from splitting code into very small methods, though none establishes where the optimum lies.
Very small changes can be worse than mid-sized ones because their implications are hidden and they are reverted more often
Leans partly rightOne vendor dataset shows higher revert rates under ten lines, plausibly from config changes; the pattern has not been replicated.
· denied 0 ·
Very small changes can be worse than mid-sized ones because their implications are hidden and they are reverted more often
Leans partly right- Small CLs (eng-practices)“The CL is not so small that its implications are difficult to understand.”
- The ideal PR is 50 lines long (Graphite)“Sub-10 line PRs are reverted noticeably more than 10-100 line PRs.”
- Leans partly right AI guessOne vendor dataset shows higher revert rates under ten lines, plausibly from config changes; the pattern has not been replicated.
Technical debt consumes a substantial fraction of developers' working time
Leans partly rightBesker et al. surveys report roughly a quarter of time self-reported as wasted, but the figures are self-reported and vary widely.
· denied 0 ·
Technical debt consumes a substantial fraction of developers' working time
Leans partly right- Code Red: the Business Impact of Code Quality (InfoQ)“the average company wastes 23-42% of developers' time due to technical debt and bad code in general”
- Technical Neglect, Kevlin Henney (Codecamp Romania)“out of an 8 hour working day a developer would spend 7 hour hours on failure demand”
- Probably partly right AI guessBesker et al. surveys report roughly a quarter of time self-reported as wasted, but the figures are self-reported and vary widely.
- Leans partly right DORA State of DevOps 2019 lines 1677-1681Respondents reporting high technical debt were 1.6 times less productive and the highest performers were 1.4 times more likely to have low technical debt; the survey measures a productivity drag, not a fraction of working time.
- Leans partly right Tornhill & Borg 2022 (Code Red) lines 152-158The paper's own measurement is per-file (issues in Alert code take 124% longer, Warning 78%) rather than a share of total time; in related work it relays Besker et al.'s longitudinal self-reports of 23% of time wasted on TD and Stripe's 42% figure, which are secondary citations here.
Decomposing a monolith only works if it already has a reasonably modular design; tangled monoliths just produce a mess
Leans partly rightConsistent with migration case studies, though some decompositions of tangled code succeeded with heavy investment.
· denied 0 ·
Decomposing a monolith only works if it already has a reasonably modular design; tangled monoliths just produce a mess
Leans partly right- Monolith First (martinfowler.com)“Most systems acquire too many dependencies between their modules, and thus can't be sensibly broken apart.”
- Back to the Monolith: Why Did Amazon Dump Microservices? | Nordic APIs | (Nordic APIs)“converting to microservices without proper planning simply trades bad code for faulty infrastructures”
- Probably partly right AI guessConsistent with migration case studies, though some decompositions of tangled code succeeded with heavy investment.
Rote, repetitive code is a design smell, and pairing helps find the missing abstraction
Leans partly rightPlausible; no evidence.
· denied 0 ·
Rote, repetitive code is a design smell, and pairing helps find the missing abstraction
Leans partly right- On Pair Programming (martinfowler.com)“rote tasks might be a smell for bad design: Pairing can help you find the right abstraction for that boring code”
- Pair Programming Misconceptions (martinfowler.com)“writing boring rote code is a smell. If I'm writing boring repetitive code it's usually a sign that I've missed an important abstraction”
- Leans partly right AI guessPlausible; no evidence.
Debt is prudent when taken deliberately to ship sooner with small interest, and reckless when taken without understanding its cost
UntestableClassification framework.
· denied 0 ·
Debt is prudent when taken deliberately to ship sooner with small interest, and reckless when taken without understanding its cost
Untestable- Technical Debt Quadrant (martinfowler.com)“the useful distinction isn't between debt or non-debt, but between prudent and reckless debt”
- Technical Neglect, Kevlin Henney (Codecamp Romania)“a little debt speeds development so long as it is paid back promptly with a rewrite”
- Untestable AI guessClassification framework.
Rotating the driver every few minutes keeps every team member engaged
Leans partly rightEngagement is self-reported; no comparative data.
· denied 0 ·
Rotating the driver every few minutes keeps every team member engaged
Leans partly right- Mob Programming Basics – Mob Programming (mobprogramming.org)“We rotate the Driver every 15 minutes.”
- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“he is showing a junior for an hour and that is not pairing”
- Leans partly right AI guessEngagement is self-reported; no comparative data.
Microservices' independent scaling and fault isolation pay off at very large scale where downtime is costly
Leans partly rightNetflix and Amazon cases support it; there is no evidence about where the threshold lies.
· denied 0 ·
Microservices' independent scaling and fault isolation pay off at very large scale where downtime is costly
Leans partly right- Back to the Monolith: Why Did Amazon Dump Microservices? | Nordic APIs | (Nordic APIs)“microservices and serverless solutions often make sense for an organization of Amazon's size”
- Serverless was a big mistake... says Amazon (Fireship)“if Netflix goes down for a few hours it'll cost them way more money and lost memberships”
- Probably partly right AI guessNetflix and Amazon cases support it; there is no evidence about where the threshold lies.
- Leans partly right Soldani et al. 2018 (microservices review) lines 962-976Scalability is the most cited gain (31 of 51 sources) and fault isolation is cited by 14, confirming these as the recognised payoffs, but the review gives no evidence on a scale threshold at which they start to pay.
Functions should be extracted until each does one thing, meaning nothing further can be meaningfully extracted
Leans partly rightSmaller methods correlate with fewer defects up to a point, but studies find very small, deeply delegating methods hurt comprehension.
· denied 0 ·
Functions should be extracted until each does one thing, meaning nothing further can be meaningfully extracted
Leans partly right- How small should a function be? - Robert C. Martin (Uncle Bob) (Dev Tools Made Simple)“a function does one thing if you cannot meaningfully extract another function from it”
- Review: A Philosophy of Software Design by John Ousterhout (Yevgeniy Brikman)“you can read a handful of method names, which makes the code easier to understand”
- Leans partly right AI guessSmaller methods correlate with fewer defects up to a point, but studies find very small, deeply delegating methods hurt comprehension.
- Leans partly right Scalabrino et al. 2019 (understandability) lines 976-978Interviewed developers cited 'implements a single task' as a positive for the most understandable method and 'too many responsibilities' as a negative for the least understandable one; five-developer opinion on four methods, no test of the 'extract until nothing further' rule.
Using story points to predict delivery dates is weak, and comparing teams by velocity or estimate accuracy is harmful
Leans partly rightVelocity is team-relative by construction; Goodhart effects on normalised points are widely reported.
· denied 0 ·
Using story points to predict delivery dates is weak, and comparing teams by velocity or estimate accuracy is harmful
Leans partly right- Story Points Revisited (ronjeffries.com)“I think comparing teams on quality of estimates or velocity is harmful.”
- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“This makes it impossible to compare the productivity of different teams using story points.”
- Probably partly right AI guessVelocity is team-relative by construction; Goodhart effects on normalised points are widely reported.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4210-4227Relative (story-point style) estimation is found no more accurate than absolute time estimation and prone to underestimating large items, supporting weak date prediction; comparing teams by velocity is not examined.
Early in a system's life little design is needed; design investment should start when feature speed begins to slow
Leans partly rightFowler's design stamina hypothesis is a hypothesis; consistent with debt-payoff reasoning.
· denied 0 ·
Early in a system's life little design is needed; design investment should start when feature speed begins to slow
Leans partly right- Deconstructing the Monolith - Shopify (Shopify)“in the early stages of most applications you can move very quickly with little design”
- Review: A Philosophy of Software Design by John Ousterhout (Yevgeniy Brikman)“investing in the long-term design of your code may not pay off, as much of your code is likely to be thrown away”
- Leans partly right AI guessFowler's design stamina hypothesis is a hypothesis; consistent with debt-payoff reasoning.
Measured productivity gaps between programmers are mostly between competent and net-negative developers, not between good and great
Leans partly rightRe-analyses of the classic studies show best-to-worst ratios of ten or more but quartile ratios nearer two to four, so the gap depends on which tail you include.
· denied 0 ·
Measured productivity gaps between programmers are mostly between competent and net-negative developers, not between good and great
Leans partly right- The 10x Programmer Myth (Simple Thread)“Compared to someone like this, everyone is a 10x programmer!”
- The 10x developer is NOT a myth (Yevgeniy Brikman)“the type of hires that can sink an organization, actively increasing tech debt with every line of code they write”
- Leans partly right AI guessRe-analyses of the classic studies show best-to-worst ratios of ten or more but quartile ratios nearer two to four, so the gap depends on which tail you include.
- Leans partly right Prechelt 1999 (28:1 legend) lines 196-198The large max/min ratios in the Grant/Sackman groups usually stem from a single very slow subject, so extreme measured gaps are driven by slow outliers rather than exceptional fast ones; the report does not characterise those outliers as net-negative.
Any sound static type system rejects some programs that would never fail at run time
Leans rightFollows from undecidability; every practical sound type system is incomplete.
· denied 0 ·
Any sound static type system rejects some programs that would never fail at run time
Leans right- Laurence Tratt: Another Non-Argument in Type Systems (tratt.net)“if the type system is sound then (because of the expressivity of programming languages) it will be incomplete, rejecting some programs”
- Laurence Tratt: Dynamically Typed Languages (tratt.net)“Since any practical type system needs to be both decidable and sound, they are not complete; in other words, certain valid programs will be rejected”
- Almost certainly right AI guessFollows from undecidability; every practical sound type system is incomplete.
Dynamic languages can run programs that are deliberately not statically type-safe, which helps when exploring or modifying large systems
Leans partly rightRunning partially broken code aids exploration, but gradual typing and IDE tooling narrow the gap.
· denied 0 ·
Dynamic languages can run programs that are deliberately not statically type-safe, which helps when exploring or modifying large systems
Leans partly right- Laurence Tratt: Another Non-Argument in Type Systems (tratt.net)“ability to execute and run programs which are deliberately not statically type safe (a useful property when comprehending and modifying large systems)”
- Laurence Tratt: Dynamically Typed Languages (tratt.net)“static types inhibit large-scale refactorings, tending to ossify a program’s structure”
- Leans partly right AI guessRunning partially broken code aids exploration, but gradual typing and IDE tooling narrow the gap.
A change passing its test suite is a weak proxy for whether a maintainer would actually merge it
Leans rightTests only cover specified behaviour and cannot see maintainability, scope or hidden coupling; the METR maintainer study cited here supports this, though it is one study on agent-written PRs.
· denied 0 ·
A change passing its test suite is a weak proxy for whether a maintainer would actually merge it
Leans right- The Death of the Code Review: What the Data Actually Says — Laurie Voss, Arize AI (AI Engineer)“it was only good enough to merge about half of the time”
- Probably right AI guessTests only cover specified behaviour and cannot see maintainability, scope or hidden coupling; the METR maintainer study cited here supports this, though it is one study on agent-written PRs.
Running several independent automated review passes and keeping only agreed findings reduces false positives and improves review quality
Leans partly rightEnsemble and self-consistency effects are well documented for language models, but the size of the review-quality gain rests on one academic paper and vendor reports.
· denied 0 ·
Running several independent automated review passes and keeping only agreed findings reduces false positives and improves review quality
Leans partly right- The Death of the Code Review: What the Data Actually Says — Laurie Voss, Arize AI (AI Engineer)“Run several review passes, see keep what they agree on”
- Leans partly right AI guessEnsemble and self-consistency effects are well documented for language models, but the size of the review-quality gain rests on one academic paper and vendor reports.
Automated code reviewers are fooled by confidently framed malicious changes far more often than human reviewers
Leans partly rightPrompt injection against LLM reviewers is a documented weakness and vendors warn about it themselves, but the specific human-versus-agent comparison comes from a single study.
· denied 0 ·
Automated code reviewers are fooled by confidently framed malicious changes far more often than human reviewers
Leans partly right- The Death of the Code Review: What the Data Actually Says — Laurie Voss, Arize AI (AI Engineer)“fooled an autonomous review agent in 88% of attempts”
- Leans partly right AI guessPrompt injection against LLM reviewers is a documented weakness and vendors warn about it themselves, but the specific human-versus-agent comparison comes from a single study.
Assigning people to review code full time to absorb more volume burns reviewers out
Leans partly rightReview fatigue and the tedium of full-time review are widely reported by practitioners, but there is no measured burnout study specific to this arrangement.
· denied 0 ·
Assigning people to review code full time to absorb more volume burns reviewers out
Leans partly right- The Death of the Code Review: What the Data Actually Says — Laurie Voss, Arize AI (AI Engineer)“those people burn out really fast”
- Leans partly right AI guessReview fatigue and the tedium of full-time review are widely reported by practitioners, but there is no measured burnout study specific to this arrangement.
The human role in code review is shifting from reading diffs to designing and tuning the systems that inspect code
UntestableA forecast about how roles will evolve rather than a claim that can be checked against evidence.
· denied 0 ·
The human role in code review is shifting from reading diffs to designing and tuning the systems that inspect code
Untestable- The Death of the Code Review: What the Data Actually Says — Laurie Voss, Arize AI (AI Engineer)“the human role isn't disappearing. It is moving up the stack”
- Untestable AI guessA forecast about how roles will evolve rather than a claim that can be checked against evidence.
Writing tests after the code leaves holes in the suite because hard-to-test code gets skipped
Leans partly rightThe mechanism is plausible and matches practitioner experience, but controlled TDD studies measure defects and productivity rather than coverage gaps, so the size of the effect is not established.
· denied 0 ·
Writing tests after the code leaves holes in the suite because hard-to-test code gets skipped
Leans partly right- Why you should write tests first - Uncle Bob (Dev Tools Made Simple)“you walk away and you leave a hole in the test Suite”
- Leans partly right AI guessThe mechanism is plausible and matches practitioner experience, but controlled TDD studies measure defects and productivity rather than coverage gaps, so the size of the effect is not established.
- Leans partly right Karac & Turhan 2018 (TDD review) lines 178-184The review grants that TDD yields more tests than test-last, but reports that test quality, maintainability and co-evolution with production code get little attention, so more tests is not the same as fewer holes.
- Leans wrong Fucci et al. 2016 (TDD replication) lines 440-447Test-last developers wrote as many unit-test asserts as TDD developers (sign test p=1.00, Cliff's delta 0.07), though in a 3-hour kata with incremental test-last there is little hard-to-test code to skip.
A test suite with known gaps gives no decision value when it passes, so it cannot be trusted
UntestableA framing about what trust in a suite means rather than a measurable outcome; partial suites still catch some regressions.
· denied 0 ·
A test suite with known gaps gives no decision value when it passes, so it cannot be trusted
Untestable- Why you should write tests first - Uncle Bob (Dev Tools Made Simple)“a test Suite that does does not allow you to make a decision when it passes is a useless test Suite”
- Untestable AI guessA framing about what trust in a suite means rather than a measurable outcome; partial suites still catch some regressions.
Making a failing test pass gives a small reward that makes test-first more enjoyable than writing tests afterwards
UntestableA claim about enjoyment and motivation that varies by person.
· denied 0 ·
Making a failing test pass gives a small reward that makes test-first more enjoyable than writing tests afterwards
Untestable- Why you should write tests first - Uncle Bob (Dev Tools Made Simple)“every time you make a test pass there's a little shot of endorphins to the back of your brain”
- Untestable AI guessA claim about enjoyment and motivation that varies by person.
Having the whole team at one keyboard eliminates waiting for answers to blocking questions
Leans partly rightThe mechanism follows directly from having all needed skills present, and mob case studies report it, but there is no controlled comparison and it depends on the product owner being present too.
· denied 0 ·
Having the whole team at one keyboard eliminates waiting for answers to blocking questions
Leans partly right- Mob Programming, A Whole Team Approach - Woody Zuill (NDC Conferences)“we just automatically noticed we weren't waiting to get answers to questions anymore because everybody was there”
- Leans partly right AI guessThe mechanism follows directly from having all needed skills present, and mob case studies report it, but there is no controlled comparison and it depends on the product owner being present too.
Mob programming finishes stories in hours that took individuals working separately weeks
UnknownSelf-reported from one team with the speaker himself saying the card comparison is not proof; no independent measurement of mob throughput exists.
· denied 0 ·
Mob programming finishes stories in hours that took individuals working separately weeks
Unknown- Mob Programming, A Whole Team Approach - Woody Zuill (NDC Conferences)“stories that used to take two weeks for individuals working separately to get done we're now getting done in three or four hours”
- Unknown AI guessSelf-reported from one team with the speaker himself saying the card comparison is not proof; no independent measurement of mob throughput exists.
Working as one group on one stream of work removes merge conflicts
Leans rightA single group working on one branch has nothing to merge, so this follows by construction and is consistently reported by mob teams.
· denied 0 ·
Working as one group on one stream of work removes merge conflicts
Leans right- Mob Programming, A Whole Team Approach - Woody Zuill (NDC Conferences)“with this we've never had merging problems”
- Probably right AI guessA single group working on one branch has nothing to merge, so this follows by construction and is consistently reported by mob teams.
Switching tasks to fill time while blocked creates work-in-progress inventory instead of fixing the queueing problem
Leans partly rightLean and queueing theory plus context-switching research support the cost of multitasking and partially done work; the inventory framing is a model rather than a measurement.
· denied 0 ·
Switching tasks to fill time while blocked creates work-in-progress inventory instead of fixing the queueing problem
Leans partly right- Mob Programming, A Whole Team Approach - Woody Zuill (NDC Conferences)“let's not solve a queueing problem by introducing an inventory problem”
- Probably partly right AI guessLean and queueing theory plus context-switching research support the cost of multitasking and partially done work; the inventory framing is a model rather than a measurement.
- Leans partly right Meyer et al. 2014 (productivity perceptions) lines 501-505Observed developers who were blocked (e.g. waiting for a build) switched to email, code reviews or other small tasks and reported that this increases their productivity; this is self-perception of low-cost switches and does not measure work-in-progress or queueing effects.
Sustained mob programming requires members to treat each other with kindness, consideration and respect
UntestableA team norm whose necessity cannot be separated from the practice in available evidence.
· denied 0 ·
Sustained mob programming requires members to treat each other with kindness, consideration and respect
Untestable- Mob Programming, A Whole Team Approach - Woody Zuill (NDC Conferences)“I want to be treated with kindness consideration and respect”
- Untestable AI guessA team norm whose necessity cannot be separated from the practice in available evidence.
Short daily retrospectives keep improvement on track better than infrequent longer ones
UnknownPlausible by analogy to frequent feedback loops but no study compares retrospective cadence.
· denied 0 ·
Short daily retrospectives keep improvement on track better than infrequent longer ones
Unknown- Mob Programming, A Whole Team Approach - Woody Zuill (NDC Conferences)“at the end of every day we'd have a 10 minute retrospective”
- Unknown AI guessPlausible by analogy to frequent feedback loops but no study compares retrospective cadence.
Most software developers, including game developers, work roughly normal hours with only occasional overtime
Leans partly rightIndustry surveys such as IGDA's find crunch still common in games with roughly half of respondents reporting it, so the picture is mixed; the video's own survey is small and self-selected.
· denied 0 ·
Most software developers, including game developers, work roughly normal hours with only occasional overtime
Leans partly right- Overtime & Crunching in Game Development (vs others) (Jason Weimann (GameDev))“overall in general people work pretty damned normal times”
- Leans partly right AI guessIndustry surveys such as IGDA's find crunch still common in games with roughly half of respondents reporting it, so the picture is mixed; the video's own survey is small and self-selected.
Much developer overtime is self-imposed from passion rather than mandated by employers
Leans partly rightSurveys find both self-driven and management-driven crunch, and normative pressure makes voluntary overtime hard to separate from expected overtime.
· denied 0 ·
Much developer overtime is self-imposed from passion rather than mandated by employers
Leans partly right- Overtime & Crunching in Game Development (vs others) (Jason Weimann (GameDev))“it's developers who just really love their product and they can't stop working on it”
- Leans partly right AI guessSurveys find both self-driven and management-driven crunch, and normative pressure makes voluntary overtime hard to separate from expected overtime.
Smaller companies tend to have somewhat more overtime than larger ones
UnknownBased on a small informal survey; broader data on company size and hours in software is inconsistent.
· denied 0 ·
Smaller companies tend to have somewhat more overtime than larger ones
Unknown- Overtime & Crunching in Game Development (vs others) (Jason Weimann (GameDev))“the smaller companies tended to have a little bit more overtime”
- Unknown AI guessBased on a small informal survey; broader data on company size and hours in software is inconsistent.
Game features need more iteration than business software because feel and fun cannot be specified on paper
UntestableA judgment about the nature of the work rather than a measurable claim.
· denied 0 ·
Game features need more iteration than business software because feel and fun cannot be specified on paper
Untestable- Overtime & Crunching in Game Development (vs others) (Jason Weimann (GameDev))“giving that feel and fun on paper and planned out is a whole lot harder”
- Untestable AI guessA judgment about the nature of the work rather than a measurable claim.
Reusing an old feature flag can switch on dormant code paths with catastrophic results
Leans rightThe Knight Capital incident is documented in the SEC order as a repurposed flag plus an incomplete deployment, and flag hygiene guidance exists because of such cases.
· denied 0 ·
Reusing an old feature flag can switch on dormant code paths with catastrophic results
Leans right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“they recycled an old future flag and when they turn it on the last machine that did not receive the new version”
- Very likely right AI guessThe Knight Capital incident is documented in the SEC order as a repurposed flag plus an incomplete deployment, and flag hygiene guidance exists because of such cases.
Trunk-based development only works with a fast comprehensive test suite and same-day code review
Leans partly rightPractitioner accounts and DORA both treat fast automated tests as a prerequisite for continuous delivery; synchronous review is one way to meet the merge cadence but not the only one.
· denied 0 ·
Trunk-based development only works with a fast comprehensive test suite and same-day code review
Leans partly right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“you need to have a pretty strong test Suite in terms of completeness a good coverage and it needs to execute fasts”
- Probably partly right AI guessPractitioner accounts and DORA both treat fast automated tests as a prerequisite for continuous delivery; synchronous review is one way to meet the merge cadence but not the only one.
Ephemeral per-branch environments remove the bottleneck of shared test environments
Leans partly rightThe queueing mechanism is sound and widely reported, but evidence is practitioner case studies and the environments bring their own cost and data-seeding work.
· denied 0 ·
Ephemeral per-branch environments remove the bottleneck of shared test environments
Leans partly right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“we remove the bottleneck okay it's been completely removed”
- Leans partly right AI guessThe queueing mechanism is sound and widely reported, but evidence is practitioner case studies and the environments bring their own cost and data-seeding work.
Trunk-based development is unsuited to products that must tightly control released versions
Leans partly rightRelease branches cut from trunk are a standard way to ship versioned products from trunk, so the limit is weaker than stated, though strict version control does reduce the practice's advantages.
· denied 0 ·
Trunk-based development is unsuited to products that must tightly control released versions
Leans partly right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“maybe trunk base development is not suitable for you and git flow still is a good option”
- Leans partly right AI guessRelease branches cut from trunk are a standard way to ship versioned products from trunk, so the limit is weaker than stated, though strict version control does reduce the practice's advantages.
- Leans partly right DORA State of DevOps 2019 lines 1044-1070DORA notes open-source releases are cut from a branch at a point in time after significant testing, a different cadence from continuous delivery, yet says short-lived branches and small patches still apply there; it does not test products with tightly controlled versions directly.
Developers who deploy their own work to production are happier because they see its impact
Leans partly rightDORA surveys associate continuous delivery with lower burnout and higher job satisfaction, but causation is not isolated and this is one team's impression.
· denied 0 ·
Developers who deploy their own work to production are happier because they see its impact
Leans partly right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“they are way much happier than before when they were just like okay I finished this feature somebody else is going to validate”
- Leans partly right AI guessDORA surveys associate continuous delivery with lower burnout and higher job satisfaction, but causation is not isolated and this is one team's impression.
Feature flags carry an ongoing removal cost that teams must schedule and pay back
Leans rightStale-flag debt is well documented and large companies have built tooling specifically to remove dead flags.
· denied 0 ·
Feature flags carry an ongoing removal cost that teams must schedule and pay back
Leans right- code.talks 2023 - Our journey from Gitflow to Trunk Based Development (code.talks (ehem. Developer Conference))“we need to remove video Flex that there is an extra cost”
- Probably right AI guessStale-flag debt is well documented and large companies have built tooling specifically to remove dead flags.
In TDD the unit of isolation is the test, not the class under test
UntestableA definitional reading of Kent Beck's book rather than an empirical claim.
· denied 0 ·
In TDD the unit of isolation is the test, not the class under test
Untestable- 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) (DevTernity Conference)“the unit of isolation is the test not the thing under test”
- Untestable AI guessA definitional reading of Kent Beck's book rather than an empirical claim.
Customer-readable acceptance test suites are rarely read by customers and carry a heavy maintenance burden
Leans partly rightPractitioner consensus including the Fit author's own retraction supports this, though some teams report value from Gherkin-style specs; no controlled study exists.
· denied 0 ·
Customer-readable acceptance test suites are rarely read by customers and carry a heavy maintenance burden
Leans partly right- 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) (DevTernity Conference)“the customers never really looked at this stuff right”
- Leans partly right AI guessPractitioner consensus including the Fit author's own retraction supports this, though some teams report value from Gherkin-style specs; no controlled study exists.
Getting a test to green with quick dirty code and then refactoring is faster than engineering the design up front
Leans partly rightKent Beck's original claim, consistent with cognitive-load arguments against solving and designing at once, but not directly measured.
· denied 0 ·
Getting a test to green with quick dirty code and then refactoring is faster than engineering the design up front
Leans partly right- 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) (DevTernity Conference)“for this brief moment speed Trump's design I want to get there as fast as I can”
- Leans partly right AI guessKent Beck's original claim, consistent with cognitive-load arguments against solving and designing at once, but not directly measured.
The refactoring step needs no new tests because behaviour is unchanged and already covered
UntestablePractice advice that follows from the definition of refactoring; whether existing tests actually cover the behaviour is case by case.
· denied 0 ·
The refactoring step needs no new tests because behaviour is unchanged and already covered
Untestable- 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) (DevTernity Conference)“when you refactor and this is the really important part you do not write any new tests”
- Untestable AI guessPractice advice that follows from the definition of refactoring; whether existing tests actually cover the behaviour is case by case.
Tests written to probe implementation details should be deleted once they have served their purpose
UntestableA judgment about test maintenance trade-offs with no empirical comparison.
· denied 0 ·
Tests written to probe implementation details should be deleted once they have served their purpose
Untestable- 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) (DevTernity Conference)“at the end of that process delete the tests the tests help guide you but now they're a burden to somebody else”
- Untestable AI guessA judgment about test maintenance trade-offs with no empirical comparison.
Alternating collaboration with individual work produces better solutions than either constant collaboration or isolation
Leans rightThe Bernstein, Shore and Lazer intermittent-collaboration experiment found this pattern, though on abstract problem-solving tasks rather than software work.
· denied 0 ·
Alternating collaboration with individual work produces better solutions than either constant collaboration or isolation
Leans right- Open plan offices are terrible for innovation and productivity (Nick Skillicorn)“people were both collaborating for part of the time and then had time to work individually this gave the high performers the chance”
- Probably right AI guessThe Bernstein, Shore and Lazer intermittent-collaboration experiment found this pattern, though on abstract problem-solving tasks rather than software work.
- Leans right Bernstein & Turban 2018 (open offices) lines 431-434Cites Bernstein, Shore and Lazer finding that intermittent rather than constant social influence produced the best performance in collective problem solving, alongside the paper's own result that constant openness cut face-to-face interaction about 70%; the supporting study is a cited working paper, not this paper's data.
Taking on small third-party dependencies for trivial functions adds fragility out of proportion to the code saved
Leans rightThe left-pad incident and subsequent supply-chain research show deep transitive dependency trees in npm expose projects to removals and malicious updates.
· denied 0 ·
Taking on small third-party dependencies for trivial functions adds fragility out of proportion to the code saved
Leans right- Clean Coders Hate What Happens to Your Code When You Use These Enterprise Programming Tricks (NDC Conferences)“one developer just broke node bab and thousands of projects and 11 lines of JavaScript”
- Probably right AI guessThe left-pad incident and subsequent supply-chain research show deep transitive dependency trees in npm expose projects to removals and malicious updates.
Coding conventions spread by repetition rather than understanding, producing cargo-cult practices
UntestableA sociological framing about how practices propagate.
· denied 0 ·
Coding conventions spread by repetition rather than understanding, producing cargo-cult practices
Untestable- Clean Coders Hate What Happens to Your Code When You Use These Enterprise Programming Tricks (NDC Conferences)“this is how coding guidelines and Enterprise cultures are created by the repetition of an idea”
- Untestable AI guessA sociological framing about how practices propagate.
Work expands to fill the time and headcount given to it
Leans partly rightParkinson's law and Brooks's law have anecdotal and some experimental support for deadline effects, but the ten-versus-hundred example is a single anecdote.
· denied 0 ·
Work expands to fill the time and headcount given to it
Leans partly right- Clean Coders Hate What Happens to Your Code When You Use These Enterprise Programming Tricks (NDC Conferences)“if you tell people this is going to be six months worth of work they will pack it full to the six months and Beyond”
- Leans partly right AI guessParkinson's law and Brooks's law have anecdotal and some experimental support for deadline effects, but the ten-versus-hundred example is a single anecdote.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 1518-1539Software teams allowed to plan with their original (higher) estimates were less productive than those cut by up to 20%, and a company rewarding accurate estimates saw padded estimates with the buffer absorbed into extra work ('work stretching'); headcount is not addressed.
- Leans partly right Jørgensen 2004 (expert estimation) lines 1134-1137Review notes a self-fulfilling-prophecy effect: projects that over-estimate most likely effort can reach high accuracy by spending the remaining effort gold-plating the product.
Names carry most of a program's design intent, so vague names like Manager signal weak design
Leans partly rightIdentifier studies show descriptive names improve comprehension; the specific heuristic about vague suffixes is expert opinion.
· denied 0 ·
Names carry most of a program's design intent, so vague names like Manager signal weak design
Leans partly right- Clean Coders Hate What Happens to Your Code When You Use These Enterprise Programming Tricks (NDC Conferences)“the name is not merely a label on your design your name is your design”
- Leans partly right AI guessIdentifier studies show descriptive names improve comprehension; the specific heuristic about vague suffixes is expert opinion.
- Leans partly right Scalabrino et al. 2019 (understandability) lines 1077-1079All five interviewed developers named identifier quality as a factor in understandability (generic names like processChar were called ambiguous), but none of the quantitative identifier metrics across 444 evaluations correlated more than weakly with understanding; nothing on 'Manager'-style names signalling weak design.
Logging without stated requirements grows until it dominates the codebase
UnknownAnecdotal from client codebases; no measurement of logging proportion across projects.
· denied 0 ·
Logging without stated requirements grows until it dominates the codebase
Unknown- Clean Coders Hate What Happens to Your Code When You Use These Enterprise Programming Tricks (NDC Conferences)“logging is the most important single most important activity in that code base”
- Unknown AI guessAnecdotal from client codebases; no measurement of logging proportion across projects.
The main benefits of microservices are independent deployability, data isolation and organisational autonomy
Leans partly rightPractitioner surveys and case studies report these as the realised motivations, alongside maintainability and operational costs that offset them.
· denied 0 ·
The main benefits of microservices are independent deployability, data isolation and organisational autonomy
Leans partly right- When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 (GOTO Conferences)“independent deployability um i say data partitioning and i would say sort of organizational autonomy”
- Probably partly right AI guessPractitioner surveys and case studies report these as the realised motivations, alongside maintainability and operational costs that offset them.
- Leans partly right Soldani et al. 2018 (microservices review) lines 1070-1074Across 51 industrial sources independent deployment (19) and database-per-service/data isolation (20) are major gains, but scalability (31) and loose coupling (27) are cited most, decentralised governance appears in only 7, and organisational benefits were out of scope.
- Leans partly right DORA State of DevOps 2019 lines 1071-1079DORA finds what drives performance is a loosely coupled architecture in which teams can test, deploy and change their systems independently, naming bounded contexts, APIs and microservices as ways to get there; data isolation and organisational autonomy are not measured separately.
Deploying one small service limits the scope and risk of each release compared with redeploying a whole monolith
Leans partly rightSmaller change sets do carry less risk, but as Fowler notes in the same conversation the distributed system adds integration risk a monolith can test end to end, so the net effect depends.
· denied 0 ·
Deploying one small service limits the scope and risk of each release compared with redeploying a whole monolith
Leans partly right- When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 (GOTO Conferences)“if i'm just deploying a single service i can reduce the scope of that individual deployment”
- Leans partly right AI guessSmaller change sets do carry less risk, but as Fowler notes in the same conversation the distributed system adds integration risk a monolith can test end to end, so the net effect depends.
- Leans right Soldani et al. 2018 (microservices review) lines 971-98119 of 51 industrial sources highlight that microservices deploy and undeploy independently and 14 that live updates apply to one service without touching the others, which is the mechanism behind smaller release scope; grey literature, no measured risk data.
Process boundaries enforce modularity that in-process modules fail to because languages let developers violate them
Leans partly rightArchitecture erosion studies confirm in-process modules decay, but distributed monoliths show process boundaries get violated too via shared databases and chatty coupling.
· denied 0 ·
Process boundaries enforce modularity that in-process modules fail to because languages let developers violate them
Leans partly right- When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 (GOTO Conferences)“once you make that a service a process boundary violating those things becomes really painful”
- Leans partly right AI guessArchitecture erosion studies confirm in-process modules decay, but distributed monoliths show process boundaries get violated too via shared databases and chatty coupling.
Splitting a shared relational database is the hardest part of decomposition and gives up joins and transactions
Leans rightLoss of cross-service joins and ACID transactions is intrinsic to the approach and migration literature consistently names data as the main difficulty.
· denied 0 ·
Splitting a shared relational database is the hardest part of decomposition and gives up joins and transactions
Leans right- When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 (GOTO Conferences)“if you're going to micro services that's all going out the window”
- Very likely right AI guessLoss of cross-service joins and ACID transactions is intrinsic to the approach and migration literature consistently names data as the main difficulty.
- Leans right Soldani et al. 2018 (microservices review) lines 991-999Storage is the primary development-time pain in the grey literature: distributing data makes consistency hard (21 sources), distributed transactions hard (18) and cross-store queries hard (9), matching the loss of joins and transactions.
Adopting microservices without changing the organisation yields the costs without the benefits
Leans partly rightConsistent with Conway's law research and practitioner reports, but it is an expert judgment rather than a measured outcome.
· denied 0 ·
Adopting microservices without changing the organisation yields the costs without the benefits
Leans partly right- When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 (GOTO Conferences)“then do nothing to change your old-fashioned top-down command and control organization you're going to end up with probably the worst of both worlds”
- Leans partly right AI guessConsistent with Conway's law research and practitioner reports, but it is an expert judgment rather than a measured outcome.
Static typing produces fewer bugs and more readable code in large systems
Leans partly rightLarge GitHub studies found a small defect advantage for static typing that weakened on replication, and bug-detectability studies suggest a type checker catches a minority of real bugs, so the benefit is real but modest.
· denied 0 ·
Static typing produces fewer bugs and more readable code in large systems
Leans partly right- Static vs Dynamic Typing (Boot dev)“the advice has always been static typing is better and the reason being it results in fewer bugs”
- Leans partly right AI guessLarge GitHub studies found a small defect advantage for static typing that weakened on replication, and bug-detectability studies suggest a type checker catches a minority of real bugs, so the benefit is real but modest.
- Leans partly right Kleinschmager et al. 2012 (static types) lines 447-473Static types made undocumented classes faster to use (4 of 5 class-identification tasks) and type errors faster to fix, but gave no benefit on semantic errors; the study measured time, not bug counts, on a 30-class, 1300-line program, so 'fewer bugs' and 'large systems' are untested.
- Leans partly right Hanenberg et al. 2014 (static types) lines 111-121The authors conclude static types act as effective documentation and reduce effort to fix type errors but may not help with semantic errors; the readability mechanism is supported (fewer file switches, less navigation) while defect rates and large codebases were not studied.
- Leans partly right Prechelt 2000 (seven languages) lines 340-384Across 80 implementations of one small program, the dynamically typed scripts were not less reliable than the statically typed C/C++/Java programs; C/C++ were the least reliable group and half the Java programs crashed on empty inputs, so no reliability edge for static typing appeared, though only small programs were compared.
- Leans partly right Ray et al. 2014 (languages on GitHub) lines 721-725In 729 GitHub projects statically typed languages have a modestly lower association with bug-fix commits than dynamic ones (static functional vs dynamic functional p=0.034), but language explains under 1% of deviance versus project activity, bug fixes are identified by commit-message keywords, and readability is not measured.
- Unknown Berger et al. 2019 (languages reproduction) lines 203-210The reproduction concludes the GitHub data cannot establish a causal link between language and code quality and even the correlation is questionable; after cleaning, only C++ (more bugs) and Clojure, Haskell, Ruby (fewer) remain significant with exceedingly small effects, a pattern that does not split by static vs dynamic typing.
DORA metrics measure delivery velocity and stability but do not translate directly into business outcomes
Leans partly rightDORA's own reports find the four keys correlate with organisational performance, so a link exists, but it is indirect and does not say whether features were the right ones.
· denied 0 ·
DORA metrics measure delivery velocity and stability but do not translate directly into business outcomes
Leans partly right- DORA Metrics: We've Been Using Them Wrong (LinearB)“Dora metrics don't always equal business outcomes the two are not the same thing”
- Leans partly right AI guessDORA's own reports find the four keys correlate with organisational performance, so a link exists, but it is indirect and does not say whether features were the right ones.
- Leans partly right DORA State of DevOps 2019 lines 80-86The four metrics do measure throughput and stability as the claim says, but DORA's own survey model finds SDO performance predicts self-reported organisational performance (profitability, market share, customer satisfaction), with elite performers twice as likely to meet their goals, so the metrics do translate statistically, if not mechanically, into business outcomes.
DORA metrics are retrospective and cannot be acted on until after code has shipped
Leans partly rightThey are lagging indicators by construction, though teams routinely act on their trends, so the practical limitation is smaller than framed.
· denied 0 ·
DORA metrics are retrospective and cannot be acted on until after code has shipped
Leans partly right- DORA Metrics: We've Been Using Them Wrong (LinearB)“when you measure them your process has already happened”
- Leans partly right AI guessThey are lagging indicators by construction, though teams routinely act on their trends, so the practical limitation is smaller than framed.
Pull requests spend about half their lifetime idle waiting for someone
Leans partly rightA vendor dataset with a product to sell, though independent studies at Google and Microsoft also find review wait time dominates review cycle time.
· denied 0 ·
Pull requests spend about half their lifetime idle waiting for someone
Leans partly right- DORA Metrics: We've Been Using Them Wrong (LinearB)“half of all pull requests that we analyzed are idle for half of their lifespan”
- Leans partly right AI guessA vendor dataset with a product to sell, though independent studies at Google and Microsoft also find review wait time dominates review cycle time.
Developers do not care about DORA metrics, only about merging their code quickly
UntestableA generalisation about motivation that varies by team.
· denied 0 ·
Developers do not care about DORA metrics, only about merging their code quickly
Untestable- DORA Metrics: We've Been Using Them Wrong (LinearB)“developers don't really care about Dora metrics”
- Untestable AI guessA generalisation about motivation that varies by team.
Automatically approving trivial changes and routing risky ones to senior reviewers speeds flow without losing safety
Leans partly rightRisk-based review routing is plausible and used at large companies, but the benefit here rests on a vendor's product claim with no independent measurement.
· denied 0 ·
Automatically approving trivial changes and routing risky ones to senior reviewers speeds flow without losing safety
Leans partly right- DORA Metrics: We've Been Using Them Wrong (LinearB)“minor changes like a text file or uh something like that automatically approved you know you don't even need a reviewer on that”
- Leans partly right AI guessRisk-based review routing is plausible and used at large companies, but the benefit here rests on a vendor's product claim with no independent measurement.
- Leans partly right McIntosh et al. 2014 (review coverage) lines 548-560Components with more self-approved or undiscussed changes have more post-release defects in Qt (self-approval above 0.84 adds about five), which cautions against skipping review, though the study does not separate trivial from risky changes.
- Leans partly right Bird et al. 2011 (code ownership) lines 672-680Because changes by low-expertise minor contributors predict pre- and post-release failures in Windows, the authors recommend giving those changes more scrutiny, preferably from major contributors; the routing policy was under evaluation, not yet tested.
- Leans partly right Sadowski et al. 2018 (Google code review) lines 441-444The least satisfied Google review responses concern very small changes (1 word or 2 lines) and config changes where review 'had less impact', consistent with trivial changes gaining little from review; safety of auto-approval is not tested.
Mutation score measures test suite quality better than coverage does
Leans rightJust et al. found mutant detection correlates with real-fault detection, with caveats about mutant representativeness.
· denied 0 ·
Mutation score measures test suite quality better than coverage does
Leans right- Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024 (NDC Conferences)“the quality of your tests can be gauged by the percentage of mutations killed”
- Probably right AI guessJust et al. found mutant detection correlates with real-fault detection, with caveats about mutant representativeness.
- Leans partly right Inozemtseva & Holmes 2014 (coverage) lines 635-639The study uses mutation score as its ground-truth measure of fault-detection effectiveness and finds coverage tracks it only weakly; the authors suggest mutation score as a substitute for coverage, but this is their judgment, not a head-to-head test against real faults.
A surviving mutant reveals either a missing test or code that can be removed
Leans partly rightA surviving mutant may be an equivalent mutant (e.g. == changed to >= with identical behaviour) rather than a missing test, and manual inspection is needed to tell; the study classified up to 35% of mutants as equivalent, so the either/or omits a third case.
· denied 0 ·
A surviving mutant reveals either a missing test or code that can be removed
Leans partly right- Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024 (NDC Conferences)“your tests are inadequate to protect this change this Behavior modifying change or the code that was mutated is extraneous”
- Probably right AI guessFollows from the technique, with the third possibility of an equivalent mutant that the speaker also acknowledges.
- Leans partly right Inozemtseva & Holmes 2014 (coverage) lines 212-250A surviving mutant may be an equivalent mutant (e.g. == changed to >= with identical behaviour) rather than a missing test, and manual inspection is needed to tell; the study classified up to 35% of mutants as equivalent, so the either/or omits a third case.
Mutation testing is too slow to run routinely without parallelisation or incremental selection
Leans rightRuntime is the documented adoption barrier; Google's deployment runs mutation analysis only on changed lines for this reason.
· denied 0 ·
Mutation testing is too slow to run routinely without parallelisation or incremental selection
Leans right- Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024 (NDC Conferences)“it is just not practical to do on a frequent basis”
- Very likely right AI guessRuntime is the documented adoption barrier; Google's deployment runs mutation analysis only on changed lines for this reason.
Equivalent mutants cannot be detected automatically and require human judgment
Probably rightManual inspection is required because automatically determining whether a mutant is equivalent is undecidable, which is why studies fall back on assuming anything the master suite misses is equivalent.
· denied 0 ·
Equivalent mutants cannot be detected automatically and require human judgment
Probably right- Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024 (NDC Conferences)“it is not really detectable in any practical way”
- Very likely right AI guessEquivalent mutant detection is undecidable in general; heuristics and compiler-based detection remove some but not all.
- Probably right Inozemtseva & Holmes 2014 (coverage) lines 280-281Manual inspection is required because automatically determining whether a mutant is equivalent is undecidable, which is why studies fall back on assuming anything the master suite misses is equivalent.
Higher-level behavioural tests make mutation testing more practical than many fine-grained unit tests
UnknownA practitioner hunch; fewer larger tests may run slower per mutant, so the net effect on runtime is unclear.
· denied 0 ·
Higher-level behavioural tests make mutation testing more practical than many fine-grained unit tests
Unknown- Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024 (NDC Conferences)“when I have higher level tests that tests my functionality that that is probably one of the keys to Breaking the time barrier”
- Unknown AI guessA practitioner hunch; fewer larger tests may run slower per mutant, so the net effect on runtime is unclear.
Full line coverage is relatively easy to reach when a team is motivated
Leans partly rightAchievable for many codebases but costly for legacy or hardware-bound code; coverage-driven tests are often weak, which is the speaker's own point.
· denied 0 ·
Full line coverage is relatively easy to reach when a team is motivated
Leans partly right- Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024 (NDC Conferences)“that's actually relatively easy to get if you're if you're motivated to do it”
- Leans partly right AI guessAchievable for many codebases but costly for legacy or hardware-bound code; coverage-driven tests are often weak, which is the speaker's own point.
- Leans wrong Inozemtseva & Holmes 2014 (coverage) lines 664-667Authors call extremely high coverage very difficult to reach, and even their five actively developed Java projects with 600-8,000 test methods sit at 27-76% statement coverage; no motivated team pushing for 100% was studied.
An AI reviewer can take an automated first pass at a pull request before a human reviews it.
Leans rightAI review tools do produce first-pass comments; how much of the human review they replace is not independently measured.
· denied 0 ·
An AI reviewer can take an automated first pass at a pull request before a human reviews it.
Leans right- Code review is no longer the bottleneck (OpenAI)“Cloud code review has already taken a first pass.”
- Probably right AI guessAI review tools do produce first-pass comments; how much of the human review they replace is not independently measured.
Industry and regulatory status do not predict whether DevOps practices improve delivery performance.
Leans rightControlling for industry, DORA found no evidence that industry affects SDO performance except retail (which did slightly better), including highly regulated financial services and government; organisation size over 5,000 employees did predict lower performance.
· denied 0 ·
Industry and regulatory status do not predict whether DevOps practices improve delivery performance.
Leans right- Accelerate: The State of DevOps with Dr. Nicole Forsgren (Scott Hanselman)“there was no statistical evidence that it matters”
- Leans partly right AI guessThe DORA models found no industry effect, but a null result from a voluntary survey sample does not prove the practices work equally everywhere.
- Leans right DORA State of DevOps 2019 lines 429-446Controlling for industry, DORA found no evidence that industry affects SDO performance except retail (which did slightly better), including highly regulated financial services and government; organisation size over 5,000 employees did predict lower performance.
Emergency changes made under stress usually skip testing, which is when testing is most needed.
Leans partly rightSkipped testing in emergency changes is widely reported in incident reviews but not quantified here.
· denied 0 ·
Emergency changes made under stress usually skip testing, which is when testing is most needed.
Leans partly right- Accelerate: The State of DevOps with Dr. Nicole Forsgren (Scott Hanselman)“the big difference there is we usually skip testing which is the time that we should not be skipping testing”
- Leans partly right AI guessSkipped testing in emergency changes is widely reported in incident reviews but not quantified here.
High-performing teams rely on automated test suites and reserve manual effort for exploratory testing.
Leans partly rightDORA reports less manual testing among elite performers, but this is a self-reported association rather than a measured cause.
· denied 0 ·
High-performing teams rely on automated test suites and reserve manual effort for exploratory testing.
Leans partly right- Accelerate: The State of DevOps with Dr. Nicole Forsgren (Scott Hanselman)“they have incredibly efficient test Suites they have great parallelization so that they can be very very strategic about exploratory testing”
- Leans partly right AI guessDORA reports less manual testing among elite performers, but this is a self-reported association rather than a measured cause.
- Leans partly right DORA State of DevOps 2019 lines 1535-1549Elite performers report automated unit tests 87% vs 57% for low performers, acceptance tests 58% vs 28%, and automated production deployment 69% vs 17%; the report does not ask about exploratory or manual testing.
Shipping code that has not been exercised by a unit test is unprofessional, and TDD is the surest way to avoid it.
Leans partly rightAuthors concede that following the test-first rule prevents shortcuts that skip tests, but an ethnographic study found developers wrote more production code than needed, omitted refactoring and let tests fall behind even when nominally test-first; the 'unprofessional' judgment is not testable.
· denied 0 ·
Shipping code that has not been exercised by a unit test is unprofessional, and TDD is the surest way to avoid it.
Leans partly right- Jim Coplien and Bob Martin Debate TDD (alexsmail)“it is irresponsible for a developer to ship a line of code that he has not executed in unit test”
- Leans partly right Karac & Turhan 2018 (TDD review) lines 166-177Authors concede that following the test-first rule prevents shortcuts that skip tests, but an ethnographic study found developers wrote more production code than needed, omitted refactoring and let tests fall behind even when nominally test-first; the 'unprofessional' judgment is not testable.
- Untestable AI guessA professional norm rather than a measurable outcome; whether untested code ships is checkable, whether that is unprofessional is a value judgment.
Architecture should evolve incrementally, informed by executing code and tests, rather than be designed in full up front.
Leans partly rightIncremental architecture is standard agile practice, but there is no controlled evidence it beats moderate up-front design and both debaters endorse some up-front structure.
· denied 0 ·
Architecture should evolve incrementally, informed by executing code and tests, rather than be designed in full up front.
Leans partly right- Jim Coplien and Bob Martin Debate TDD (alexsmail)“the architecture evolves it is informed by code that executes and it is informed by the test that you write”
- Leans partly right AI guessIncremental architecture is standard agile practice, but there is no controlled evidence it beats moderate up-front design and both debaters endorse some up-front structure.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 1193-1196The review reports lack of attention to design and architectural issues as a limitation found in an agile study and repeatedly raised in the literature, so incremental evolution carries a documented risk of under-investing in architecture; the studies are weak and do not test the claim directly.
Some domain structure must be fixed up front because incremental refactoring cannot reach the right architecture from a naive starting point.
Leans partly rightLarge-scale architectural decisions are known to be costly to reverse, but how much up-front design is needed is unresolved.
· denied 0 ·
Some domain structure must be fixed up front because incremental refactoring cannot reach the right architecture from a naive starting point.
Leans partly right- Jim Coplien and Bob Martin Debate TDD (alexsmail)“you're not going to refactor your way to the right architecture from from that one”
- Leans partly right AI guessLarge-scale architectural decisions are known to be costly to reverse, but how much up-front design is needed is unresolved.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 1193-1196Participants in an XP project said there were not enough discussions on design and architecture, and the review lists lack of attention to architecture as a recurring limitation of agile development; this supports the worry but not the specific claim that incremental refactoring cannot reach the right architecture.
Design by contract covers the whole input range of a method, giving broader assurance than sampled unit tests.
Leans partly rightContracts specify behaviour over all inputs but are only enforced on executed inputs unless statically verified, so coverage gains depend on tooling.
· denied 0 ·
Design by contract covers the whole input range of a method, giving broader assurance than sampled unit tests.
Leans partly right- Jim Coplien and Bob Martin Debate TDD (alexsmail)“they actually give you broader coverage because you're covering the entire range of the arguments rather than just you know randomly scattering some values”
- Leans partly right AI guessContracts specify behaviour over all inputs but are only enforced on executed inputs unless statically verified, so coverage gains depend on tooling.
Class-level unit tests are hard to trace to business value.
UntestableA judgment about traceability rather than a measurable claim.
· denied 0 ·
Class-level unit tests are hard to trace to business value.
Untestable- Jim Coplien and Bob Martin Debate TDD (alexsmail)“it's really really difficult to trace those those apis at a class level sometimes all the way up to business significance”
- Untestable AI guessA judgment about traceability rather than a measurable claim.
Experience, lines of code written and degrees held did not predict programmer productivity.
Leans partly rightThis null result holds in the PSP dataset, but other studies find modest effects of relevant experience, so it is not settled.
· denied 0 ·
Experience, lines of code written and degrees held did not predict programmer productivity.
Leans partly right- Challenging the Myth of the 10x Programmer (Software Engineering Institute | Carnegie Mellon University)“what about degrees obtained nothing mattered”
- Leans partly right AI guessThis null result holds in the PSP dataset, but other studies find modest effects of relevant experience, so it is not settled.
Productivity differences across programmers follow a long-tailed log-normal distribution, not a bell curve.
Leans partly rightWork time distributions across 1491 observations show a clear long right tail (skewness about 1 to 2) and a normal assumption over-estimates variability almost always; the paper confirms long-tailed non-normal shape but does not fit a log-normal.
· denied 0 ·
Productivity differences across programmers follow a long-tailed log-normal distribution, not a bell curve.
Leans partly right- Challenging the Myth of the 10x Programmer (Software Engineering Institute | Carnegie Mellon University)“the distribution isn't a bells curve it's more log normal long tail”
- Leans partly right Prechelt 1999 (28:1 legend) lines 643-648Work time distributions across 1491 observations show a clear long right tail (skewness about 1 to 2) and a normal assumption over-estimates variability almost always; the paper confirms long-tailed non-normal shape but does not fit a log-normal.
- Leans partly right AI guessTask-time distributions are commonly right-skewed, consistent with this, though the exact form varies by dataset.
Small tasks are easier to estimate and reveal runaway work early enough for the team to intervene.
Leans partly rightEstimation error grows with task size in most estimation research; the early-intervention benefit is plausible but less directly measured.
· denied 0 ·
Small tasks are easier to estimate and reveal runaway work early enough for the team to intervene.
Leans partly right- Challenging the Myth of the 10x Programmer (Software Engineering Institute | Carnegie Mellon University)“it's easier to estimate it's easier to know when it's gone off the rails”
- Leans partly right AI guessEstimation error grows with task size in most estimation research; the early-intervention benefit is plausible but less directly measured.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 3165-3170Controlled experiments show a magnitude effect: smaller tasks are overestimated or at least less underestimated while larger tasks are underestimated, so small tasks carry less bias; the early-warning benefit is not studied.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 778-786In one three-week student XP project, initial estimates were about one third of actuals, blamed on inexperience and coarse user stories, and improved as the project went on; a single small case bearing only on the story-granularity half of the claim.
Shortening sprints too far increases estimation uncertainty because each sprint samples less work.
Leans partly rightStatistically sound for sprint-level forecasting, but no study pins down where the diminishing returns begin.
· denied 0 ·
Shortening sprints too far increases estimation uncertainty because each sprint samples less work.
Leans partly right- Challenging the Myth of the 10x Programmer (Software Engineering Institute | Carnegie Mellon University)“what happens when you reduce your sample size the uncertainty becomes bigger”
- Leans partly right AI guessStatistically sound for sprint-level forecasting, but no study pins down where the diminishing returns begin.
Unit tests alone cannot catch integration errors, so a suite of only unit tests does not make code self-testing.
Leans rightBy construction isolated unit tests do not exercise component interaction; integration failures are a well-documented defect class.
· denied 0 ·
Unit tests alone cannot catch integration errors, so a suite of only unit tests does not make code self-testing.
Leans right- SWETUGG 2015 - Is TDD Dead? What are the alternatives? - Emily Bache (Swetugg)“there are classes of defects that unit tests do not find kind of by definition they do not find integration errors”
- Probably right AI guessBy construction isolated unit tests do not exercise component interaction; integration failures are a well-documented defect class.
Team velocity is mostly set by organizational obstacles, so teams cannot raise it by working harder.
Leans partly rightOrganizational friction does affect throughput, but velocity also varies with skill and task mix, so 'only' is too strong.
· denied 0 ·
Team velocity is mostly set by organizational obstacles, so teams cannot raise it by working harder.
Leans partly right- #NoEstimates (Allen Holub) (Allen Holub)“the only way you can make that number larger is to improve the environment”
- Leans partly right AI guessOrganizational friction does affect throughput, but velocity also varies with skill and task mix, so 'only' is too strong.
- Leans partly right DORA State of DevOps 2019 lines 439-446Enterprises over 5,000 employees are lower performers, attributed to heavyweight process and controls and tightly coupled architectures, and external change approval makes teams 2.6 times more likely to be low performers; this supports organisational constraints setting delivery throughput, though velocity and individual effort are not measured.
Most of a long backlog is wasted because items far down will change before they are reached.
Leans partly rightRequirements volatility is well documented; the claim that distant items are nearly worthless is plausible but unmeasured.
· denied 0 ·
Most of a long backlog is wasted because items far down will change before they are reached.
Leans partly right- #NoEstimates (Allen Holub) (Allen Holub)“any backlog that's got a 100 stories on it has got something really wrong with it”
- Leans partly right AI guessRequirements volatility is well documented; the claim that distant items are nearly worthless is plausible but unmeasured.
Maturity models go out of date too quickly to guide technology transformations.
UntestableAn argument about how to frame a transformation, not a measured outcome.
· denied 0 ·
Maturity models go out of date too quickly to guide technology transformations.
Untestable- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“if we create maturity models they go out of date too fast”
- Untestable AI guessAn argument about how to frame a transformation, not a measured outcome.
Technology alone does not raise performance; it must be combined with lean management and organizational culture.
Leans partly rightDORA's models and Bessen's HBR work support IT-plus-management, but the specific synergy is modeled, not experimentally shown.
· denied 0 ·
Technology alone does not raise performance; it must be combined with lean management and organizational culture.
Leans partly right- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“we need technology and process and culture to really get this strong synergy”
- Leans partly right AI guessDORA's models and Bessen's HBR work support IT-plus-management, but the specific synergy is modeled, not experimentally shown.
- Leans right DORA State of DevOps 2019 lines 690-706The report's model has culture of psychological safety, a clear change process and cloud implementation (only 29% of self-described cloud users met the NIST characteristics that actually predict performance) all driving delivery performance, and tells organisations to start with automation plus clear change approval and a healthy culture.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 1303-1311The review's strongest evidence, from studies of mature agile teams, is that success requires attention to human and social factors (balanced autonomy, trust, interpersonal skills); it concerns agile adoption rather than technology investment.
A loosely coupled architecture that lets teams test, deploy and change independently predicts delivery performance more than the platform or technology used.
Leans partly rightDORA 2017 found architecture the strongest predictor of continuous delivery while mainframe and greenfield status were not significant; still survey-based.
· denied 0 ·
A loosely coupled architecture that lets teams test, deploy and change independently predicts delivery performance more than the platform or technology used.
Leans partly right- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“the thing that is most important is having a loosely coupled architecture both at the team level and at the technology level”
- Leans partly right AI guessDORA 2017 found architecture the strongest predictor of continuous delivery while mainframe and greenfield status were not significant; still survey-based.
- Leans partly right DORA State of DevOps 2019 lines 1042-1050DORA revalidated that a loosely coupled architecture, defined as teams independently testing, deploying and changing their systems without depending on other teams, positively predicts continuous delivery; the 2019 report does not rank it against platform or technology choice.
Lightweight change approval within the team outperforms heavyweight external change approval boards.
Leans rightRespondents whose organisations require CAB or senior-manager approval were 2.6 times more likely to be low performers, formal approval showed no association with lower change failure rates, and a clear, lightweight change process made teams 1.8 times more likely to be elite.
· denied 0 ·
Lightweight change approval within the team outperforms heavyweight external change approval boards.
Leans right- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“number one or number two biggest constraint for most teams is a lightweight change approval process”
- Leans partly right AI guessDORA 2019 found external approvals correlated with worse performance and no better stability; correlational.
- Leans right DORA State of DevOps 2019 lines 1272-1283Respondents whose organisations require CAB or senior-manager approval were 2.6 times more likely to be low performers, formal approval showed no association with lower change failure rates, and a clear, lightweight change process made teams 1.8 times more likely to be elite.
A generative, high-trust, blameless organizational culture predicts software delivery and organizational performance.
Leans partly rightWestrum culture measures predict performance in DORA's structural models, with survey-based data.
· denied 0 ·
A generative, high-trust, blameless organizational culture predicts software delivery and organizational performance.
Leans partly right- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“the generative group was most highly correlated with high performance”
- Leans partly right AI guessWestrum culture measures predict performance in DORA's structural models, with survey-based data.
- Leans right DORA State of DevOps 2019 lines 1368-1373A culture of psychological safety (measured with Google's Project Aristotle items) predicts software delivery performance, organisational performance and productivity, extending earlier years' finding that a Westrum generative culture of information flow, trust and risk-sharing predicts SDO performance.
Transformational leadership is necessary but not sufficient for high delivery performance.
Leans partly rightDORA found the bottom third of leaders half as likely to be high performers while top leaders were no better than median; one survey year.
· denied 0 ·
Transformational leadership is necessary but not sufficient for high delivery performance.
Leans partly right- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“leadership is necessary but not sufficient”
- Leans partly right AI guessDORA found the bottom third of leaders half as likely to be high performers while top leaders were no better than median; one survey year.
High-performing delivery teams report less deployment pain and burnout and are more likely to recommend their workplace.
Leans partly rightSelf-reported associations in DORA data; direction of causation is not established.
· denied 0 ·
High-performing delivery teams report less deployment pain and burnout and are more likely to recommend their workplace.
Leans partly right- The Key to High Performance: What the Data Says - Dr. Nicole Forsgren (IT Revolution)“less deployment pain less burnout higher employee Net Promoter Score”
- Leans partly right AI guessSelf-reported associations in DORA data; direction of causation is not established.
- Leans partly right DORA State of DevOps 2019 lines 1766-1770The highest performers are half as likely to report feeling burned out, and good technical practices and clear change management reduce burnout in the model; deployment pain and willingness to recommend the workplace were studied in earlier years, not here.
Long working hours raise rates of injury, illness, cardiovascular disease and mental health problems through chronic stress.
Leans rightLarge epidemiological studies link long hours to injury, stroke and depression; stress biomarkers provide a mechanism.
· denied 0 ·
Long working hours raise rates of injury, illness, cardiovascular disease and mental health problems through chronic stress.
Leans right- Physiological Effects of Crunch: A Look at the Science (GDC Festival of Gaming)“a very clear linear relationship between hours worked above 8 a day or 40 a week with greater incidence of injury or illness”
- Very likely right AI guessLarge epidemiological studies link long hours to injury, stroke and depression; stress biomarkers provide a mechanism.
- Leans partly right Pencavel 2014 (working hours) lines 1066-1078Cites contemporary studies: NLSY workers on 12+ h days or 60+ h weeks had 37% and 23% higher injury hazard, nurses on shifts over 12 h or weeks over 40 h made more errors, interns crashed more after extended shifts; injury and illness supported, cardiovascular and mental-health effects not covered, and this is secondary citation not the paper's own data.
Caffeine tolerance builds within days, so it cannot offset extended overtime.
Leans rightTolerance to caffeine's alerting effects develops within days to a week in most studies, though partial benefits persist for some.
· denied 0 ·
Caffeine tolerance builds within days, so it cannot offset extended overtime.
Leans right- Physiological Effects of Crunch: A Look at the Science (GDC Festival of Gaming)“you reach caffeine tolerance shockingly quickly it takes about a week”
- Probably right AI guessTolerance to caffeine's alerting effects develops within days to a week in most studies, though partial benefits persist for some.
Letting workers choose their own hours improves satisfaction, health and productivity.
Leans partly rightSchedule control shows consistent positive associations in occupational health research, but effects are moderate and mostly observational.
· denied 0 ·
Letting workers choose their own hours improves satisfaction, health and productivity.
Leans partly right- Physiological Effects of Crunch: A Look at the Science (GDC Festival of Gaming)“allowing people flexible time over their schedules whether in crunch or not has basically nothing but positive effects”
- Probably partly right AI guessSchedule control shows consistent positive associations in occupational health research, but effects are moderate and mostly observational.
A full day of rest after a missed night of sleep does not restore performance to baseline.
Leans partly rightShift-work recovery studies support incomplete recovery after one night; the size depends on the deficit.
· denied 0 ·
A full day of rest after a missed night of sleep does not restore performance to baseline.
Leans partly right- Physiological Effects of Crunch: A Look at the Science (GDC Festival of Gaming)“even after a full night's sleep and a full day off test subjects were not recovered all the way back to their baseline levels”
- Probably partly right AI guessShift-work recovery studies support incomplete recovery after one night; the size depends on the deficit.
Performance problems concentrate in a small part of a system, so targeted optimization beats a full rewrite.
Leans rightHotspot concentration is a well-established profiling finding; the exact ratio varies.
· denied 0 ·
Performance problems concentrate in a small part of a system, so targeted optimization beats a full rewrite.
Leans right- Joel Spolsky, Things You Should Never Do: Rewriting the Code from Scratch (ratherabstract)“When optimizing for speed, 1% of the work gets you 99% of the bang.”
- Probably right AI guessHotspot concentration is a well-established profiling finding; the exact ratio varies.
Dynamic languages became popular because they gave fast feedback and concise syntax for early web work, not because dynamic typing is inherently better.
Leans partly rightA plausible historical account consistent with language-adoption timelines, but causal attribution from history is not testable.
· denied 0 ·
Dynamic languages became popular because they gave fast feedback and concise syntax for early web work, not because dynamic typing is inherently better.
Leans partly right- Why Static Typing Came Back • Richard Feldman • GOTO 2022 (GOTO Conferences)“these benefits don't require Dynamic typing they just first appeared in Dynamic languages”
- Leans partly right AI guessA plausible historical account consistent with language-adoption timelines, but causal attribution from history is not testable.
Gradual typing requires a more complex type system and keeps dynamic runtime overhead, so it is not the best of both worlds.
Leans partly rightType-system complexity in TypeScript and Sorbet supports this, though gradual typing's migration benefit is real.
· denied 0 ·
Gradual typing requires a more complex type system and keeps dynamic runtime overhead, so it is not the best of both worlds.
Leans partly right- Why Static Typing Came Back • Richard Feldman • GOTO 2022 (GOTO Conferences)“it has very serious unavoidable downsides that just come with the territory of deciding that you want gradual types”
- Leans partly right AI guessType-system complexity in TypeScript and Sorbet supports this, though gradual typing's migration benefit is real.
Non-blocking type errors keep the fast feedback of static types without preventing you from running code or tests.
Leans partly rightTypeScript's emit-on-error demonstrates feasibility; the productivity claim is anecdotal.
· denied 0 ·
Non-blocking type errors keep the fast feedback of static types without preventing you from running code or tests.
Leans partly right- Why Static Typing Came Back • Richard Feldman • GOTO 2022 (GOTO Conferences)“when these go from sort of blocking compile errors to non-blocking error reports that are just informative wow this just becomes sort of all upside”
- Leans partly right AI guessTypeScript's emit-on-error demonstrates feasibility; the productivity claim is anecdotal.
Nearly every mainstream language that emerged after the 2000s is statically typed.
Leans rightConsistent with RedMonk and similar rankings, with a few exceptions.
· denied 0 ·
Nearly every mainstream language that emerged after the 2000s is statically typed.
Leans right- Why Static Typing Came Back • Richard Feldman • GOTO 2022 (GOTO Conferences)“C sharp action script go Russ Dart kotlin typescript and Swift that's a quite a different story”
- Probably right AI guessConsistent with RedMonk and similar rankings, with a few exceptions.
Asynchronous review loses the two-way conversation that makes review educational and lets the author explain intent.
Leans partly rightSynchronous review has documented knowledge-sharing benefits, but asynchronous tools also support discussion; the loss is a matter of degree.
· denied 0 ·
Asynchronous review loses the two-way conversation that makes review educational and lets the author explain intent.
Leans partly right- Why Pull Requests Are a Bad Idea • Dave Farley • GOTO 2022 (GOTO Conferences)“so now we've lost two-way Communications as part of the review”
- Leans partly right AI guessSynchronous review has documented knowledge-sharing benefits, but asynchronous tools also support discussion; the loss is a matter of degree.
- Leans partly right Bacchelli & Bird 2013 (Microsoft code review) lines 556-560Tool-based reviewers at Microsoft frequently (20-40% of reviews) go talk to the author in person to understand the change, and the authors recommend in-person or synchronous channels because tool comments alone do not meet understanding needs; no direct comparison of educational value.
Pull requests were designed to gatekeep untrusted open-source contributors and fit poorly inside a trusted team.
Leans partly rightInside a single trusted company, all 44 surveyed Google engineers agree code review is valuable and gatekeeping/security oversight are among its stated purposes, which argues against review fitting poorly in a trusted team; the claim's history of pull requests is not addressed.
· denied 0 ·
Pull requests were designed to gatekeep untrusted open-source contributors and fit poorly inside a trusted team.
Leans partly right- Why Pull Requests Are a Bad Idea • Dave Farley • GOTO 2022 (GOTO Conferences)“pull requests were invented to gatekeep access to open source projects”
- Leans partly right Sadowski et al. 2018 (Google code review) lines 448-453Inside a single trusted company, all 44 surveyed Google engineers agree code review is valuable and gatekeeping/security oversight are among its stated purposes, which argues against review fitting poorly in a trusted team; the claim's history of pull requests is not addressed.
- Untestable AI guessA framing about intent and fit rather than a measurable outcome.
Editors render comments in muted colors, which trains developers to ignore and neglect them.
Leans partly rightSyntax highlighting conventions do de-emphasize comments; whether that causes neglect is untested.
· denied 0 ·
Editors render comments in muted colors, which trains developers to ignore and neglect them.
Leans partly right- The problem with comments - Uncle Bob (Dev Tools Made Simple)“we paint our comments in colors that are easy to ignore because we don't want to see them”
- Leans partly right AI guessSyntax highlighting conventions do de-emphasize comments; whether that causes neglect is untested.
Complex generic type annotations slow development in statically typed languages on simple algorithmic tasks.
Leans partly rightFound in this 21-student study for Java generics; generalization beyond Java-style generics is uncertain.
· denied 0 ·
Complex generic type annotations slow development in statically typed languages on simple algorithmic tasks.
Leans partly right- Static vs dynamic typed languages: an intentionally rigged experiment (Vivek Haldar)“it is almost twice as fast to solve the problem in groovy a dynamically typed language”
- Leans partly right AI guessFound in this 21-student study for Java generics; generalization beyond Java-style generics is uncertain.
- Leans partly right Hanenberg et al. 2014 (static types) lines 255-292Related work in the series: type casts slowed trivial tasks but not longer ones, and in Mayer et al. static typing cost more on simple tasks yet helped most precisely on tasks with complex nested generics, so simple tasks can suffer but generics were where static types paid off.
Controlled experiments show statically typed languages have usability advantages over dynamically typed ones.
Probably partly rightThe paper's own literature review says existing evidence is partially contradictory, with some studies favouring dynamic, some static and some inconclusive; its experiment adds evidence for static typing on class-identification and type-error tasks but none on semantic-error tasks.
· denied 0 ·
Controlled experiments show statically typed languages have usability advantages over dynamically typed ones.
Probably partly right- Static vs dynamic typed languages: an intentionally rigged experiment (Vivek Haldar)“this reinforces a lot of earlier studies that showed the usability benefits of statically typed languages”
- Probably partly right Kleinschmager et al. 2012 (static types) lines 498-514This controlled within-subject experiment (33 subjects, Java vs Groovy) found static typing faster on 6 of 9 maintenance tasks and no task favouring dynamic typing, but no difference on semantic-error fixing, and the authors note earlier studies in the same series found dynamic advantages on some tasks and that the result hardly implies benefit for all tasks.
- Probably partly right Hanenberg et al. 2014 (static types) lines 157-162The paper's own literature review says existing evidence is partially contradictory, with some studies favouring dynamic, some static and some inconclusive; its experiment adds evidence for static typing on class-identification and type-error tasks but none on semantic-error tasks.
- Leans partly right AI guessHanenberg's series found advantages for maintenance and API use, but earlier experiments found no or opposite effects, so 'well established' overstates it.
- Leans partly right Gao, Bird & Barr 2017 (types vs JS bugs) lines 568-577The one controlled experiment summarized here (Hanenberg, 49 students, custom language) found no significant positive impact of static types on development time or quality; the later Hanenberg-group experiments that did report usability advantages are not covered by this source.
Static typing forces implementing an entire interface up front even when only part of it is used.
Leans partly rightTrue of Java-style nominal interfaces; languages with structural typing or default methods avoid much of this cost.
· denied 0 ·
Static typing forces implementing an entire interface up front even when only part of it is used.
Leans partly right- Static vs dynamic typed languages: an intentionally rigged experiment (Vivek Haldar)“to solve this in a statically typed language you would have to implement all 26 methods”
- Leans partly right AI guessTrue of Java-style nominal interfaces; languages with structural typing or default methods avoid much of this cost.
The paper that introduced the waterfall diagram warned that the approach was risky and invited failure.
Leans rightRoyce's 1970 paper does say the simple sequential model is risky and invites failure and recommends iteration.
· denied 0 ·
The paper that introduced the waterfall diagram warned that the approach was risky and invited failure.
Leans right- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“the paper that introduced waterfall to our industry said whatever you do don't do waterfall”
- Very likely right AI guessRoyce's 1970 paper does say the simple sequential model is risky and invites failure and recommends iteration.
Replacing guesswork with measured experiments is what makes software development an engineering discipline.
UntestableA philosophy of practice rather than a measurable claim.
· denied 0 ·
Replacing guesswork with measured experiments is what makes software development an engineering discipline.
Untestable- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“start experimenting and start measuring”
- Untestable AI guessA philosophy of practice rather than a measurable claim.
Continuous delivery yields order-of-magnitude improvements in quality and efficiency, not incremental gains.
Leans partly rightDORA shows large gaps on deployment metrics between clusters, but order-of-magnitude gains in cost or quality rest on a few case studies.
· denied 0 ·
Continuous delivery yields order-of-magnitude improvements in quality and efficiency, not incremental gains.
Leans partly right- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“We are often talking massive steps forward sometimes orders of magnitude in certain measures”
- Leans partly right AI guessDORA shows large gaps on deployment metrics between clusters, but order-of-magnitude gains in cost or quality rest on a few case studies.
- Leans partly right DORA State of DevOps 2019 lines 478-495Elite versus low performers differ by 208x in deploy frequency, 106x in lead time, 2,604x in time to restore and 7x in change failure rate, so the spread is orders of magnitude on throughput but under one on quality; these are gaps between survey clusters, not before/after gains from adopting CD.
Short cycle times force small teams, automation and fewer handoffs, so continuous delivery drives out lean and agile practices as a side effect.
Leans partly rightLogically coherent and consistent with DORA's capability model, but the causal direction is asserted, not measured.
· denied 0 ·
Short cycle times force small teams, automation and fewer handoffs, so continuous delivery drives out lean and agile practices as a side effect.
Leans partly right- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“You can't have a 57 minute cycle time if your team is too big.”
- Leans partly right AI guessLogically coherent and consistent with DORA's capability model, but the causal direction is asserted, not measured.
Automating everything except creative judgment makes releases repeatable and reliable because humans are not.
Leans partly rightDeployment automation correlates with lower change failure in DORA data; human error in manual deployments is well documented.
· denied 0 ·
Automating everything except creative judgment makes releases repeatable and reliable because humans are not.
Leans partly right- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“if we want to be repeatable and reliable, we're going to automate”
- Leans partly right AI guessDeployment automation correlates with lower change failure in DORA data; human error in manual deployments is well documented.
An automated test is an investment that permanently prevents the class of problem it checks.
Leans partly rightRegression tests do prevent recurrence, but suites also incur maintenance and decay, which the claim ignores.
· denied 0 ·
An automated test is an investment that permanently prevents the class of problem it checks.
Leans partly right- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“It's not a cost. It's an investment. If you spend time writing tests now, that pays back in spades later on.”
- Leans partly right AI guessRegression tests do prevent recurrence, but suites also incur maintenance and decay, which the claim ignores.
Adopting continuous delivery shifts development effort from branch merging and support to new features and lowers cost per product.
Leans partly rightThe HP LaserJet case documents this, but it is one firm with concurrent changes and no control.
· denied 0 ·
Adopting continuous delivery shifts development effort from branch merging and support to new features and lowers cost per product.
Leans partly right- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“The bottom line is eight times as much effort going into creating new software.”
- Leans partly right AI guessThe HP LaserJet case documents this, but it is one firm with concurrent changes and no control.
- Leans partly right DORA State of DevOps 2019 lines 1548-1553The report asserts automation lets engineers spend less time on manual work and more on new development, refactoring and design, and that CD reduces the risk and cost of releases; effort reallocation and cost per product are not measured.
A continuous delivery pipeline gives regulated environments end-to-end traceability as a side effect.
Leans partly rightPipelines do record provenance, but 'only way' is overstated since traditional change management also provides audit trails.
· denied 0 ·
A continuous delivery pipeline gives regulated environments end-to-end traceability as a side effect.
Leans partly right- The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 (GOTO Conferences)“this is pretty much the only way in which you get the kind of insight and traceability that modern regulatory frameworks are looking for”
- Leans partly right AI guessPipelines do record provenance, but 'only way' is overstated since traditional change management also provides audit trails.
- Leans right DORA State of DevOps 2019 lines 1243-1256DORA argues that with version control as the source of truth, recording who approved each change makes the review-and-submit process highly auditable and satisfies segregation-of-duties requirements from PCI-DSS and NIST frameworks; reasoned from practice rather than measured.
Small functions are easier to read and modify but harder to debug, so the evidence for them is mixed.
Leans partly rightA few small studies point this way; the evidence base is too thin to call it settled.
· denied 0 ·
Small functions are easier to read and modify but harder to debug, so the evidence for them is mixed.
Leans partly right- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“small functions are easier to read easier to modify and much much harder to debug”
- Leans partly right AI guessA few small studies point this way; the evidence base is too thin to call it settled.
- Leans partly right Scalabrino et al. 2019 (understandability) lines 864-870Among methods of 30-70 effective lines, size metrics (LOC, number of statements) showed no non-weak correlation with perceived or actual understanding, while interviewees praised methods that implement a single task; supports 'mixed evidence' within a narrow size band, says nothing about debugging.
Code smells mark where bugs are likely, but fixing the smells does not remove the bugs.
Leans partly rightSupported by mining studies of long-lived projects; effects vary by smell type.
· denied 0 ·
Code smells mark where bugs are likely, but fixing the smells does not remove the bugs.
Leans partly right- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“fixing the anti-patterns did nothing to the bugs”
- Leans partly right AI guessSupported by mining studies of long-lived projects; effects vary by smell type.
- Leans partly right Tornhill & Borg 2022 (Code Red) lines 413-419Code Health, a smell-based composite (God Class, God Method, duplication), separates files with 15x more reported defects, supporting that smells mark bug-prone code; the study did not test whether removing smells removes bugs and explicitly leaves open whether defects cause low quality rather than the reverse.
Most code review findings are maintainability improvements rather than functional bugs.
Leans rightCard sort of 570 Microsoft review comments: code improvement (readability, dead code, practices) is the largest category at 29%, defects only fourth at 14%, and 65 of 78 defect comments are small logic slips rather than design or security issues.
· denied 0 ·
Most code review findings are maintainability improvements rather than functional bugs.
Leans right- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“only one out of every four comments that basically block the code significant software defects is about functionality”
- Probably right AI guessMantyla and Lassenius and Bacchelli and Bird both found most review findings concern evolvability.
- Leans right Bacchelli & Bird 2013 (Microsoft code review) lines 421-433Card sort of 570 Microsoft review comments: code improvement (readability, dead code, practices) is the largest category at 29%, defects only fourth at 14%, and 65 of 78 defect comments are small logic slips rather than design or security issues.
- Leans right Sadowski et al. 2018 (Google code review) lines 459-465Of 44 Google authors surveyed about a specific recent review, only 2 said the comments had found a bug, though most found the feedback appropriate and valuable.
Sleep, stress and hours worked affect output more than any technical practice.
Leans partly rightFatigue effects are large and robust, but no study directly compares them against technical practices on the same scale.
· denied 0 ·
Sleep, stress and hours worked affect output more than any technical practice.
Leans partly right- Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 (GOTO Conferences)“no practice will make your code any better then they would make if they were well rested”
- Leans partly right AI guessFatigue effects are large and robust, but no study directly compares them against technical practices on the same scale.
Open-plan offices are adopted mainly because they cut real-estate cost per worker.
Leans partly rightCost is a commonly cited motive alongside collaboration goals, but motives are not measured.
· denied 0 ·
Open-plan offices are adopted mainly because they cut real-estate cost per worker.
Leans partly right- Open concept offices aren’t as productive as you think | Your Morning (CTV Your Morning)“it's cheaper yeah because it is cheaper”
- Leans partly right AI guessCost is a commonly cited motive alongside collaboration goals, but motives are not measured.
- Leans partly right Bernstein & Turban 2018 (open offices) lines 378-383Both field sites, like 'many organizations', adopted open architecture with the stated intention of creating more face-to-face interaction, not cutting cost; real-estate motives are not examined, so 'mainly cost' is not supported in these two cases.
Automated tests give little feedback on whether a feature serves users or whether the codebase is healthy.
Leans partly rightTests check specified behaviour; user value and design health need other feedback, though some tests target design.
· denied 0 ·
Automated tests give little feedback on whether a feature serves users or whether the codebase is healthy.
Leans partly right- TW Hangouts | Is TDD dead? [Part III] (Thoughtworks)“looking at the page seeing how it feels clicking around it's not something that's conducive to tests”
- Leans partly right AI guessTests check specified behaviour; user value and design health need other feedback, though some tests target design.
Confidence from programmer-written tests led many teams to drop QA and ship lower quality.
Leans partly rightAnecdotal; some companies did cut QA, but no study links this to measured quality loss.
· denied 0 ·
Confidence from programmer-written tests led many teams to drop QA and ship lower quality.
Leans partly right- TW Hangouts | Is TDD dead? [Part III] (Thoughtworks)“it gave them overconfidence I think it gave them overconfidence in the quality with which they can produce software through testing”
- Leans partly right AI guessAnecdotal; some companies did cut QA, but no study links this to measured quality loss.
Strict TDD, which forbids production code without a failing test, is incompatible with trading off coverage by criticality.
UntestableA logical argument about methodology consistency rather than a measurable outcome.
· denied 0 ·
Strict TDD, which forbids production code without a failing test, is incompatible with trading off coverage by criticality.
Untestable- TW Hangouts | Is TDD dead? [Part III] (Thoughtworks)“you can't on the one hand claim well we need 100% coverage because that's our design methodology”
- Untestable AI guessA logical argument about methodology consistency rather than a measurable outcome.
Programmers taking responsibility for quality was a large improvement over throwing code over the wall to QA.
Leans partly rightWidely agreed from experience; little direct measurement comparing the two arrangements.
· denied 0 ·
Programmers taking responsibility for quality was a large improvement over throwing code over the wall to QA.
Leans partly right- TW Hangouts | Is TDD dead? [Part III] (Thoughtworks)“programmers accepting responsibility for the quality of their work that that was a huge step forward”
- Leans partly right AI guessWidely agreed from experience; little direct measurement comparing the two arrangements.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 794-798In a short lean-techniques trial on two two-person teams, moving responsibility for measuring quality from the manager to the workers gave a quicker and more thorough response to defects, but one team kept making errors and the study was terminated early.
Automating scripted QA checks lets teams get release answers in hours instead of weeks.
Leans partly rightTest automation shortens feedback cycles in DORA and industrial reports; the gain depends on suite quality.
· denied 0 ·
Automating scripted QA checks lets teams get release answers in hours instead of weeks.
Leans partly right- TW Hangouts | Is TDD dead? [Part III] (Thoughtworks)“we can get some answers in you know hours”
- Probably partly right AI guessTest automation shortens feedback cycles in DORA and industrial reports; the gain depends on suite quality.
Being on call for production teaches developers which tests and feedback loops they are missing.
Leans partly rightA reasonable mechanism consistent with DevOps practice; not measured.
· denied 0 ·
Being on call for production teaches developers which tests and feedback loops they are missing.
Leans partly right- TW Hangouts | Is TDD dead? [Part III] (Thoughtworks)“the on call um uh is the feedback loop that teaches you uh what tests you didn't write”
- Leans partly right AI guessA reasonable mechanism consistent with DevOps practice; not measured.
Agile has been turned from an adjective into a product sold through certification, training and consultancy, losing the original values
UntestableA historical and framing claim about an industry, not a measurable outcome.
· denied 0 ·
Agile has been turned from an adjective into a product sold through certification, training and consultancy, losing the original values
Untestable- Agile is Dead • Pragmatic Dave Thomas • GOTO 2015 (GOTO Conferences)“the industry that sprung up around that Manifesto wanted to sell you things”
- Untestable AI guessA historical and framing claim about an industry, not a measurable outcome.
No software development rule is universal; every practice only works in a context
Leans rightThe review concludes agile methods are not necessarily the best choice for large projects, found XP hard to introduce in a complex organisation yet easy elsewhere, and advises practitioners to compare their project's characteristics with each method's required characteristics.
· denied 0 ·
No software development rule is universal; every practice only works in a context
Leans right- Agile is Dead • Pragmatic Dave Thomas • GOTO 2015 (GOTO Conferences)“no rules are Universal fact every rule requires a context”
- Leans right Dybå & Dingsøyr 2008 (agile review) lines 1317-1322The review concludes agile methods are not necessarily the best choice for large projects, found XP hard to introduce in a complex organisation yet easy elsewhere, and advises practitioners to compare their project's characteristics with each method's required characteristics.
- Untestable AI guessA philosophical framing of practice advice rather than a testable prediction.
Scaled agile frameworks appeal to large organisations because they look complex, not because they are shown to work
UnknownNo controlled evidence either way on SAFe-style frameworks; adopter surveys are mixed and self-reported.
· denied 0 ·
Scaled agile frameworks appeal to large organisations because they look complex, not because they are shown to work
Unknown- Agile is Dead • Pragmatic Dave Thomas • GOTO 2015 (GOTO Conferences)“it appeals to a corporation because it's got little cute figures and it looks very complicated”
- Unknown AI guessNo controlled evidence either way on SAFe-style frameworks; adopter surveys are mixed and self-reported.
A good design is one that is easier to change than a bad design, and every design principle follows from that
UntestableA definition and design heuristic rather than a prediction.
· denied 0 ·
A good design is one that is easier to change than a bad design, and every design principle follows from that
Untestable- Agile is Dead • Pragmatic Dave Thomas • GOTO 2015 (GOTO Conferences)“a good design is easier to change than a bad design”
- Untestable AI guessA definition and design heuristic rather than a prediction.
Agility means taking a small step, evaluating the result and repeating, rather than following a prescribed method
Leans partly rightShort, uniform development cycles were the factors associated with better quality and productivity while the prescribed test-first order was not, supporting small steps over rule-following, but only for short-term workshop tasks by 39 professionals.
· denied 0 ·
Agility means taking a small step, evaluating the result and repeating, rather than following a prescribed method
Leans partly right- Agile is Dead • Pragmatic Dave Thomas • GOTO 2015 (GOTO Conferences)“take a small step forward see where that got you and then revise your plan and repeat”
- Leans partly right Fucci et al. 2017 (TDD dissection) lines 1013-1024Short, uniform development cycles were the factors associated with better quality and productivity while the prescribed test-first order was not, supporting small steps over rule-following, but only for short-term workshop tasks by 39 professionals.
- Untestable AI guessPractice advice; iterative feedback loops are the shared basis of all agile methods.
Short certification courses produce practitioners who follow prescribed steps without understanding why
Leans partly rightPlausible and consistent with cargo-cult reports, but no study links certification length to team outcomes.
· denied 0 ·
Short certification courses produce practitioners who follow prescribed steps without understanding why
Leans partly right- Agile is Dead • Pragmatic Dave Thomas • GOTO 2015 (GOTO Conferences)“they end up getting stuck in this process where they don't actually know why they're doing what they're doing”
- Leans partly right AI guessPlausible and consistent with cargo-cult reports, but no study links certification length to team outcomes.
A pair finishes a task faster than one person but spends more total person-hours on it
Leans rightMeta-analysis finds pairs cut elapsed time but raise total effort; the sixty-percent figure comes from small student studies.
· denied 0 ·
A pair finishes a task faster than one person but spends more total person-hours on it
Leans right- You Must Be CRAZY To Do Pair Programming (Modern Software Engineering)“two people are nearly but not quite twice as fast”
- Probably right AI guessMeta-analysis finds pairs cut elapsed time but raise total effort; the sixty-percent figure comes from small student studies.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 996-998A survey of 122 IT employees found 73% of those who pair believe it speeds up development; this is perception only and says nothing about total person-hours.
Pairing pays off on novel, hard work and wastes effort on routine or repetitive tasks
Leans partly rightMeta-analysis finds pairing's benefit concentrated on complex tasks, consistent with this.
· denied 0 ·
Pairing pays off on novel, hard work and wastes effort on routine or repetitive tasks
Leans partly right- You Must Be CRAZY To Do Pair Programming (Modern Software Engineering)“it's dumb to waste two people's time on the boring repetitive stuff”
- Probably partly right AI guessMeta-analysis finds pairing's benefit concentrated on complex tasks, consistent with this.
Skill mismatch within a pair matters little; every expert and novice combination produces value
Leans partly rightExperiments find novice pairs gain most and expert pairs least; all combinations show some benefit.
· denied 0 ·
Skill mismatch within a pair matters little; every expert and novice combination produces value
Leans partly right- You Must Be CRAZY To Do Pair Programming (Modern Software Engineering)“it really doesn't matter very much what the what the combinations are all of them have some value”
- Leans partly right AI guessExperiments find novice pairs gain most and expert pairs least; all combinations show some benefit.
- Leans wrong Dybå & Dingsøyr 2008 (agile review) lines 989-993Student surveys in the review found pairing difficult when there was a large skill differential, with one respondent reporting the pair was unproductive whenever the weaker member was not driving; the review repeats this as a reported limitation.
The cone of uncertainty in estimation has no empirical basis
Leans rightBoehm presented it as a notional diagram; later project data did not show estimates narrowing as the cone predicts.
· denied 0 ·
The cone of uncertainty in estimation has no empirical basis
Leans right- The Leprechauns of Software Engineering (adamtornhill.com)“the cone of uncertainty”
- Probably right AI guessBoehm presented it as a notional diagram; later project data did not show estimates narrowing as the cone predicts.
Story-point velocity is only stable while the team is stable; adding or removing people changes it
Leans rightConsistent with Brooks's law and observed velocity volatility after staffing changes, though mostly practitioner data.
· denied 0 ·
Story-point velocity is only stable while the team is stable; adding or removing people changes it
Leans right- Story points considered harmful? 1 of 4 – Journey's start – Allan Kelly (allankelly.net)“I don't believe story points can ever be stable if you don't have a stable team”
- Probably right AI guessConsistent with Brooks's law and observed velocity volatility after staffing changes, though mostly practitioner data.
Story points forecast delivery only on average across several iterations, never for a single sprint
Leans partly rightAggregate forecasting improves with history; per-sprint accuracy is poor in most reported data.
· denied 0 ·
Story points forecast delivery only on average across several iterations, never for a single sprint
Leans partly right- Story points considered harmful? 1 of 4 – Journey's start – Allan Kelly (allankelly.net)“They are a good predictor over several sprints but they offer no guarantees for the next sprint/iteration.”
- Probably partly right AI guessAggregate forecasting improves with history; per-sprint accuracy is poor in most reported data.
Story-point estimation and sprint commitment are alternative ways to fill an iteration, not complements
UntestableA definitional stance on process design.
· denied 0 ·
Story-point estimation and sprint commitment are alternative ways to fill an iteration, not complements
Untestable- Story points considered harmful? 1 of 4 – Journey's start – Allan Kelly (allankelly.net)“in my book commitment and story pointing are alternatives”
- Untestable AI guessA definitional stance on process design.
Automated formatting and static analysis before review let reviewers focus on design and maintainability
Leans rightGoogle's and Mozilla's review studies both find static analysis integration reduces trivial comments.
· denied 0 ·
Automated formatting and static analysis before review let reviewers focus on design and maintainability
Leans right- Critique - Google's Code Review Tool | Reaction (NeetCodeIO)“automated analysis allow reviewers to focus on the understandability and maintainability of changes”
- Probably right AI guessGoogle's and Mozilla's review studies both find static analysis integration reduces trivial comments.
- Leans right Sadowski et al. 2018 (Google code review) lines 526-532Google integrates 110 Tricorder analyzers into review and the authors state this lets reviewers focus on understandability and maintainability instead of trivial formatting comments; a practice description, not a controlled measurement.
- Leans right Bacchelli & Bird 2013 (Microsoft code review) lines 567-579Having found that many review comments concern conventions, typos, dead code and micro-level defects that existing tools can detect, the authors recommend automating these so reviewers can look for deeper defects; a recommendation derived from comment data, not tested.
Extensive automated pre-submit checks catch most breaking changes before they are merged
Leans partly rightPre-submit CI catches many regressions, but the share depends on test coverage; the figure is a personal estimate.
· denied 0 ·
Extensive automated pre-submit checks catch most breaking changes before they are merged
Leans partly right- Critique - Google's Code Review Tool | Reaction (NeetCodeIO)“if your code broke anything there's a 99% chance it would get caught before it was merged”
- Leans partly right AI guessPre-submit CI catches many regressions, but the share depends on test coverage; the figure is a personal estimate.
Newly joined engineers receive the most review comments, and the count falls with tenure
Probably rightLog analysis of ~9M Google changes: authors who started within the past year receive more than twice as many reviewer comments per change, and the average falls steadily over the first five years of tenure (Figure 2).
· denied 0 ·
Newly joined engineers receive the most review comments, and the count falls with tenure
Probably right- Critique - Google's Code Review Tool | Reaction (NeetCodeIO)“when you first join you're probably going to get more more comments”
- Probably right AI guessGoogle's published review data shows comments per change declining over the first years of tenure.
- Probably right Sadowski et al. 2018 (Google code review) lines 557-567Log analysis of ~9M Google changes: authors who started within the past year receive more than twice as many reviewer comments per change, and the average falls steadily over the first five years of tenure (Figure 2).
Overly harsh or demanding reviews discourage future contributions
Leans partly rightStudies of open-source projects link toxic review comments to contributor drop-off; in-company data is thin.
· denied 0 ·
Overly harsh or demanding reviews discourage future contributions
Leans partly right- Critique - Google's Code Review Tool | Reaction (NeetCodeIO)“overly difficult reviews can discourage future improvements”
- Leans partly right AI guessStudies of open-source projects link toxic review comments to contributor drop-off; in-company data is thin.
- Leans partly right Sadowski et al. 2018 (Google code review) lines 392-402Google interviewees name tone (authors sensitive to comments) and power (dragging out reviews, withholding approval) as review breakdowns that leave developers uncomfortable or frustrated; the effect on later contributions is not measured.
GUI-driven integration tests cannot reach a large fraction of code such as error handling and edge cases
Leans rightCoverage from end-to-end tests is typically well below unit-level coverage; the 'bit more than half' figure is a guess.
· denied 0 ·
GUI-driven integration tests cannot reach a large fraction of code such as error handling and edge cases
Leans right- Clean Coder Blog (blog.cleancoder.com)“you can’t reach all the code from the GUI”
- Probably right AI guessCoverage from end-to-end tests is typically well below unit-level coverage; the 'bit more than half' figure is a guess.
Keeping code clean enough to keep development fast is worth more than the cost of building a trustworthy test suite
UntestableA cost-benefit judgment with no agreed way to measure either side.
· denied 0 ·
Keeping code clean enough to keep development fast is worth more than the cost of building a trustworthy test suite
Untestable- Clean Coder Blog (blog.cleancoder.com)“the benefit of keeping the code clean, and keeping the team moving fast, is so great”
- Untestable AI guessA cost-benefit judgment with no agreed way to measure either side.
Focused and collaborative work need different physical spaces
Leans partly rightRemoving all spatial boundaries cut face-to-face collaboration about 70%, and the authors tie this to Kao and Couzin's finding that intermediate rather than maximal openness maximises collective intelligence; supports that fully open space hurts both kinds of work but does not test separate spaces.
· denied 0 ·
Focused and collaborative work need different physical spaces
Leans partly right- Beyond Open Offices: The New Fog Creek Headquarters (blog.glitch.com)“Some of these tasks require intense concentration, while others are more conversational and collaborative”
- Leans partly right Bernstein & Turban 2018 (open offices) lines 413-420Removing all spatial boundaries cut face-to-face collaboration about 70%, and the authors tie this to Kao and Couzin's finding that intermediate rather than maximal openness maximises collective intelligence; supports that fully open space hurts both kinds of work but does not test separate spaces.
- Untestable AI guessWorkplace design advice rather than a testable prediction.
Workspace design is a fundamental part of how a company takes care of its people
UntestableA values statement.
· denied 0 ·
Workspace design is a fundamental part of how a company takes care of its people
Untestable- Beyond Open Offices: The New Fog Creek Headquarters (blog.glitch.com)“work space really matters. It’s a fundamental part of how you take care of your people”
- Untestable AI guessA values statement.
The claim that defect fix cost rises exponentially by lifecycle phase has no verifiable measurement behind it
Leans rightBoehm's original data exists but is thinner than the derived charts; modern iterative projects show much flatter curves.
· denied 0 ·
The claim that defect fix cost rises exponentially by lifecycle phase has no verifiable measurement behind it
Leans right- The 10X Programmer, and other Myths (blog.glitch.com)“I could not find any solid proof that someone had measured something and came up with those fantastic costs”
- Probably right AI guessBoehm's original data exists but is thinner than the derived charts; modern iterative projects show much flatter curves.
Software project failure rates and crisis figures are exaggerated and often based on opinion surveys
Leans partly rightStandish CHAOS figures are widely criticised; failure definitions vary so much that no robust rate exists.
· denied 0 ·
Software project failure rates and crisis figures are exaggerated and often based on opinion surveys
Leans partly right- The 10X Programmer, and other Myths (blog.glitch.com)“I think the crisis is very much over-exploited, very overblown”
- Leans partly right AI guessStandish CHAOS figures are widely criticised; failure definitions vary so much that no robust rate exists.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 665-676Despite software being 'notoriously known for cost overruns', the review found no general tendency to overoptimism and only ~20% median overrun for larger projects, supporting the view that crisis figures overstate the problem; the opinion-survey mechanism is not discussed.
Software folklore spreads because the field is fashion-driven and debunking costs more effort than asserting
Leans partly rightUncovering the flaws in one well-regarded study took the reproduction team about 5 person-months (over 6 months elapsed), while the original result had already spread through 119 citations, most repeating it as a causal effect; supports the asymmetry between asserting and debunking, says nothing about fashion.
· denied 0 ·
Software folklore spreads because the field is fashion-driven and debunking costs more effort than asserting
Leans partly right- The 10X Programmer, and other Myths (blog.glitch.com)“it takes a lot more energy to debunk a claim than it takes to just make things up”
- Leans partly right Berger et al. 2019 (languages reproduction) lines 1370-1374Uncovering the flaws in one well-regarded study took the reproduction team about 5 person-months (over 6 months elapsed), while the original result had already spread through 119 citations, most repeating it as a causal effect; supports the asymmetry between asserting and debunking, says nothing about fashion.
- Untestable AI guessA sociological explanation, not a measurable prediction.
Easy-to-repeat claims act as curiosity stoppers that prevent investigating what actually makes projects succeed
UntestableA framing claim about how folklore affects inquiry.
· denied 0 ·
Easy-to-repeat claims act as curiosity stoppers that prevent investigating what actually makes projects succeed
Untestable- The 10X Programmer, and other Myths (blog.glitch.com)“they act as curiosity stoppers, basically”
- Untestable AI guessA framing claim about how folklore affects inquiry.
Measuring software work in man-months is misleading because adding people does not add proportional progress
Probably rightLego-team experiment: four-person teams took 53 minutes total versus 36 for two-person teams on the same task and underestimated more (75% vs 55% overrun), and IT projects with more people overrun more often; a workforce twice as large delivers less than twice the output.
· denied 0 ·
Measuring software work in man-months is misleading because adding people does not add proportional progress
Probably right- The “10x engineer:" 50 years ago and now (The Pragmatic Engineer)“the man-month as a unit for measuring the size of a job is a dangerous and deceptive myth”
- Very likely right AI guessBrooks's law is supported by communication-overhead models and project data on late staffing.
- Probably right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 2726-2739Lego-team experiment: four-person teams took 53 minutes total versus 36 for two-person teams on the same task and underestimated more (75% vs 55% overrun), and IT projects with more people overrun more often; a workforce twice as large delivers less than twice the output.
Apparent standout productivity can reflect tenure, project selection, information hoarding or credit-taking rather than skill
UnknownPlausible confounders; no study separates them from genuine skill differences.
· denied 0 ·
Apparent standout productivity can reflect tenure, project selection, information hoarding or credit-taking rather than skill
Unknown- The “10x engineer:" 50 years ago and now (The Pragmatic Engineer)““10x developer” behavior can actually be undetected toxic behavior under a different label”
- Unknown AI guessPlausible confounders; no study separates them from genuine skill differences.
Version control and code review let junior engineers write production code safely, replacing hierarchical chief-programmer teams
Leans partly rightReview and version control do gate bad code, but flatter teams also reflect cheaper compute; no causal study.
· denied 0 ·
Version control and code review let junior engineers write production code safely, replacing hierarchical chief-programmer teams
Leans partly right- The “10x engineer:" 50 years ago and now (The Pragmatic Engineer)“What didn’t exist back then was source code control and code reviews to stop poorly written code making it to production.”
- Leans partly right AI guessReview and version control do gate bad code, but flatter teams also reflect cheaper compute; no causal study.
The performance penalty of class-hierarchy designs grows as the problem gets more complex
Leans partly rightAdding a second virtual call widened the gap here, but this is one extra property on a toy problem.
· denied 0 ·
The performance penalty of class-hierarchy designs grows as the problem gets more complex
Leans partly right- "Clean" Code, Horrible Performance (computerenhance.com)“the more complex you make the problem, the more these ideas harm your performance”
- Leans partly right AI guessAdding a second virtual call widened the gap here, but this is one extra property on a toy problem.
Avoiding repeated code does not conflict with writing fast code
Leans partly rightReasonable in general; some performance work deliberately duplicates code paths for specialisation.
· denied 0 ·
Avoiding repeated code does not conflict with writing fast code
Leans partly right- "Clean" Code, Horrible Performance (computerenhance.com)“we don’t have to violate it to write code that gets reasonable performance”
- Leans partly right AI guessReasonable in general; some performance work deliberately duplicates code paths for specialisation.
Controlled studies find at most small effects of static typing on productivity or defect rates
Leans partly rightRepeated-measures ANOVA gave significant, medium-to-large effects of language on development time in both rounds (partial eta-squared .275 and .246) with a strong task-language interaction; the exploratory measures showed 35-69 percent of variance in test runs and file switches explained by the type system in the second round, which is not a small effect, though confined to small tasks.
· denied 0 ·
Controlled studies find at most small effects of static typing on productivity or defect rates
Leans partly right- Literature review on the benefits of static types (danluu.com)“most studies find very small effects, if any”
- Probably right AI guessThe reviewed experiments are small and student-based, but the consistent null-to-small pattern has held in later work.
- Leans partly right Kleinschmager et al. 2012 (static types) lines 298-315Here the effect of type system on development time was not small: partial eta-squared .275 and .246 across rounds, type-error fixing 2-5x faster in Java and every subject's Java total below their Groovy total; effects were nil for semantic errors and defect rates were not measured, and tasks were small student exercises.
- Leans partly right Hanenberg et al. 2014 (static types) lines 971-991Repeated-measures ANOVA gave significant, medium-to-large effects of language on development time in both rounds (partial eta-squared .275 and .246) with a strong task-language interaction; the exploratory measures showed 35-69 percent of variance in test runs and file switches explained by the type system in the second round, which is not a small effect, though confined to small tasks.
- Leans right Gao, Bird & Barr 2017 (types vs JS bugs) lines 568-577Related-work summary: Hanenberg's year-long experiment with 49 students writing a parser in a custom language with and without static types found no significant positive impact of static typing on development time or code quality.
- Leans right Ray et al. 2014 (languages on GitHub) lines 711-715Related-work summary of Hanenberg's 48-programmer, 27-hour experiment: no significant difference in code quality between static and dynamic typing; the authors' own observational GitHub effect sizes are also described as modest.
Differences between individual programmers dwarf differences between languages in experiments
Leans partly rightAcross 80 programs the within-language bad/good ratios for time, length, memory and run time were on average about as large as or larger than the between-language differences, which supports the direction but not 'dwarf', since scripts still took half the time of C/C++/Java.
· denied 0 ·
Differences between individual programmers dwarf differences between languages in experiments
Leans partly right- Literature review on the benefits of static types (danluu.com)“the variance between programmers was still much greater than the variance between languages in all but two tasks”
- Very likely right AI guessReported in nearly every multi-language experiment, including Prechelt's.
- Leans partly right Prechelt 1999 (28:1 legend) lines 521-524Typical slower/faster programmer differences of about 2:1 are much larger than the typical difference between two experimental conditions (de-biased median effect 14%); the dataset covers experimental variables in general, not language comparisons specifically.
- Leans partly right Prechelt 2000 (seven languages) lines 496-501Across 80 programs the within-language bad/good ratios for time, length, memory and run time were on average about as large as or larger than the between-language differences, which supports the direction but not 'dwarf', since scripts still took half the time of C/C++/Java.
Type annotations help developers mainly by acting as documentation when using unfamiliar APIs
Leans partly rightThe exploratory data show static types cut file switches on class-identification tasks, which the authors interpret as annotations guiding developers to the right API without searching, but they cannot separate annotation from checking and type-error fixing benefited at least as strongly.
· denied 0 ·
Type annotations help developers mainly by acting as documentation when using unfamiliar APIs
Leans partly right- Literature review on the benefits of static types (danluu.com)“static type systems acted as a form of implicit documentation, benefiting developer productivity”
- Probably partly right AI guessHanenberg's experiments find the benefit on undocumented APIs and strengthened by docs; effect sizes are modest.
- Leans partly right Kleinschmager et al. 2012 (static types) lines 427-435Static types sped up using undocumented classes on 4 of 5 tasks, which the authors read as types acting as documentation, but they also produced a large separate benefit on type-error fixing from the compiler check itself, so documentation is one confirmed mechanism rather than the main one.
- Leans partly right Hanenberg et al. 2014 (static types) lines 1579-1596The exploratory data show static types cut file switches on class-identification tasks, which the authors interpret as annotations guiding developers to the right API without searching, but they cannot separate annotation from checking and type-error fixing benefited at least as strongly.
Existing type-system studies do not cover experienced programmers, large codebases or modern typed languages
Leans rightThe threats section concedes mostly student subjects, small tasks without complex control flow in a bare text editor, and Java as a type system 'not known for being the most expressive'; the related-work survey lists only similar small experiments, matching all three gaps in the claim.
· denied 0 ·
Existing type-system studies do not cover experienced programmers, large codebases or modern typed languages
Leans right- Literature review on the benefits of static types (danluu.com)“Some notable omissions from the studies are comprehensive studies using experienced programmers”
- Very likely right AI guessThe gap remains; most later studies are still small-scale or observational.
- Leans right Hanenberg et al. 2014 (static types) lines 833-867The threats section concedes mostly student subjects, small tasks without complex control flow in a bare text editor, and Java as a type system 'not known for being the most expressive'; the related-work survey lists only similar small experiments, matching all three gaps in the claim.
- Leans right Kleinschmager et al. 2012 (static types) lines 251-257This study is an instance of the pattern: 30 of 33 subjects were students, the program was 30 classes and 1300 lines with tasks deliberately free of loops and recursion, and the authors warn the effects may not generalise to industrial programs.
- Leans partly right Gao, Bird & Barr 2017 (types vs JS bugs) lines 579-586The authors agree most prior type-system studies are small scale or use students with a custom language as a confound, but their own study applies TypeScript 2.0 and Flow to bugs from 398 real GitHub projects up to 1.1M LOC, so modern typed languages on large codebases are covered (though with non-expert annotators, not experienced users).
- Leans partly right Ray et al. 2014 (languages on GitHub) lines 42-48Ray et al. note that controlled typing experiments used students on limited tasks, and position their own work as a field study of 729 popular projects (Linux, Rails, Spark, Haskell's pandoc) in 17 languages including Go, Scala and Haskell, so large codebases and modern languages have been studied, if only observationally.
Type-system studies are cherry-picked to confirm whichever side one already holds
Leans partly rightThe original study's static-typing and functional-language results drew the most attention because they confirmed commonly held beliefs, and of 30 citing papers that discussed the results, 26 restated the correlations as causal effects; confirmation-driven over-reading of one study rather than cherry-picking across studies.
· denied 0 ·
Type-system studies are cherry-picked to confirm whichever side one already holds
Leans partly right- Literature review on the benefits of static types (danluu.com)“most of them are passed around to justify one viewpoint or another”
- Leans partly right Berger et al. 2019 (languages reproduction) lines 86-99The original study's static-typing and functional-language results drew the most attention because they confirmed commonly held beliefs, and of 30 citing papers that discussed the results, 26 restated the correlations as causal effects; confirmation-driven over-reading of one study rather than cherry-picking across studies.
- Untestable AI guessA claim about discourse rather than about types.
Reaching the top few percent in most activities mainly requires correcting basic, observable mistakes rather than talent
Leans partly rightConsistent with deliberate-practice findings, but the game evidence is observational and self-selected.
· denied 0 ·
Reaching the top few percent in most activities mainly requires correcting basic, observable mistakes rather than talent
Leans partly right- 95%-ile isn't that good (danluu.com)“most people can become (relatively) good at most things”
- Leans partly right AI guessConsistent with deliberate-practice findings, but the game evidence is observational and self-selected.
Getting feedback on one's own work yields large improvements because almost no practitioners seek any
Leans partly rightCoaching and feedback effects are robust in education research; the 'almost no one' part is anecdotal.
· denied 0 ·
Getting feedback on one's own work yields large improvements because almost no practitioners seek any
Leans partly right- 95%-ile isn't that good (danluu.com)“improve slowly when getting feedback would make improving quickly easy”
- Probably partly right AI guessCoaching and feedback effects are robust in education research; the 'almost no one' part is anecdotal.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 2375-2389In the narrow domain of time prediction, structured feedback on one's own estimates (PSP, lessons-learned sessions) yielded no accuracy improvement, limiting the general claim.
Tracking where programming time actually goes reveals large, fixable waste that self-perception misses
Leans partly rightSelf-report of time use is known to be inaccurate; the twofold gain is a single self-estimate.
· denied 0 ·
Tracking where programming time actually goes reveals large, fixable waste that self-perception misses
Leans partly right- 95%-ile isn't that good (danluu.com)“When I've recorded what people do and compare it to what they think they're doing, these are often quite different.”
- Probably partly right AI guessSelf-report of time use is known to be inaccurate; the twofold gain is a single self-estimate.
- Leans partly right Meyer et al. 2014 (productivity perceptions) lines 535-541Observation logs revealed far more task and activity switches (13.3 and 47 per hour) than developers' stated concern about context switches would suggest, yet 8 of 11 still felt productive; tracking exposes behaviour self-perception misses, but the study finds much of it cheap rather than fixable waste.
Skilled coaching beats peer or self feedback for improving at a skill
Leans rightTutoring and expert coaching show large effects in education meta-analyses.
· denied 0 ·
Skilled coaching beats peer or self feedback for improving at a skill
Leans right- 95%-ile isn't that good (danluu.com)“having a skilled coach or teacher give one-on-one instruction is more effective still”
- Probably right AI guessTutoring and expert coaching show large effects in education meta-analyses.
- Leans partly right Jørgensen 2004 (expert estimation) lines 1176-1183Review cites expertise research holding that deliberate training designed by a coach, not amount of experience, determines expertise, and that training improved estimation accuracy while experience had almost no effect; coaching is not compared with peer feedback directly.
Independent gut estimates from experienced practitioners converge and are reasonably accurate at project scale
Leans partly rightExpert judgment matches formal models in estimation research, but these are a handful of successful anecdotes.
· denied 0 ·
Independent gut estimates from experienced practitioners converge and are reasonably accurate at project scale
Leans partly right- Blink Estimation (Dan North & Associates Limited)“Experienced delivery folks can have surprisingly good instincts for macro-level estimation”
- Leans partly right AI guessExpert judgment matches formal models in estimation research, but these are a handful of successful anecdotes.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4474-4510Individual estimates diverge widely (students' guesses of one height ranged 10-370 m) but the median of independent estimates is reliably better than at least half of them and combining improved accuracy in all 30 reviewed contexts (avg 12.5%); accuracy comes from combination, not convergence.
- Leans partly right Jørgensen 2004 (expert estimation) lines 271-286Fifteen studies comparing expert and model estimates split 5/5/5, with experts more accurate when they hold domain knowledge the model lacks; expert estimation is not beaten by models but is strongly biased by irrelevant information, and convergence is not studied.
Detailed story-by-story estimation inflates the total because micro-planning is fractal
Leans partly rightDecomposition yields higher totals because small tasks are less underestimated (magnitude effect); in two office-task experiments decomposed sums were 9-10% too high vs 2-5% for whole-task estimates, and a software study found decomposed estimates higher but less accurate. The mechanism is magnitude bias, not fractal micro-planning.
· denied 0 ·
Detailed story-by-story estimation inflates the total because micro-planning is fractal
Leans partly right- Blink Estimation (Dan North & Associates Limited)“micro-planning is fractal: The more detail you go into the more the rolled-up result expands”
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 3981-4020Decomposition yields higher totals because small tasks are less underestimated (magnitude effect); in two office-task experiments decomposed sums were 9-10% too high vs 2-5% for whole-task estimates, and a software study found decomposed estimates higher but less accurate. The mechanism is magnitude bias, not fractal micro-planning.
- Leans partly right AI guessDecomposition studies find bottom-up estimates can run high or low; inflation is common but not universal.
- Leans partly right Jørgensen 2004 (expert estimation) lines 789-795Evidence on decomposition is mixed: one software study found professionals using bottom-up estimation were more over-optimistic (lower) than top-down estimators, and decomposition improved accuracy in only one of two experiments, so inflation is not a reliable effect.
Estimating individual stories adds little because the biggest risks are cross-cutting unknowns no single story captures
Leans partly rightPlausible and consistent with project post-mortems, but no comparative measurement.
· denied 0 ·
Estimating individual stories adds little because the biggest risks are cross-cutting unknowns no single story captures
Leans partly right- Blink Estimation (Dan North & Associates Limited)“many surprises are cross-project rather than specific to a particular story”
- Leans partly right AI guessPlausible and consistent with project post-mortems, but no comparative measurement.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4022-4029Accurate decomposed estimates depend on identifying all components, unknown components and unexpected events, which analogy-based whole-project estimates absorb implicitly; decomposition is still recommended when no close analogies exist.
- Leans partly right Jørgensen 2004 (expert estimation) lines 818-822Bottom-up (decomposed) estimation is characterised as easy to forget activities and prone to underestimating unexpected events, which is why the review recommends an independent top-down estimate alongside it.
Revealing estimates simultaneously prevents the first number spoken from anchoring the rest
Leans rightPlanning poker's simultaneous reveal is described as keeping initial estimates independent and unanchored, and a field study found it cut median estimation error from 50% to 33%; combinations of independent predictions beat ones influenced by each other.
· denied 0 ·
Revealing estimates simultaneously prevents the first number spoken from anchoring the rest
Leans right- Blink Estimation (Dan North & Associates Limited)“If we went round one at a time the earlier estimates would act as an unconscious anchor to the later ones.”
- Very likely right AI guessAnchoring effects on software estimates are experimentally demonstrated.
- Leans right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4588-4612Planning poker's simultaneous reveal is described as keeping initial estimates independent and unanchored, and a field study found it cut median estimation error from 50% to 33%; combinations of independent predictions beat ones influenced by each other.
- Leans right Jørgensen 2004 (expert estimation) lines 805-808Review recommends producing estimates independently of each other to avoid the anchoring effect, citing a software study where an early estimate strongly biased re-estimation even when estimators were told to ignore it.
An estimate is better framed as an investment decision than as a contract
Leans partly rightBid, planned effort and most-likely effort have conflicting goals, and software estimators frequently do not distinguish them, which the review argues hinders realistic estimates; the investment-decision framing itself is not tested.
· denied 0 ·
An estimate is better framed as an investment decision than as a contract
Leans partly right- Blink Estimation (Dan North & Associates Limited)“it becomes a straightforward return-on-investment discussion rather than the traditional estimation-as-contract negotiation”
- Leans partly right Jørgensen 2004 (expert estimation) lines 534-547Bid, planned effort and most-likely effort have conflicting goals, and software estimators frequently do not distinguish them, which the review argues hinders realistic estimates; the investment-decision framing itself is not tested.
- Untestable AI guessA framing preference for how to run the conversation.
Sometimes the honest estimate is that size cannot be known until specific unknowns are investigated
Leans partly rightWhen no relevant historical data exist the recommended method is to start the work and extrapolate from the first stage, which supports deferring the estimate until unknowns are probed, though the book still expects a prediction before starting.
· denied 0 ·
Sometimes the honest estimate is that size cannot be known until specific unknowns are investigated
Leans partly right- Blink Estimation (Dan North & Associates Limited)“It means we can't possibly know, and here's why.”
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4309-4321When no relevant historical data exist the recommended method is to start the work and extrapolate from the first stage, which supports deferring the estimate until unknowns are probed, though the book still expects a prediction before starting.
- Untestable AI guessPractice advice on handling irreducible uncertainty.
Merge tools cannot detect functional conflicts between independently developed features; only integrating and testing can
Leans rightSemantic conflicts are invisible to textual merge; this is the standard rationale for CI.
· denied 0 ·
Merge tools cannot detect functional conflicts between independently developed features; only integrating and testing can
Leans right- Don’t Feature Branch | Dave Farley’s Weblog (davefarley.net)“No merge tool can predict that the features that I write and features that you write will work nicely together”
- Very likely right AI guessSemantic conflicts are invisible to textual merge; this is the standard rationale for CI.
Choosing which features to release after integration testing means shipping a combination that was never tested
Leans rightLogically sound; the size of the risk depends on how coupled the features are.
· denied 0 ·
Choosing which features to release after integration testing means shipping a combination that was never tested
Leans right- Don’t Feature Branch | Dave Farley’s Weblog (davefarley.net)“if you decide to merge only one of them back to head, you are about to release a previously untested scenario”
- Probably right AI guessLogically sound; the size of the risk depends on how coupled the features are.
Trunk-based development with feature toggles is simpler for most teams than disciplined branch-per-feature
Leans partly rightSurvey data favours trunk-based teams, but 'simpler' is a judgment and toggles carry their own cost.
· denied 0 ·
Trunk-based development with feature toggles is simpler for most teams than disciplined branch-per-feature
Leans partly right- Don’t Feature Branch | Dave Farley’s Weblog (davefarley.net)“Trunk Based Development with Feature toggles are simpler for a team to use and implement than feature branches”
- Leans partly right AI guessSurvey data favours trunk-based teams, but 'simpler' is a judgment and toggles carry their own cost.
- Leans partly right DORA State of DevOps 2019 lines 1039-1041DORA finds trunk-based development with frequent check-in predicts delivery performance, but it does not compare it with disciplined branch-per-feature or measure simplicity, and does not study feature toggles.
Keeping a branch per feature lets a finished feature be pulled before release, which trunk-based development cannot do
Leans partly rightTrue without toggles; feature flags give trunk-based teams the same ability at some complexity cost.
· denied 0 ·
Keeping a branch per feature lets a finished feature be pulled before release, which trunk-based development cannot do
Leans partly right- Don’t Feature Branch | Dave Farley’s Weblog (davefarley.net)“You set yourself up for disappointment when you want to release and can’t take out a feature.”
- Leans partly right AI guessTrue without toggles; feature flags give trunk-based teams the same ability at some complexity cost.
Feature toggles are a hack and a source of errors that proper branch-per-feature avoids
Leans partly rightToggle debt and misconfiguration incidents are real, but branches trade them for merge risk; no comparison exists.
· denied 0 ·
Feature toggles are a hack and a source of errors that proper branch-per-feature avoids
Leans partly right- Don’t Feature Branch | Dave Farley’s Weblog (davefarley.net)“I find them the biggest hack of what’s in ci these days and a potential source of errors”
- Leans partly right AI guessToggle debt and misconfiguration incidents are real, but branches trade them for merge risk; no comparison exists.
Generic repository abstractions over an ORM lead to N+1 queries and joining in application memory
Leans partly rightA commonly documented .NET anti-pattern; the problem is the abstraction's inflexibility rather than inevitability.
· denied 0 ·
Generic repository abstractions over an ORM lead to N+1 queries and joining in application memory
Leans partly right- Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard (NDC Conferences)“It produced n plus1 queries everywhere”
- Probably partly right AI guessA commonly documented .NET anti-pattern; the problem is the abstraction's inflexibility rather than inevitability.
Giving requirements without having the engineer explain them back leads to them being silently ignored
Leans partly rightRead-back is standard in safety-critical communication; software evidence is anecdotal.
· denied 0 ·
Giving requirements without having the engineer explain them back leads to them being silently ignored
Leans partly right- Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard (NDC Conferences)“You've got to make sure they can narrate it back to you and understand the reasoning”
- Leans partly right AI guessRead-back is standard in safety-critical communication; software evidence is anecdotal.
AI coding tools reproduce a codebase's existing anti-patterns unless a new pattern is established first
Leans partly rightConsistent with how code models condition on context; measured mainly in practitioner reports.
· denied 0 ·
AI coding tools reproduce a codebase's existing anti-patterns unless a new pattern is established first
Leans partly right- Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard (NDC Conferences)“the code that is already in the codebase is like the strongest center of gravity for what the AI is going to infer”
- Probably partly right AI guessConsistent with how code models condition on context; measured mainly in practitioner reports.
End-to-end browser tests are brittle but the fastest way to get coverage from zero on a legacy system
Leans partly rightMatches the test-pyramid rationale; brittleness of UI tests is well documented.
· denied 0 ·
End-to-end browser tests are brittle but the fastest way to get coverage from zero on a legacy system
Leans partly right- Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard (NDC Conferences)“That is not something I would recommend as your primary testing strategy because it's very brittle.”
- Probably partly right AI guessMatches the test-pyramid rationale; brittleness of UI tests is well documented.
Writing down architecture decisions and their reasoning helps both humans and AI tools work on a codebase
Leans partly rightADRs are widely adopted; the benefit is reported, not measured.
· denied 0 ·
Writing down architecture decisions and their reasoning helps both humans and AI tools work on a codebase
Leans partly right- Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard (NDC Conferences)“the sort of culture of writing things down and explaining why we did stuff is just as valuable for people as it is for LLMs”
- Leans partly right AI guessADRs are widely adopted; the benefit is reported, not measured.
Reviewing code synchronously at commit time rather than asynchronously reduces merge delay and conflicts
Leans partly rightThe delay-to-conflict link is well supported; whether synchronous review is practical at scale is less clear.
· denied 0 ·
Reviewing code synchronously at commit time rather than asynchronously reduces merge delay and conflicts
Leans partly right- DORA | Capabilities: Trunk-based development (dora.dev)“The longer a merge is delayed, the more likely it is to create merge conflicts and associated issues.”
- Leans partly right AI guessThe delay-to-conflict link is well supported; whether synchronous review is practical at scale is less clear.
Running the automated test suite before every commit keeps trunk releasable
Leans rightStandard CI mechanism; effectiveness depends on suite coverage and speed.
· denied 0 ·
Running the automated test suite before every commit keeps trunk releasable
Leans right- DORA | Capabilities: Trunk-based development (dora.dev)“it's essential that tests are run against code changes before commit”
- Probably right AI guessStandard CI mechanism; effectiveness depends on suite coverage and speed.
- Leans partly right DORA State of DevOps 2019 lines 1006-1011DORA states that for CI to be impactful every commit should trigger a successful build and test run, and finds CI predicts continuous delivery; whether this keeps trunk releasable is implied rather than measured.
Trunk-based development requires developers to learn to work in small batches, which many find hard and resist
Leans partly rightAdoption reports consistently cite resistance; the magnitude is anecdotal.
· denied 0 ·
Trunk-based development requires developers to learn to work in small batches, which many find hard and resist
Leans partly right- DORA | Capabilities: Trunk-based development (dora.dev)“Many developers simply can't imagine working in this way.”
- Probably partly right AI guessAdoption reports consistently cite resistance; the magnitude is anecdotal.
Programs are rarely inherently I/O bound; chatty serial chains of dependent requests make them look I/O bound
Leans partly rightWaterfall request chains are a well-documented cause of slow web apps, but large-data workloads genuinely are bounded by storage and network even when well structured.
· denied 0 ·
Programs are rarely inherently I/O bound; chatty serial chains of dependent requests make them look I/O bound
Leans partly right- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“the actual nature of the thing the program is doing is almost never i o bound”
- Leans partly right AI guessWaterfall request chains are a well-documented cause of slow web apps, but large-data workloads genuinely are bounded by storage and network even when well structured.
Faster, more responsive software measurably increases user engagement and revenue
Leans rightPublished latency experiments at Amazon, Google and others consistently show engagement and conversion dropping with added delay, though 'conclusive' overstates how far the effect generalises to internal tools.
· denied 0 ·
Faster, more responsive software measurably increases user engagement and revenue
Leans right- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“the more responsive your software and the faster it performs the more engaged users are the more likely they are to spend more money”
- Probably right AI guessPublished latency experiments at Amazon, Google and others consistently show engagement and conversion dropping with added delay, though 'conclusive' overstates how far the effect generalises to internal tools.
Hiding implementation details behind layers of abstraction makes it harder to find why code misbehaves because every layer must be dug through
Leans partly rightInformation hiding has evidence for isolating change, and indirection is also known to hurt comprehension; which dominates for debugging has not been measured.
· denied 0 ·
Hiding implementation details behind layers of abstraction makes it harder to find why code misbehaves because every layer must be dug through
Leans partly right- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“layers of encapsulation that that library has put between me and what's going on actually make it take longer for me to find the problem”
- Leans partly right AI guessInformation hiding has evidence for isolating change, and indirection is also known to hurt comprehension; which dominates for debugging has not been measured.
- Leans partly right Scalabrino et al. 2019 (understandability) lines 1000-1009One interviewed developer said an abstract return type made the method less understandable because the concrete types must be discovered, describing a trade-off between understandability and maintainability; a single opinion in a five-developer interview.
The readability gains credited to class hierarchies come from cleaning up messy code, which well-named procedural code achieves equally well
Leans partly rightComprehension experiments find naming and structure matter more than paradigm, but no study compares a tidy procedural version against a hierarchy on the same task.
· denied 0 ·
The readability gains credited to class hierarchies come from cleaning up messy code, which well-named procedural code achieves equally well
Leans partly right- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“so why are we claiming the advantage comes from the classes as opposed to just not doing all of these kind of other bad things”
- Leans partly right AI guessComprehension experiments find naming and structure matter more than paradigm, but no study compares a tidy procedural version against a hierarchy on the same task.
Switch-based code is easier to optimise later than a class hierarchy because all cases are visible in one place
Leans partly rightMerging cases into branch-free or vectorised code is standard practice and needs the cases in one place, but this is a specialist optimisation path rather than a general maintenance cost.
· denied 0 ·
Switch-based code is easier to optimise later than a class hierarchy because all cases are visible in one place
Leans partly right- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“it is very simple to improve the performance of a switch statement it is much more time consuming to do the same transform”
- Leans partly right AI guessMerging cases into branch-free or vectorised code is standard practice and needs the cases in one place, but this is a specialist optimisation path rather than a general maintenance cost.
Lines of code per feature is a useful objective proxy for code that reads like what it does and stays easy to modify
Leans partly rightLines of code predict defects and effort about as well as any complexity metric, but minimising it can also produce dense, cryptic code.
· denied 0 ·
Lines of code per feature is a useful objective proxy for code that reads like what it does and stays easy to modify
Leans partly right- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“features per line of code is something I kind of actually want to keep a good handle on”
- Leans partly right AI guessLines of code predict defects and effort about as well as any complexity metric, but minimising it can also produce dense, cryptic code.
- Leans partly right Scalabrino et al. 2019 (understandability) lines 864-870LOC and statement counts were among the 73 metrics with at most weak correlation to any of six understandability proxies across 444 evaluations, so line count did not track readability here; methods were pre-filtered to 30-70 effective lines, which limits the size range tested.
The 'premature optimisation' quote is misapplied as licence to ignore performance during design when it only warned against early micro-level hand tuning
Leans rightThe full Knuth passage explicitly says not to pass up the critical few percent and concerns small-scale efficiencies, not architecture.
· denied 0 ·
The 'premature optimisation' quote is misapplied as licence to ignore performance during design when it only warned against early micro-level hand tuning
Leans right- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“the way this quote is now applied is that you don't need to think about optimization until the end of your program”
- Probably right AI guessThe full Knuth passage explicitly says not to pass up the critical few percent and concerns small-scale efficiencies, not architecture.
Developer-time savings claimed from ignoring performance are erased by later ground-up performance rewrites
Leans partly rightSeveral large companies have published performance-driven rewrites, but the examples are survivors whose slow first version reached market, so the net accounting is unknown.
· denied 0 ·
Developer-time savings claimed from ignoring performance are erased by later ground-up performance rewrites
Leans partly right- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“so they claim that they were saving develop first time but they're spending years rewriting entire systems”
- Leans partly right AI guessSeveral large companies have published performance-driven rewrites, but the examples are survivors whose slow first version reached market, so the net accounting is unknown.
A performance trade-off only counts as a trade-off if the cost was measured; otherwise it is an excuse
UntestableThis is a framing about what deserves the word trade-off rather than a testable prediction.
· denied 0 ·
A performance trade-off only counts as a trade-off if the cost was measured; otherwise it is an excuse
Untestable- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“if you don't know how bad the performance will be from your decisions you aren't making a trade-off”
- Untestable AI guessThis is a framing about what deserves the word trade-off rather than a testable prediction.
Performance must be designed in from the start because hotspot optimisation cannot fix serial dependency chains and poor data layout later
Leans partly rightArchitectural choices like synchronous call chains are expensive to undo, but profiling-driven fixes resolve many real slowdowns without redesign.
· denied 0 ·
Performance must be designed in from the start because hotspot optimisation cannot fix serial dependency chains and poor data layout later
Leans partly right- SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? (IEEEComputerSociety)“architecting for performance needs to be done from day one”
- Probably partly right AI guessArchitectural choices like synchronous call chains are expensive to undo, but profiling-driven fixes resolve many real slowdowns without redesign.
Treating comments as failures leads to under-documented code, and missing comments cost far more time than incorrect ones
Leans partly rightComprehension experiments show well-placed comments help readers, but stale-comment costs are real and the cost ratio is one practitioner's estimate.
· denied 0 ·
Treating comments as failures leads to under-documented code, and missing comments cost far more time than incorrect ones
Leans partly right- GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". (GitHub)“For me the cost of missing comments is easily 10-100x the cost of incorrect comments.”
- Leans partly right AI guessComprehension experiments show well-placed comments help readers, but stale-comment costs are real and the cost ratio is one practitioner's estimate.
- Leans partly right Scalabrino et al. 2019 (understandability) lines 1002-1004For the least understandable method all five interviewed developers cited the complete lack of comments and internal documentation as the top problem and all proposed adding comments, supporting the cost of missing comments; nothing compares missing with incorrect comments and comment metrics did not correlate quantitatively.
For most software, conserving programmer time matters more than conserving CPU cycles, so readability-first practices pay off
Leans partly rightMuch business software is not CPU-bound and developer salaries dominate costs, but published latency experiments show slowness has measurable revenue costs too.
· denied 0 ·
For most software, conserving programmer time matters more than conserving CPU cycles, so readability-first practices pay off
Leans partly right- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“It is economically better for most organizations to conserve programmer cycles than computer cycles.”
- Leans partly right AI guessMuch business software is not CPU-bound and developer salaries dominate costs, but published latency experiments show slowness has measurable revenue costs too.
- Leans partly right Buse & Weimer 2010 (readability) lines 612-619Readability correlated with defect reports, version churn, bug-fix commits and project maturity, and a readability drop in jUnit coincided with rising defect density, supporting that readability relates to quality; correlational and silent on the CPU-vs-programmer-time trade-off.
Choosing the right algorithm improves efficiency by many orders of magnitude while cycle-level tuning gives about one
Leans rightAsymptotic improvements dominate constant-factor ones on large inputs, though for fixed-size hot loops constant factors are all that remain.
· denied 0 ·
Choosing the right algorithm improves efficiency by many orders of magnitude while cycle-level tuning gives about one
Leans right- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“Cycle-lean code can increase efficiency by an order of magnitude; but the right choice of algorithm can increase efficiency by many orders of magnitude.”
- Probably right AI guessAsymptotic improvements dominate constant-factor ones on large inputs, though for fixed-size hot loops constant factors are all that remain.
Clean Code teaching gives performance almost no attention, so its audience learns to ignore it
Leans rightThe author conceded the point about his own lecture series; whether audiences actually absorb a disregard for performance is not measured.
· denied 0 ·
Clean Code teaching gives performance almost no attention, so its audience learns to ignore it
Leans right- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“not a single one of the things you mentioned here are discussed in the nine hour runtime”
- Probably right AI guessThe author conceded the point about his own lecture series; whether audiences actually absorb a disregard for performance is not measured.
Interactive and visual behaviour such as GUIs and game feel cannot practically be test-driven because the correct answer is not known up front
Leans rightBoth debaters and the game industry agree; snapshot and replay testing cover regressions but not the initial judgement of correctness.
· denied 0 ·
Interactive and visual behaviour such as GUIs and game feel cannot practically be test-driven because the correct answer is not known up front
Leans right- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“I cannot practically write tests for things that I have to see in order to know that they work. GUIs, Game behaviors, Hardware interactions, etc.”
- Probably right AI guessBoth debaters and the game industry agree; snapshot and replay testing cover regressions but not the initial judgement of correctness.
Polymorphism makes adding new types easy while switch statements make adding new operations easy; neither is a free win
Leans rightThis is the well-known expression problem; the two designs are mirror images for the two kinds of extension.
· denied 0 ·
Polymorphism makes adding new types easy while switch statements make adding new operations easy; neither is a free win
Leans right- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“OO (Operand Primal) is a great way to add types to existing functions without changing those functions.”
- Very likely right AI guessThis is the well-known expression problem; the two designs are mirror images for the two kinds of extension.
Dependency inversion via polymorphism protects high-level policy from recompilation and redeployment when low-level details change
Leans partly rightThe mechanism is real, but link-time binding through opaque pointers gives the same isolation, so the benefit specific to runtime polymorphism is mainly plugins and frameworks.
· denied 0 ·
Dependency inversion via polymorphism protects high-level policy from recompilation and redeployment when low-level details change
Leans partly right- cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion (GitHub)“it prevents changes at to low level modules from forcing a wave of recompilation and redeployment from sweeping through the system towards higher level modules”
- Leans partly right AI guessThe mechanism is real, but link-time binding through opaque pointers gives the same isolation, so the benefit specific to runtime polymorphism is mainly plugins and frameworks.
Refactorings should be in separate changes from feature work and bug fixes so reviewers can understand each
Leans partly rightTangled changes are shown to confuse both reviewers and defect analysis, though no study measures the review-quality gain directly.
· denied 0 ·
Refactorings should be in separate changes from feature work and bug fixes so reviewers can understand each
Leans partly right- Small CLs (eng-practices)“It’s usually best to do refactorings in a separate CL from feature changes or bug fixes.”
- Probably partly right AI guessTangled changes are shown to confuse both reviewers and defect analysis, though no study measures the review-quality gain directly.
Every change that adds or alters logic should ship with its tests in the same change
UnknownWidely adopted policy, but no study compares co-committed tests against tests landed separately.
· denied 0 ·
Every change that adds or alters logic should ship with its tests in the same change
Unknown- Small CLs (eng-practices)“A CL that adds or changes logic should be accompanied by new or updated tests for the new behavior.”
- Unknown AI guessWidely adopted policy, but no study compares co-committed tests against tests landed separately.
Almost any large change can be decomposed into a series of small ones by an author who practises it
Leans partly rightStacking and vertical slicing work for most feature work, but generated code, large migrations and some refactors resist splitting.
· denied 0 ·
Almost any large change can be decomposed into a series of small ones by an author who practises it
Leans partly right- Small CLs (eng-practices)“Authors who practice writing small CLs can almost always find a way to decompose functionality into a series of small changes.”
- Leans partly right AI guessStacking and vertical slicing work for most feature work, but generated code, large migrations and some refactors resist splitting.
Very large changes merge faster and are reverted less than mid-sized ones, likely because they are generated or refactor-only
Leans partly rightThe pattern appears in one dataset and the explanation is the author's guess; rubber-stamping would also hide defects rather than prevent them.
· denied 0 ·
Very large changes merge faster and are reverted less than mid-sized ones, likely because they are generated or refactor-only
Leans partly right- The ideal PR is 50 lines long (Graphite)“post-5k lines, PRs start getting faster again. I can only assume this is a combination of blind stamps, assumed-safe refactors”
- Leans partly right AI guessThe pattern appears in one dataset and the explanation is the author's guess; rubber-stamping would also hide defects rather than prevent them.
- Leans partly right Sadowski et al. 2018 (Google code review) lines 405-412Google changes larger than about 1250 lines get fewer comments on average because they are mostly auto-generated code or large deletions, supporting the stated explanation, but merge time and revert rate for very large changes are not measured.
Observed benefits of small PRs are partly selection: teams already practising trunk-based development make smaller PRs
Leans partly rightThe author flags the confound; no study randomises PR size, so some of the correlation is team maturity.
· denied 0 ·
Observed benefits of small PRs are partly selection: teams already practising trunk-based development make smaller PRs
Leans partly right- The ideal PR is 50 lines long (Graphite)“We find that Graphite users tend to create smaller PRs in general, since many organizations use a trunk-based development style”
- Leans partly right AI guessThe author flags the confound; no study randomises PR size, so some of the correlation is team maturity.
Unit tests that never fail in version control still earn their keep because they fail transiently during development and are fixed before commit
Leans partly rightLocal failures are invisible to repository history so 'never failed' undercounts value, but maintenance cost is real and tests that never fail even locally may be low value.
· denied 0 ·
Unit tests that never fail in version control still earn their keep because they fail transiently during development and are fixed before commit
Leans partly right- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“if a unit test fails, it fails as you are developing the code. It is similar to a compilation failure. You fix it immediately.”
- Leans partly right AI guessLocal failures are invisible to repository history so 'never failed' undercounts value, but maintenance cost is real and tests that never fail even locally may be low value.
Tests breaking during refactoring is a minor cost in practice
Leans partly rightTest co-evolution studies show test maintenance is a real and recurring effort, heavily dependent on how mock-heavy and implementation-coupled the tests are.
· denied 0 ·
Tests breaking during refactoring is a minor cost in practice
Leans partly right- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“Sometimes when you refactor code, you break tests. But my experience is that this is not a big problem.”
- Leans partly right AI guessTest co-evolution studies show test maintenance is a real and recurring effort, heavily dependent on how mock-heavy and implementation-coupled the tests are.
The impossibility of exhaustively testing a program's state space applies to integration tests as much as unit tests
Leans partly rightBoth are samples, but a system-level test exercises many units per case, so the argument cuts differently per test.
· denied 0 ·
The impossibility of exhaustively testing a program's state space applies to integration tests as much as unit tests
Leans partly right- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“This is true, but it applies equally to integration testing, and is thus not an argument against unit testing.”
- Leans partly right AI guessBoth are samples, but a system-level test exercises many units per case, so the argument cuts differently per test.
Unit tests make it easy to set up edge-case contexts that are hard to reproduce in the full system
Leans rightNear-definitional and borne out by practice; error-handling paths in particular are hard to trigger end to end.
· denied 0 ·
Unit tests make it easy to set up edge-case contexts that are hard to reproduce in the full system
Leans right- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“it is easier to set up the context you want in a unit test than it is to set it up in the complete system”
- Probably right AI guessNear-definitional and borne out by practice; error-handling paths in particular are hard to trigger end to end.
Runtime assertions complement but cannot replace unit tests because an assertion failure is still a production failure
Leans partly rightAssertions do catch what tests missed but after shipping; the two find overlapping faults at different costs.
· denied 0 ·
Runtime assertions complement but cannot replace unit tests because an assertion failure is still a production failure
Leans partly right- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“Asserts can be useful, but they are not a substitute for unit tests. If an assert fails, there is still a failure”
- Probably partly right AI guessAssertions do catch what tests missed but after shipping; the two find overlapping faults at different costs.
Combining unit and integration tests catches more than integration tests alone
Leans partly rightDifferent test levels find different fault classes, but no study quantifies the marginal catch of adding unit tests to a good integration suite.
· denied 0 ·
Combining unit and integration tests catches more than integration tests alone
Leans partly right- A Response to “Why Most Unit Testing is Waste” (Henrik Warne's blog)“I agree that integration tests are effective, but I think a combination of both is even better.”
- Probably partly right AI guessDifferent test levels find different fault classes, but no study quantifies the marginal catch of adding unit tests to a good integration suite.
Best practices are inherited from what the most successful programmers do, which cannot distinguish good techniques from bad ones they succeed despite
Leans partly rightThe logic holds and practice adoption is visibly driven by prominent advocates, but how much of practice folklore actually originates this way is not measured.
· denied 0 ·
Best practices are inherited from what the most successful programmers do, which cannot distinguish good techniques from bad ones they succeed despite
Leans partly right- Uncle Bob is Ruining Software (Hillel Wayne)“We have no a priori way to determine whether a given practice is good or bad purely based on what the best programmers do”
- Leans partly right AI guessThe logic holds and practice adoption is visibly driven by prominent advocates, but how much of practice folklore actually originates this way is not measured.
Making expert advocates argue opposing positions publicly is a partial substitute for missing research
UntestableA preference about discourse rather than a prediction that could be checked.
· denied 0 ·
Making expert advocates argue opposing positions publicly is a partial substitute for missing research
Untestable- Uncle Bob is Ruining Software (Hillel Wayne)“We could force 10x programmers to argue topics, which I'd like to see happen more- it isn't great but it helps a little”
- Untestable AI guessA preference about discourse rather than a prediction that could be checked.
The most damaging software faults are design flaws rather than coding slips
Leans partly rightClassic industrial fault studies attribute the costliest defects to requirements and design, but the split depends heavily on how faults are categorised.
· denied 0 ·
The most damaging software faults are design flaws rather than coding slips
Leans partly right- What We Know We Don't Know (Hillel Wayne)“Worst bugs are design bugs”
- Leans partly right AI guessClassic industrial fault studies attribute the costliest defects to requirements and design, but the split depends heavily on how faults are categorised.
- Leans partly right Gao, Bird & Barr 2017 (types vs JS bugs) lines 414-423Of public JavaScript bugs undetectable by Flow and TypeScript, errors implementing the specification make up 78% (SpecError alone 55%), i.e. most shipped bugs are misunderstandings of what to build rather than mechanical slips; the study does not measure how damaging each class was.
Simple tests of error-handling paths could prevent most catastrophic failures in distributed systems
Leans rightA study of production outages in major distributed systems found most catastrophic failures stemmed from trivially testable error-handling bugs.
· denied 0 ·
Simple tests of error-handling paths could prevent most catastrophic failures in distributed systems
Leans right- What We Know We Don't Know (Hillel Wayne)“Simple Testing Can Prevent Most Critical Failures”
- Probably right AI guessA study of production outages in major distributed systems found most catastrophic failures stemmed from trivially testable error-handling bugs.
Lines of code predict defects about as well as any complexity metric
Leans rightStudies of large codebases find most complexity metrics are strongly correlated with size and add little predictive power.
· denied 0 ·
Lines of code predict defects about as well as any complexity metric
Leans right- What We Know We Don't Know (Hillel Wayne)“Beyond Lines of Code: Do we Need More Complexity Metrics?”
- Probably right AI guessStudies of large codebases find most complexity metrics are strongly correlated with size and add little predictive power.
- Leans right Bird et al. 2011 (code ownership) lines 265-271Spearman correlations with Vista failures: size 0.75 pre-release / 0.69 post-release versus complexity 0.70 / 0.53 (Windows 7: 0.70/0.26 vs 0.56/0.37), so lines of code tracks defects at least as well as complexity.
- Leans partly right Buse & Weimer 2010 (readability) lines 586-590Method length was much more strongly correlated with cyclomatic complexity than readability was, supporting the premise that size and complexity metrics largely overlap; the paper does not compare LoC and complexity as defect predictors directly.
- Leans right McIntosh et al. 2014 (review coverage) lines 396-399With complexity normalised by size, size stays a significant explainer of post-release defects in two of four Qt/VTK/ITK release models while complexity is significant in none.
- Leans partly right Tornhill & Borg 2022 (Code Red) lines 119-136On issue resolution time rather than defects, added LoC correlated only r=0.13 while the smell-based Code Health score correlated r=-0.58, so a richer metric beat raw size here; the outcome differs from the claim's and the comparison is a brief validity check.
Organisational structure metrics predict defect-prone components better than code metrics
Probably rightOn 3,404 Windows Vista binaries (50M+ LOC, 50 random splits), eight organizational metrics predict failure-prone binaries with 86.2% precision and 84.0% recall versus 78.6/79.9 for churn, 79.3/66.0 for complexity, 74.4/69.9 for dependencies, 83.8/54.4 for coverage and 73.8/62.9 for pre-release bugs; single system.
· denied 0 ·
Organisational structure metrics predict defect-prone components better than code metrics
Probably right- What We Know We Don't Know (Hillel Wayne)“The Influence of Organizational Structure On Software Quality: An Empirical Case Study”
- Probably partly right AI guessOne large industrial study found this strongly, but it has few replications outside that company.
- Probably right Nagappan et al. 2008 (org structure) lines 554-571On 3,404 Windows Vista binaries (50M+ LOC, 50 random splits), eight organizational metrics predict failure-prone binaries with 86.2% precision and 84.0% recall versus 78.6/79.9 for churn, 79.3/66.0 for complexity, 74.4/69.9 for dependencies, 83.8/54.4 for coverage and 73.8/62.9 for pre-release bugs; single system.
- Leans right Bird et al. 2011 (code ownership) lines 283-287In Vista and Windows 7 the number of minor contributors correlated more strongly with pre- and post-release failures than any other metric Microsoft collects, and adding it to a size/churn/complexity model raised variance explained from 26% to 46% (pre-release Vista).
- Leans right McIntosh et al. 2014 (review coverage) lines 669-673In Qt, VTK and ITK the ownership metrics (minor authors) add significant explanatory power to every post-release defect model, while size is significant in only two and complexity in none.
Knowledge-worker productivity cannot be measured reliably, so hours-versus-output conclusions rest on analogies from other industries
Leans rightLines of code and function points are widely criticised as proxies and no accepted output measure exists for programmers.
· denied 0 ·
Knowledge-worker productivity cannot be measured reliably, so hours-versus-output conclusions rest on analogies from other industries
Leans right- Why Crunch Mode Doesn’t Work: Six Lessons [2005] – IGDA (igda.org)“Productivity is hard to quantify for knowledge workers.”
- Probably right AI guessLines of code and function points are widely criticised as proxies and no accepted output measure exists for programmers.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 1106-1111The review shows how LOC-based productivity misleads: an apparent 337% XP productivity gain came from delivering 3.5 times more lines of code without more functionality, and other comparisons swung from +46% to -44%; this shows measurement is unreliable in practice, not that it is impossible.
- Leans partly right DORA State of DevOps 2019 lines 1427-1435DORA states productivity cannot be captured by simple metrics such as lines of code, story points or bugs closed because targeting them causes unintended consequences, and falls back on self-reported productivity; it does not claim measurement is impossible.
- Leans partly right Pencavel 2014 (working hours) lines 956-962The paper is itself the munitions analogy: it has a clean output measure only because piece-rate shell counts exist, and it says the 48 h threshold found 'for other workers may be more or less', i.e. transfer to other work is unverified; it does not address whether knowledge work can be measured.
- Leans partly right Meyer et al. 2014 (productivity perceptions) lines 271-284Among 23 candidate productivity metrics rated by 379 developers none stood out (overall mean 3.14 of 5, best 3.88) and developers differed on which helped, suggesting no single reliable measure; the survey says nothing about hours-versus-output analogies.
- Leans partly right Tornhill & Borg 2022 (Code Red) lines 138-139States, citing a systematic mapping study, that there is no consensus on how to measure productivity in software engineering; lack of consensus is weaker than 'cannot be measured' and the rest of the claim is not addressed.
Complex mental work degrades faster under fatigue than physical work, so knowledge workers lose more to long hours than manual workers
Leans partly rightSleep research shows higher-order cognition is most sensitive to sleep loss, but the inference that programmers lose more total output than factory workers is unmeasured.
· denied 0 ·
Complex mental work degrades faster under fatigue than physical work, so knowledge workers lose more to long hours than manual workers
Leans partly right- Why Crunch Mode Doesn’t Work: Six Lessons [2005] – IGDA (igda.org)“In contrast to complex mental performance, simple psychomotor performance, physical strength and endurance are unaffected by sleep deprivation.”
- Leans partly right AI guessSleep research shows higher-order cognition is most sensitive to sleep loss, but the inference that programmers lose more total output than factory workers is unmeasured.
- Unknown Pencavel 2014 (working hours) lines 1014-1020Physical work also shows diminishing returns past 48 h/week, and the author states that where fatigue sets in 'is likely to vary across types of work and across workers' without comparing mental to physical work, so the source cannot say whether mental work degrades faster.
Managers impose crunch to signal effort rather than because it works
Leans partly rightAsks why employers kept long hours when shorter hours gave the same output and offers Hicks's answer that it 'never entered the heads of most employers' that hours could be cut without losing output; consistent with crunch not working, but attributes it to ignorance rather than effort signalling.
· denied 0 ·
Managers impose crunch to signal effort rather than because it works
Leans partly right- Why Crunch Mode Doesn’t Work: Six Lessons [2005] – IGDA (igda.org)“Managers decide to crunch because they want to be able to tell their bosses”
- Leans partly right Pencavel 2014 (working hours) lines 1029-1040Asks why employers kept long hours when shorter hours gave the same output and offers Hicks's answer that it 'never entered the heads of most employers' that hours could be cut without losing output; consistent with crunch not working, but attributes it to ignorance rather than effort signalling.
- Untestable AI guessMotivational attribution.
Much delivered functionality is rarely or never used, so working through a prioritised backlog wastes effort compared with selecting high-impact items
Leans partly rightThe widely cited 64% figure comes from a small Standish sample; feature usage is skewed but the magnitude is unknown.
· denied 0 ·
Much delivered functionality is rarely or never used, so working through a prioritised backlog wastes effort compared with selecting high-impact items
Leans partly right- Q&A with Vasco Duarte on the #NoEstimates Book (InfoQ)“many of the items of functionality we end up delivering to our customers are rarely or never used”
- Leans partly right AI guessThe widely cited 64% figure comes from a small Standish sample; feature usage is skewed but the magnitude is unknown.
Scope growth during a project is mostly value discovered while building, and following the original plan discards it
Leans partly rightRequirements do emerge during development, but scope creep also includes gold-plating and unmanaged change, so treating all of it as value is optimistic.
· denied 0 ·
Scope growth during a project is mostly value discovered while building, and following the original plan discards it
Leans partly right- Q&A with Vasco Duarte on the #NoEstimates Book (InfoQ)“we discover value as we deliver what we had originally planned”
- Leans partly right AI guessRequirements do emerge during development, but scope creep also includes gold-plating and unmanaged change, so treating all of it as value is optimistic.
Estimation techniques were developed for other industries and may not fit software
Leans partly rightUnlike most studied professions where models beat experts, software expert estimates match or beat models because case-specific knowledge matters more and software size-effort models perform worse, so results from other domains transfer imperfectly.
· denied 0 ·
Estimation techniques were developed for other industries and may not fit software
Leans partly right- Q&A with Vasco Duarte on the #NoEstimates Book (InfoQ)“Let's not forget that estimation is not a technique developed for software projects.”
- Leans partly right Jørgensen 2004 (expert estimation) lines 430-459Unlike most studied professions where models beat experts, software expert estimates match or beat models because case-specific knowledge matters more and software size-effort models perform worse, so results from other domains transfer imperfectly.
- Untestable AI guessFraming.
Low-quality code makes delivery times unpredictable, not just slower
Leans rightThe maximum Time-in-Development per file was 9x longer in Alert code than Healthy code (large effect, Cohen's d 0.96) and already 2x in Warning code, with much higher variance, which the authors read as lower predictability of task completion; correlational, single tool vendor's customer base.
· denied 0 ·
Low-quality code makes delivery times unpredictable, not just slower
Leans right- Code Red: the Business Impact of Code Quality (InfoQ)“Adding a feature to healthy code seems to be a predictable process. Not so in unhealthy red code”
- Leans partly right AI guessTask-time variance in red code is reported in one vendor study; independent replication is lacking.
- Leans right Tornhill & Borg 2022 (Code Red) lines 384-389The maximum Time-in-Development per file was 9x longer in Alert code than Healthy code (large effect, Cohen's d 0.96) and already 2x in Warning code, with much higher variance, which the authors read as lower predictability of task completion; correlational, single tool vendor's customer base.
Technical debt lowers developer happiness and drives attrition
Leans partly rightGraziotin and others link bad code to frustration and lower productivity; attrition effects are anecdotal.
· denied 0 ·
Technical debt lowers developer happiness and drives attrition
Leans partly right- Code Red: the Business Impact of Code Quality (InfoQ)“Unmitigated technical debt with high interest fuel developer attrition.”
- Probably partly right AI guessGraziotin and others link bad code to frustration and lower productivity; attrition effects are anecdotal.
- Leans partly right DORA State of DevOps 2019 lines 1677-1681In DORA's model technical debt reduces productivity, productivity improves work recovery, and work recovery reduces burnout, so the link to well-being is indirect through two steps; attrition is not measured.
Prioritising refactoring by hotspots, where change frequency meets low code health, targets the debt with the highest interest
Leans partly rightChange-frequency weighting is a sensible proxy supported by defect-prediction research, but comparative outcome data is limited to vendor case studies.
· denied 0 ·
Prioritising refactoring by hotspots, where change frequency meets low code health, targets the debt with the highest interest
Leans partly right- Code Red: the Business Impact of Code Quality (InfoQ)“focus on development hotspots to remediate high-interest debt first”
- Leans partly right AI guessChange-frequency weighting is a sensible proxy supported by defect-prediction research, but comparative outcome data is limited to vendor case studies.
Code quality is tolerated as waste because it is invisible to non-technical stakeholders
Leans rightThe motivation section relays that the business impact of code quality is vague, managers in a 15-organisation study would not fund refactoring because benefits were unclear, there are no code-quality KPIs comparable to financial ones, and only 10% of 1,831 surveyed said their business manager managed TD; all cited from other studies rather than measured here.
· denied 0 ·
Code quality is tolerated as waste because it is invisible to non-technical stakeholders
Leans right- Code Red: the Business Impact of Code Quality (InfoQ)“code is an abstract concept that isn't accessible to non-technical stakeholders”
- Leans right Tornhill & Borg 2022 (Code Red) lines 28-40The motivation section relays that the business impact of code quality is vague, managers in a 15-organisation study would not fund refactoring because benefits were unclear, there are no code-quality KPIs comparable to financial ones, and only 10% of 1,831 surveyed said their business manager managed TD; all cited from other studies rather than measured here.
- Untestable AI guessExplanatory framing.
Splitting services too finely raises inter-service dependencies and coordination so total cost rises again rather than falling
Leans rightStructured Design's inter/intra-module cost curve and reports of shotgun surgery across many services support this; no controlled measurement.
· denied 0 ·
Splitting services too finely raises inter-service dependencies and coordination so total cost rises again rather than falling
Leans right- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“people when they focused on making them small quite often cross over this point and keep going down”
- Probably right AI guessStructured Design's inter/intra-module cost curve and reports of shotgun surgery across many services support this; no controlled measurement.
- Leans partly right Soldani et al. 2018 (microservices review) lines 703-71117 of 51 sources report much higher network traffic because services interact by remote API calls instead of in-memory calls, and more services mean more remote invocations; this supports rising inter-service cost with finer splits but gives no total-cost curve.
- Leans right DORA State of DevOps 2019 lines 1091-1092A footnote warns that overly fine-grained services can inhibit delivery performance; stated as authorial guidance citing Fowler, not as a measured finding.
Headlines about big companies abandoning microservices usually describe one team consolidating a few components
Leans rightThe Prime Video post concerned one team's service; Amazon overall remained service-based.
· denied 0 ·
Headlines about big companies abandoning microservices usually describe one team consolidating a few components
Leans right- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“it's one team saying uh we got rid of a couple of Step functions and we made it a single process”
- Probably right AI guessThe Prime Video post concerned one team's service; Amazon overall remained service-based.
Creating services by which team is free rather than by domain seams produces fragmented systems
Leans partly rightConway's-law reasoning and anecdote; no measured outcome data.
· denied 0 ·
Creating services by which team is free rather than by domain seams produces fragmented systems
Leans partly right- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“that kind of opportunity to use microservices to solve a problem of organizational capacity tends to lead to poor outcomes”
- Leans partly right AI guessConway's-law reasoning and anecdote; no measured outcome data.
Service boundaries must be repartitioned continually as the business changes, so owning microservices is never finished
Leans partly rightDomain drift is real; whether it demands service repartitioning rather than internal change depends on granularity.
· denied 0 ·
Service boundaries must be repartitioned continually as the business changes, so owning microservices is never finished
Leans partly right- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“owning microservices is a constant activity there is never a we are done”
- Leans partly right AI guessDomain drift is real; whether it demands service repartitioning rather than internal change depends on granularity.
'Micro' should mean replaceable, not few lines of code
UntestableDefinitional.
· denied 0 ·
'Micro' should mean replaceable, not few lines of code
Untestable- Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 (GOTO Conferences)“it's replaceability that we care about not Lumber and lines of coat”
- Untestable AI guessDefinitional.
Estimation is a learnable skill: recording estimates and comparing them to outcomes calibrates future estimates
Leans wrongIndependent studies of the Personal Software Process, which records estimates and analyses deviations from actuals, found no improvement in estimation accuracy, and a feedback-and-lessons-learned programme likewise produced none versus untrained controls.
· denied 0 ·
Estimation is a learnable skill: recording estimates and comparing them to outcomes calibrates future estimates
Leans wrong- Software Estimation Is Hard. Do It Anyway. - Jacob Kaplan-Moss (jacobian.org)“If you get in the habit of breaking projects down and making timeline estimates, you can review those estimates against reality and recalibrate.”
- Leans partly right AI guessJorgensen's reviews find feedback and decomposition improve estimates modestly, but overconfidence persists even in experts.
- Leans wrong Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 2375-2389Independent studies of the Personal Software Process, which records estimates and analyses deviations from actuals, found no improvement in estimation accuracy, and a feedback-and-lessons-learned programme likewise produced none versus untrained controls.
- Leans partly right Jørgensen 2004 (expert estimation) lines 1092-1103The only software study found outcome feedback (estimate vs actual) did not improve accuracy, consistent with other domains, though it does improve assessment of estimate uncertainty; task-relation feedback is needed for accuracy gains.
Giving accurate timelines builds trust and is required to advance beyond senior engineering roles
UntestableCareer advice.
· denied 0 ·
Giving accurate timelines builds trust and is required to advance beyond senior engineering roles
Untestable- Software Estimation Is Hard. Do It Anyway. - Jacob Kaplan-Moss (jacobian.org)“to go much farther than that you'll likely need to learn this skill”
- Untestable AI guessCareer advice.
Avoiding estimates improves planning conversations, but business commitments still sometimes require a time-based estimate
Leans partly rightReasonable synthesis; practitioner consensus rather than measured.
· denied 0 ·
Avoiding estimates improves planning conversations, but business commitments still sometimes require a time-based estimate
Leans partly right- Software Estimation Is Hard. Do It Anyway. - Jacob Kaplan-Moss (jacobian.org)“there are many situations where an estimate is required”
- Probably partly right AI guessReasonable synthesis; practitioner consensus rather than measured.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4313-4321The authors call the NoEstimates suggestion to stop giving time predictions before a project starts 'unrealistic' while endorsing progress extrapolation, consistent with business still needing up-front estimates; effects on planning conversations are not evaluated.
Automated refactoring tools have existed for decades yet legacy code persists, so the obstacle is mindset not tooling
Leans partly rightTool-usage studies show refactoring tools are underused, which supports the mindset explanation.
· denied 0 ·
Automated refactoring tools have existed for decades yet legacy code persists, so the obstacle is mindset not tooling
Leans partly right- Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 (ACCU Conference)“we have 20 years of evidence that tells us it was never the tool it was the mindset”
- Leans partly right AI guessTool-usage studies show refactoring tools are underused, which supports the mindset explanation.
Never trust a test you have not seen fail
Leans rightMutation testing routinely finds tests that cannot fail; seeing the red state is the standard guard.
· denied 0 ·
Never trust a test you have not seen fail
Leans right- Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 (ACCU Conference)“never trust a test you haven't seen file”
- Probably right AI guessMutation testing routinely finds tests that cannot fail; seeing the red state is the standard guard.
Refactoring in small behaviour-preserving steps with tests or compiler checks at each step avoids the big-bang breakage trap
Leans rightCore of Fowler's refactoring method; supported by practitioner evidence more than experiments.
· denied 0 ·
Refactoring in small behaviour-preserving steps with tests or compiler checks at each step avoids the big-bang breakage trap
Leans right- Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 (ACCU Conference)“if you make a mistake it's easy to find the bug yeah just work in small steps”
- Probably right AI guessCore of Fowler's refactoring method; supported by practitioner evidence more than experiments.
In refactoring-oriented development most commits reposition code so that the final feature addition is a trivial change
Leans partly rightDescribes a workflow; the ratio is one practitioner's anecdote.
· denied 0 ·
In refactoring-oriented development most commits reposition code so that the final feature addition is a trivial change
Leans partly right- Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 (ACCU Conference)“one commit in 30 is actually something that changed the behavior”
- Leans partly right AI guessDescribes a workflow; the ratio is one practitioner's anecdote.
Refactor a problem on its own terms before migrating it to a different paradigm
UntestableMethodological preference.
· denied 0 ·
Refactor a problem on its own terms before migrating it to a different paradigm
Untestable- Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 (ACCU Conference)“let's refactor the control problem refactor on its own terms before migrating it to another Paradigm”
- Untestable AI guessMethodological preference.
Programming productivity has no physical ceiling, so hard work can make anyone a 10x engineer
Leans partly rightWeekly output of munitions workers reached a maximum near 63 h and the marginal product of further hours was negative, so a ceiling on what extra hours can buy exists at least for physical piece work; programming was not studied.
· denied 0 ·
Programming productivity has no physical ceiling, so hard work can make anyone a 10x engineer
Leans partly right- Is the 10x Engineer a Myth? (James Peralta)“if you just put in the hard work you can be 10 times better like 10x better than the average engineer”
- Leans partly right Pencavel 2014 (working hours) lines 620-624Weekly output of munitions workers reached a maximum near 63 h and the marginal product of further hours was negative, so a ceiling on what extra hours can buy exists at least for physical piece work; programming was not studied.
- Untestable AI guessMotivational.
Continuous delivery does not require microservices; monoliths can be deployed continuously
Leans rightFacebook, Etsy, Shopify and GitHub have all deployed monoliths many times a day.
· denied 0 ·
Continuous delivery does not require microservices; monoliths can be deployed continuously
Leans right- Microservice Premium (martinfowler.com)“there are plenty of organizations that succeed with a cookie-cutter deployment approach: Facebook and Etsy are two well-known examples”
- Very likely right AI guessFacebook, Etsy, Shopify and GitHub have all deployed monoliths many times a day.
- Leans right DORA State of DevOps 2019 lines 1071-1079What DORA finds predictive of continuous delivery is the ability to test and deploy independently; microservices are named only as one architecture that is supposed to enable this, and a footnote warns against decomposing new systems into services prematurely.
Pairing all day is unsustainable because sustained joint focus is exhausting
Leans partly rightSelf-reported fatigue is consistent across pairing studies; no measured limit.
· denied 0 ·
Pairing all day is unsustainable because sustained joint focus is exhausting
Leans partly right- On Pair Programming (martinfowler.com)“In our experience, that is not sustainable. First of all it is just too exhausting.”
- Probably partly right AI guessSelf-reported fatigue is consistent across pairing studies; no measured limit.
- Leans right Dybå & Dingsøyr 2008 (agile review) lines 1000-1005A case study found that working 40 hours a week in pairs requires so much concentration that developers became exhausted, and the review's synthesis repeats that several developers regard pairing as exhausting; another project drifted back to solo programming toward its end.
After-the-fact code review is weaker than pairing because reviewers skim, defer to the author and resist rework already invested
Leans partly rightMicrosoft studies show reviews catch fewer defects than expected, but head-to-head comparisons with pairing are lacking.
· denied 0 ·
After-the-fact code review is weaker than pairing because reviewers skim, defer to the author and resist rework already invested
Leans partly right- On Pair Programming (martinfowler.com)“We disagree that code reviews are a good enough alternative to pairing.”
- Leans partly right AI guessMicrosoft studies show reviews catch fewer defects than expected, but head-to-head comparisons with pairing are lacking.
Juniors who always pair can lose confidence and miss learning to solve problems alone
Leans partly rightPlausible and reported, though novice studies mostly show pairing helps juniors.
· denied 0 ·
Juniors who always pair can lose confidence and miss learning to solve problems alone
Leans partly right- On Pair Programming (martinfowler.com)“junior programmers can also experience a loss of confidence in their own abilities when pairing”
- Leans partly right AI guessPlausible and reported, though novice studies mostly show pairing helps juniors.
Power dynamics such as seniority or gender distort pairing when one person dominates the keyboard or dismisses suggestions
Leans partly rightQualitative studies document the dynamic; its effect on outcomes is unmeasured.
· denied 0 ·
Power dynamics such as seniority or gender distort pairing when one person dominates the keyboard or dismisses suggestions
Leans partly right- On Pair Programming (martinfowler.com)“One person is dominating the pairing session by hogging the keyboard and not giving room to their pairing partner.”
- Leans partly right AI guessQualitative studies document the dynamic; its effect on outcomes is unmeasured.
Pairing limits team work in progress, which improves flow
Leans partly rightWIP limits improve flow in Kanban studies; attributing that to pairing is inference.
· denied 0 ·
Pairing limits team work in progress, which improves flow
Leans partly right- On Pair Programming (martinfowler.com)“pair programming limits the number of things a team can work on in parallel, and therefore increases the overall focus”
- Leans partly right AI guessWIP limits improve flow in Kanban studies; attributing that to pairing is inference.
Pairing's value cannot be proven scientifically because development output is too hard to measure, so teams must try it themselves
Leans wrongThe review describes research on particular practices like pair programming as at an intermediate or even mature state, and cites an earlier review calling pair programming supported by a well-established research stream; the evidence may be mixed, but the authors treat it as a scientifically studiable question, not an unmeasurable one.
· denied 0 ·
Pairing's value cannot be proven scientifically because development output is too hard to measure, so teams must try it themselves
Leans wrong- On Pair Programming (martinfowler.com)“Staunch opponents of pairing will always find ways to poke holes into the reproducibility”
- Leans wrong Dybå & Dingsøyr 2008 (agile review) lines 1315-1319The review describes research on particular practices like pair programming as at an intermediate or even mature state, and cites an earlier review calling pair programming supported by a well-established research stream; the evidence may be mixed, but the authors treat it as a scientifically studiable question, not an unmeasurable one.
- Untestable AI guessEpistemic framing.
Pair programming is an XP practice, not a requirement of agile
Probably rightThe review's table of agile methods lists pair programming among XP's twelve practices, while the descriptions of Scrum, Crystal, DSDM, FDD and Lean and the agile manifesto's four values make no mention of it.
· denied 0 ·
Pair programming is an XP practice, not a requirement of agile
Probably right- Pair Programming Misconceptions (martinfowler.com)“The manifesto doesn't mention pair programming and most agile methods don't make it part of their approach.”
- Almost certainly right AI guessThe Agile Manifesto lists values and principles, not practices.
- Probably right Dybå & Dingsøyr 2008 (agile review) lines 155-160The review's table of agile methods lists pair programming among XP's twelve practices, while the descriptions of Scrum, Crystal, DSDM, FDD and Lean and the agile manifesto's four values make no mention of it.
Even excellent teams accumulate inadvertent debt because the right design is only learned by building the system
Leans rightMatches design-emergence research and practitioner consensus; not experimentally tested.
· denied 0 ·
Even excellent teams accumulate inadvertent debt because the right design is only learned by building the system
Leans right- Technical Debt Quadrant (martinfowler.com)“it can take a year of programming on a project before you understand what the best design approach should have been”
- Probably right AI guessMatches design-emergence research and practitioner consensus; not experimentally tested.
The debt metaphor helps explain design problems to non-technical stakeholders
UntestableCommunication framing.
· denied 0 ·
The debt metaphor helps explain design problems to non-technical stakeholders
Untestable- Technical Debt Quadrant (martinfowler.com)“A particular benefit of the debt metaphor is that it's very handy for communicating to non-technical people.”
- Untestable AI guessCommunication framing.
In a mob the group coaches a less-skilled driver on the spot, raising everyone's skills
Leans partly rightCase reports from Hunter Industries and others are positive; no controlled studies.
· denied 0 ·
In a mob the group coaches a less-skilled driver on the spot, raising everyone's skills
Leans partly right- Mob Programming Basics – Mob Programming (mobprogramming.org)“If the Driver is not highly skilled, the rest of the team will help by guiding the Driver in how to create the code”
- Leans partly right AI guessCase reports from Hunter Industries and others are positive; no controlled studies.
A rewrite is viable when the codebase is small, the product is not the main revenue source and there is a compelling business case
Leans partly rightDerived from a handful of personal cases; plausible conditions with no broader data.
· denied 0 ·
A rewrite is viable when the codebase is small, the product is not the main revenue source and there is a compelling business case
Leans partly right- Revisiting Spolsky's "Things You Should Never Do, Part I" (natashajaffe.substack.com)“If the business case is strong then think critically about the size and complexity of the code as it stands today.”
- Leans partly right AI guessDerived from a handful of personal cases; plausible conditions with no broader data.
Rewrite duration grows faster than linearly with codebase size and complexity, making estimates for large rewrites unreliable
Leans partly rightConsistent with overrun data showing large projects overrun most, though the exponential form is hand-waved.
· denied 0 ·
Rewrite duration grows faster than linearly with codebase size and complexity, making estimates for large rewrites unreliable
Leans partly right- Revisiting Spolsky's "Things You Should Never Do, Part I" (natashajaffe.substack.com)“accurately estimating the time a rewrite will take is very hard”
- Leans partly right AI guessConsistent with overrun data showing large projects overrun most, though the exponential form is hand-waved.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 3219-3231Larger tasks are underestimated more (magnitude bias) in controlled experiments, but the observational link between project size and overrun is partly a statistical artefact and the authors do not know how much it applies to large projects.
Tech debt and distaste for old code alone are not a sufficient reason to rewrite a large successful product
Leans partly rightConsistent with Spolsky and with rewrite failure cases; opinion-based.
· denied 0 ·
Tech debt and distaste for old code alone are not a sufficient reason to rewrite a large successful product
Leans partly right- Revisiting Spolsky's "Things You Should Never Do, Part I" (natashajaffe.substack.com)“If your only reason for completely rewriting your codebase is tech debt and visceral ick, don't do it.”
- Probably partly right AI guessConsistent with Spolsky and with rewrite failure cases; opinion-based.
No single architecture suits every scale, so architecture should be revisited with each order of magnitude of growth
UntestableHeuristic.
· denied 0 ·
No single architecture suits every scale, so architecture should be revisited with each order of magnitude of growth
Untestable- Back to the Monolith: Why Did Amazon Dump Microservices? | Nordic APIs | (Nordic APIs)“with every order of magnitude of growth you should revisit your architecture”
- Untestable AI guessHeuristic.
A single-process design suits long-running compute jobs and predictable traffic better than serverless functions
Leans partly rightLambda pricing and duration limits make this true for sustained workloads; Cockcroft's advice is widely echoed.
· denied 0 ·
A single-process design suits long-running compute jobs and predictable traffic better than serverless functions
Leans partly right- Back to the Monolith: Why Did Amazon Dump Microservices? | Nordic APIs | (Nordic APIs)“consider a monolithic approach for long-running computing jobs or when there are predictable traffic spikes”
- Leans partly right AI guessLambda pricing and duration limits make this true for sustained workloads; Cockcroft's advice is widely echoed.
Microservices speed time to market
Leans partly rightIndependent deploys can speed large organisations, but monolith-first advocates argue the opposite for small teams; no comparative data.
· denied 0 ·
Microservices speed time to market
Leans partly right- Back to the Monolith: Why Did Amazon Dump Microservices? | Nordic APIs | (Nordic APIs)“Microservices can help you get a product to market much more quickly, for one thing.”
- Leans partly right AI guessIndependent deploys can speed large organisations, but monolith-first advocates argue the opposite for small teams; no comparative data.
- Leans partly right DORA State of DevOps 2019 lines 1071-1092Architectures that permit testing and deploying services independently help teams achieve higher delivery performance, but it is the loose coupling that predicts, and the report warns that premature or overly fine-grained decomposition into services can inhibit delivery performance.
- Leans partly right Soldani et al. 2018 (microservices review) lines 1100-1108Industrial sources credit microservices with per-service CI/CD (15), fast deployment (11) and small services that are quick to develop (14), but the review notes none provide quantitative data and time to market itself is not measured.
Knowing a block will be interrupted deters starting ambitious work, so a meeting costs more than its duration
Leans partly rightPlausible anticipatory effect; self-report only.
· denied 0 ·
Knowing a block will be interrupted deters starting ambitious work, so a meeting costs more than its duration
Leans partly right- Maker's Schedule, Manager's Schedule (paulgraham.com)“If I know the afternoon is going to be broken up, I'm slightly less likely to start something ambitious in the morning.”
- Leans partly right AI guessPlausible anticipatory effect; self-report only.
- Leans partly right Parnin & Rugaber 2011 (resumption) lines 190-197Programmers needed several minutes before their first edit in 90% of sessions and over 30 minutes in about 30%, so a break costs more than its own duration in resumption time; whether anticipating interruptions deters ambitious work was not measured.
- Leans partly right Mark et al. 2008 (interruptions) lines 200-208Net of interruption time, interrupted subjects finished an email task faster than uninterrupted ones, so the cost beyond the interruption's duration was not time but significantly higher stress, workload and frustration; deterrence from starting work was not studied.
Clustering meetings at the end of the day preserves uninterrupted maker time
Leans partly rightFollows from interruption cost; no outcome data.
· denied 0 ·
Clustering meetings at the end of the day preserves uninterrupted maker time
Leans partly right- Maker's Schedule, Manager's Schedule (paulgraham.com)“Because they come at the end of my day these meetings are never an interruption.”
- Leans partly right AI guessFollows from interruption cost; no outcome data.
Managers and makers run on different schedules, and conflict arises when hourly manager slots are imposed on makers
UntestableFraming.
· denied 0 ·
Managers and makers run on different schedules, and conflict arises when hourly manager slots are imposed on makers
Untestable- Maker's Schedule, Manager's Schedule (paulgraham.com)“Each type of schedule works fine by itself. Problems arise when they meet.”
- Untestable AI guessFraming.
Serverless lets small teams ship without managing infrastructure and often within free tiers
Leans partly rightTrue for low, bursty traffic; costs and limits bite at sustained load, as the same video's Prime Video case shows.
· denied 0 ·
Serverless lets small teams ship without managing infrastructure and often within free tiers
Leans partly right- Serverless was a big mistake... says Amazon (Fireship)“I can easily deploy my shitty JavaScript code without ever having to think about infrastructure I rarely even bust out of the free tier”
- Probably partly right AI guessTrue for low, bursty traffic; costs and limits bite at sustained load, as the same video's Prime Video case shows.
There are no solutions in cloud architecture, only trade-offs
UntestableAphorism.
· denied 0 ·
There are no solutions in cloud architecture, only trade-offs
Untestable- Serverless was a big mistake... says Amazon (Fireship)“when it comes to Cloud architecture there are no Solutions only trade-offs”
- Untestable AI guessAphorism.
Large functions are classes in disguise; extracting until stuck reveals hidden classes
Leans partly rightExtract Class from shared locals is a standard refactoring; 'every' overstates.
· denied 0 ·
Large functions are classes in disguise; extracting until stuck reveals hidden classes
Leans partly right- How small should a function be? - Robert C. Martin (Uncle Bob) (Dev Tools Made Simple)“every large function is really a class with a bunch of little tiny functions inside it”
- Leans partly right AI guessExtract Class from shared locals is a standard refactoring; 'every' overstates.
Function-length rules such as fit on one screen came from historical terminal sizes, not evidence
UntestableHistorical framing.
· denied 0 ·
Function-length rules such as fit on one screen came from historical terminal sizes, not evidence
Untestable- How small should a function be? - Robert C. Martin (Uncle Bob) (Dev Tools Made Simple)“the rule came about your function should fit on a screen well that meant that the functions had to be about 20 lines”
- Untestable AI guessHistorical framing.
Story points began as renamed ideal days, meant only to decide how much work fits an iteration
UntestableHistorical account from a participant.
· denied 0 ·
Story points began as renamed ideal days, meant only to decide how much work fits an iteration
Untestable- Story Points Revisited (ronjeffries.com)“we really only used the points to decide how much work to take into an iteration anyway”
- Untestable AI guessHistorical account from a participant.
Tracking estimates against actuals shifts attention from delivering value to improving estimates
Leans partly rightA company that paid bonuses for estimate accuracy saw accuracy improve while productivity fell because managers padded estimates and absorbed the buffer; accountability raised accuracy mainly by adjusting work content and quality to fit the estimate.
· denied 0 ·
Tracking estimates against actuals shifts attention from delivering value to improving estimates
Leans partly right- Story Points Revisited (ronjeffries.com)“I think tracking how actuals compare with estimates is at best wasteful”
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 1552-1566A company that paid bonuses for estimate accuracy saw accuracy improve while productivity fell because managers padded estimates and absorbed the buffer; accountability raised accuracy mainly by adjusting work content and quality to fit the estimate.
- Leans partly right AI guessThe opposite of Kaplan-Moss's calibration advice; no outcome data either way.
- Leans partly right Jørgensen 2004 (expert estimation) lines 510-526Review finds accuracy evaluation improves software estimation accuracy but partly via self-fulfilling prophecy, and that strong accountability pressure or reward/punishment should be avoided because evaluation pressure degrades difficult judgements.
Slicing stories small enough to finish in about a day gives a smooth flow of value and removes most need for estimates
Leans partly rightSmall batches improve flow in lean research; whether slicing fully replaces estimation is unproven.
· denied 0 ·
Slicing stories small enough to finish in about a day gives a smooth flow of value and removes most need for estimates
Leans partly right- Story Points Revisited (ronjeffries.com)“slice stories down until they just need a single acceptance test”
- Leans partly right AI guessSmall batches improve flow in lean research; whether slicing fully replaces estimation is unproven.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 669-676Small software tasks were predicted without bias in the reviewed data while larger ones overran ~20%, which supports slicing for predictability; flow and removing the need for estimates are not examined.
Frequent small releases deliver more value than big-bang releases whose dates keep receding
Leans rightDORA and lean batch-size evidence favour small frequent releases.
· denied 0 ·
Frequent small releases deliver more value than big-bang releases whose dates keep receding
Leans right- Story Points Revisited (ronjeffries.com)“we do best to provide small amounts of value frequently, not wait for Big Bang releases that seem often to recede indefinitely into the future”
- Probably right AI guessDORA and lean batch-size evidence favour small frequent releases.
- Leans partly right DORA State of DevOps 2019 lines 80-86Deployment frequency is one of the four metrics whose high-performer cluster is twice as likely to meet organisational goals, which supports more frequent releases delivering more value; release size and receding dates are not measured as such.
- Leans partly right Dybå & Dingsøyr 2008 (agile review) lines 1081-1086In a two-project comparison the agile team that delivered in-progress software more often demonstrated business value sooner and saw a sharp rise in customer satisfaction, and a survey found agile companies prefer more releases; small, uncontrolled studies.
Monoliths without enforced boundaries become so coupled that small changes have unexpected effects and newcomers need enormous context
Leans rightCoupling-defect and comprehension research supports it; Shopify's developer survey is a single case.
· denied 0 ·
Monoliths without enforced boundaries become so coupled that small changes have unexpected effects and newcomers need enormous context
Leans right- Deconstructing the Monolith - Shopify (Shopify)“Making a seemingly innocuous change could trigger a cascade of unrelated test failures.”
- Very likely right AI guessCoupling-defect and comprehension research supports it; Shopify's developer survey is a single case.
Organising code by business domain rather than technical layer makes code and its owners easier to find
Leans partly rightPackage-by-feature is widely recommended; the evidence is practitioner experience.
· denied 0 ·
Organising code by business domain rather than technical layer makes code and its owners easier to find
Leans partly right- Deconstructing the Monolith - Shopify (Shopify)“re-organize it by real-world concepts (like orders, shipping, inventory, and billing), in an attempt to make it easier to locate code”
- Leans partly right AI guessPackage-by-feature is widely recommended; the evidence is practitioner experience.
Adding public interfaces around modules without untangling the dependency graph just adds indirection and makes code harder to change
Leans partly rightConsistent with coupling research and Parnas-style modularity theory, but the evidence here is one organization's experience report.
· denied 0 ·
Adding public interfaces around modules without untangling the dependency graph just adds indirection and makes code harder to change
Leans partly right- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“the public interface turned out to just be an added layer of indirection in the existing control flows”
- Leans partly right AI guessConsistent with coupling research and Parnas-style modularity theory, but the evidence here is one organization's experience report.
Modules can only be reasoned about or tested in isolation when the dependency graph between them is sparse and acyclic
Leans rightFollows from how dependencies propagate change; cyclic dependency metrics correlate with defect proneness in several empirical studies.
· denied 0 ·
Modules can only be reasoned about or tested in isolation when the dependency graph between them is sparse and acyclic
Leans right- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“A dense, cyclical dependency graph undermines the whole idea of Componentization”
- Probably right AI guessFollows from how dependencies propagate change; cyclic dependency metrics correlate with defect proneness in several empirical studies.
Large architecture changes to an actively developed codebase succeed only by changing average developer behaviour, not by a central team's effort
Leans partly rightPlausible and matches other large-refactor reports, but it is an organizational observation without controlled evidence.
· denied 0 ·
Large architecture changes to an actively developed codebase succeed only by changing average developer behaviour, not by a central team's effort
Leans partly right- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“A single centralized team can’t make change happen by working against the momentum of hundreds of developers adding features.”
- Leans partly right AI guessPlausible and matches other large-refactor reports, but it is an organizational observation without controlled evidence.
- Leans partly right DORA State of DevOps 2019 lines 1876-1884For DevOps transformations rather than architecture changes, DORA finds low performers favour Centers of Excellence and training centres that centralise expertise and become bottlenecks, while high performers spread practice through communities of practice and grassroots efforts.
Imposing uniform coding conventions adds learning and compliance friction without making hard design problems easier
Leans partly rightRules have a cost, but consistency also has measured comprehension benefits, so the net effect depends on the rule.
· denied 0 ·
Imposing uniform coding conventions adds learning and compliance friction without making hard design problems easier
Leans partly right- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“Pushing for consistency added rules, which always add some friction, because they have to be learned, remembered, and followed.”
- Leans partly right AI guessRules have a cost, but consistency also has measured comprehension benefits, so the net effect depends on the rule.
Static dependency analysis gives faster and more actionable boundary enforcement than tracing runtime calls
Leans rightStatic reference analysis is cheap and deterministic; dynamic tracing depends on test coverage and is noisy, though it catches reflective calls static analysis misses.
· denied 0 ·
Static dependency analysis gives faster and more actionable boundary enforcement than tracing runtime calls
Leans right- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“There’s less ambiguity in static references, and because they’re always explicitly introduced by developers, highlighting them is more actionable.”
- Probably right AI guessStatic reference analysis is cheap and deterministic; dynamic tracing depends on test coverage and is noisy, though it catches reflective calls static analysis misses.
Large-scale architecture refactors stay in an incomplete intermediate state far longer than planned
Leans partly rightWidely reported across migration case studies, but it is experience-based rather than measured.
· denied 0 ·
Large-scale architecture refactors stay in an incomplete intermediate state far longer than planned
Leans partly right- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“all large architecture changes end up in an incomplete state”
- Probably partly right AI guessWidely reported across migration case studies, but it is experience-based rather than measured.
Explicit module ownership makes whole-codebase chores like framework upgrades easier to distribute
Leans partly rightOwnership clarity is linked to lower defect rates in Microsoft's organizational-metrics studies, but the upgrade claim is a single report.
· denied 0 ·
Explicit module ownership makes whole-codebase chores like framework upgrades easier to distribute
Leans partly right- Under Deconstruction: The State of Shopify’s Monolith - Shopify (Shopify)“with each component explicitly owned by a team, whole-codebase chores like Rails upgrades are easily distributed and collaboratively solved”
- Leans partly right AI guessOwnership clarity is linked to lower defect rates in Microsoft's organizational-metrics studies, but the upgrade claim is a single report.
A small team can maintain a large product across many platforms from a single integrated codebase
Leans partly rightBasecamp is a real existence proof, but a single company's experience does not show other approaches would have failed.
· denied 0 ·
A small team can maintain a large product across many platforms from a single integrated codebase
Leans partly right- The Majestic Monolith (Signal v. Noise)“the only possible way to do so with a small team of ~12 programmers is do explicitly choose and commit to The Majestic Monolith”
- Leans partly right AI guessBasecamp is a real existence proof, but a single company's experience does not show other approaches would have failed.
Many small services make it easy for knowledge to silo so only one person understands each part
Leans partly rightService ownership does concentrate knowledge by design; whether that is worse than monolith hotspots has not been measured.
· denied 0 ·
Many small services make it easy for knowledge to silo so only one person understands each part
Leans partly right- The Majestic Monolith (Signal v. Noise)“It’s much easier to silo knowledge and responsibilities with a proliferation of smaller systems.”
- Leans partly right AI guessService ownership does concentrate knowledge by design; whether that is worse than monolith hotspots has not been measured.
Extracting one slice with divergent performance needs as a separate service captures most of the scaling benefit without distributing the whole system
Leans partly rightTargeted extraction is a standard migration pattern and matches Shopify's and others' reports, but 'most of the benefit' is not quantified.
· denied 0 ·
Extracting one slice with divergent performance needs as a separate service captures most of the scaling benefit without distributing the whole system
Leans partly right- The Majestic Monolith can become The Citadel (Signal v. Noise)“The Outposts are there to allow the Majestic Monolith to offload a particular slice of divergent behavior”
- Leans partly right AI guessTargeted extraction is a standard migration pattern and matches Shopify's and others' reports, but 'most of the benefit' is not quantified.
Many teams that adopted microservices are retreating to monoliths
UnknownThere are prominent consolidation stories (Amazon Prime Video, Segment) but no survey establishes a net trend.
· denied 0 ·
Many teams that adopted microservices are retreating to monoliths
Unknown- The Majestic Monolith can become The Citadel (Signal v. Noise)“As more and more people come to realize that the chase for microservices ended in a blind alley, the pendulum is going to swing back.”
- Unknown AI guessThere are prominent consolidation stories (Amazon Prime Video, Segment) but no survey establishes a net trend.
Slowing down to investigate a problem before coding reduces later cleanup
Leans partly rightUpfront understanding reduces rework in design studies, though the optimal amount varies and this is an archetype, not data.
· denied 0 ·
Slowing down to investigate a problem before coding reduces later cleanup
Leans partly right- The 10x Programmer Myth (Simple Thread)“Once they reach a solution, you can be sure that people aren’t going to have to come behind them and clean things up.”
- Leans partly right AI guessUpfront understanding reduces rework in design studies, though the optimal amount varies and this is an archetype, not data.
Deep expertise in a narrow domain can make an engineer vastly more productive there but less useful elsewhere
Leans partly rightExpertise is domain-specific per expertise research, though top engineers often transfer reasonably well.
· denied 0 ·
Deep expertise in a narrow domain can make an engineer vastly more productive there but less useful elsewhere
Leans partly right- The 10x Programmer Myth (Simple Thread)“If John Carmack was dropped into the average web development project, he wouldn’t be very happy or effective”
- Leans partly right AI guessExpertise is domain-specific per expertise research, though top engineers often transfer reasonably well.
- Leans partly right Bird et al. 2011 (code ownership) lines 502-505Changes from developers with little prior activity on a Windows component predict failures, and the same developers are usually major contributors to a dependent component, i.e. expertise is component-specific; the outcome measured is defects, not productivity.
Reviewer effectiveness falls off after about an hour of continuous review
Leans partly rightVigilance decrement is well established in general, but direct evidence for code review durations is thin and vendor-sourced.
· denied 0 ·
Reviewer effectiveness falls off after about an hour of continuous review
Leans partly right- Best Practices for Code Review (smartbear.com)“performance starts dropping off after about 60 minutes”
- Leans partly right AI guessVigilance decrement is well established in general, but direct evidence for code review durations is thin and vendor-sourced.
Checklists catch omission defects that unstructured review tends to miss
Leans partly rightChecklist-based reading experiments show modest gains over ad hoc reading; 'most effective' is overstated.
· denied 0 ·
Checklists catch omission defects that unstructured review tends to miss
Leans partly right- Best Practices for Code Review (smartbear.com)“Checklists are the most effective way to eliminate frequently made errors and to combat the challenges of omission finding.”
- Leans partly right AI guessChecklist-based reading experiments show modest gains over ad hoc reading; 'most effective' is overstated.
Using code review metrics for performance evaluation makes developers hostile and game the process
Leans partly rightGoodhart effects are well documented for productivity metrics generally; direct evidence for review metrics is anecdotal.
· denied 0 ·
Using code review metrics for performance evaluation makes developers hostile and game the process
Leans partly right- Best Practices for Code Review (smartbear.com)“If personal metrics become a basis for compensation or promotion, developers will become hostile toward the process”
- Leans partly right AI guessGoodhart effects are well documented for productivity metrics generally; direct evidence for review metrics is anecdotal.
- Leans partly right DORA State of DevOps 2019 lines 1427-1435The report invokes Goodhart's law for productivity metrics like lines of code or story points, noting teams refuse to help others when it would hurt their velocity; the gaming mechanism applies, but code review metrics are not studied.
Knowing code will be reviewed makes developers write cleaner code even on unreviewed changes
Leans partly rightAccountability effects are plausible and reported by practitioners, but the spot-check figures come from one vendor study.
· denied 0 ·
Knowing code will be reviewed makes developers write cleaner code even on unreviewed changes
Leans partly right- Best Practices for Code Review (smartbear.com)“The knowledge that others will be examining their work naturally drives people to produce a better product.”
- Leans partly right AI guessAccountability effects are plausible and reported by practitioners, but the spot-check figures come from one vendor study.
- Leans partly right Bacchelli & Bird 2013 (Microsoft code review) lines 277-279A manager describes the 'discipline of explaining your code to your peers' as driving a higher standard of coding; an opinion from a survey, and the effect on unreviewed changes is not examined.
Lightweight tool-assisted review finds as many defects as formal inspection in a fraction of the time
Leans partly rightVendor data; independent studies (Bacchelli and Bird) find modern lightweight review catches fewer defects than expected, with most value in knowledge transfer.
· denied 0 ·
Lightweight tool-assisted review finds as many defects as formal inspection in a fraction of the time
Leans partly right- Best Practices for Code Review (smartbear.com)“lightweight code review takes less than 20% the time of formal reviews and finds just as many bugs!”
- Leans partly right AI guessVendor data; independent studies (Bacchelli and Bird) find modern lightweight review catches fewer defects than expected, with most value in knowledge transfer.
Desirable test properties trade off; making tests more predictive of production makes them slower
Leans rightIntegration and end-to-end tests are consistently slower than unit tests while catching more realistic failures; the test-pyramid literature rests on this.
· denied 0 ·
Desirable test properties trade off; making tests more predictive of production makes them slower
Leans right- TestDesiderata (TestDesiderata)“Making tests more predictive of production behavior makes them slower.”
- Probably right AI guessIntegration and end-to-end tests are consistently slower than unit tests while catching more realistic failures; the test-pyramid literature rests on this.
Tests that are deterministic and independent of run order are more valuable because flaky results erode trust
Leans rightFlaky-test research at Google and in academia shows order dependence and nondeterminism waste developer time and cause ignored failures.
· denied 0 ·
Tests that are deterministic and independent of run order are more valuable because flaky results erode trust
Leans right- TestDesiderata (TestDesiderata)“Isolated — tests should return the same results regardless of the order in which they are run.”
- Very likely right AI guessFlaky-test research at Google and in academia shows order dependence and nondeterminism waste developer time and cause ignored failures.
A passing test suite should be sufficient evidence that code is ready for production
Leans partly rightAn aspiration; in practice tests cannot cover all production conditions, which is why canaries and monitoring exist.
· denied 0 ·
A passing test suite should be sufficient evidence that code is ready for production
Leans partly right- TestDesiderata (TestDesiderata)“Predictive — if the tests all pass, then the code under test should be suitable for production.”
- Leans partly right AI guessAn aspiration; in practice tests cannot cover all production conditions, which is why canaries and monitoring exist.
- Leans right DORA State of DevOps 2019 lines 1012-1015DORA defines effective automated testing as giving developers confidence that a passing suite means the code can be successfully deployed, and finds such testing predicts CI and CD; this is the report's framing rather than a test of whether suites actually suffice.
Static and dynamic typing differ in when types are enforced, not in how many types a language has
Leans rightStandard type-theory framing; the 'unityped' view is a legitimate static lens but says nothing about dynamic type counts.
· denied 0 ·
Static and dynamic typing differ in when types are enforced, not in how many types a language has
Leans right- Laurence Tratt: Another Non-Argument in Type Systems (tratt.net)“The fundamental difference between statically and dynamically typed languages isn’t over how many types they have: it’s about when those types are utilised.”
- Very likely right AI guessStandard type-theory framing; the 'unityped' view is a legitimate static lens but says nothing about dynamic type counts.
- Leans right Gao, Bird & Barr 2017 (types vs JS bugs) lines 38-42Background definition only: static type systems check types at compile time while dynamic ones distinguish types at run time; the paper's gradual-typing method relies on JavaScript values having the same types either way.
Encoding a dynamically typed program in a static type system bloats it with explicit checks the runtime would do implicitly
Leans rightTrue for naive sum-type encodings; gradual and inferred systems reduce but do not eliminate the annotation burden.
· denied 0 ·
Encoding a dynamically typed program in a static type system bloats it with explicit checks the runtime would do implicitly
Leans right- Laurence Tratt: Another Non-Argument in Type Systems (tratt.net)“a static type system forces us to explicitly express all the checks that a dynamically typed run-time implicitly performs for us”
- Probably right AI guessTrue for naive sum-type encodings; gradual and inferred systems reduce but do not eliminate the annotation burden.
Static analysis is unsound and incomplete, so it can augment but not replace a type system
Leans rightIndustrial static analyzers deliberately trade soundness for coverage; this is their documented design position.
· denied 0 ·
Static analysis is unsound and incomplete, so it can augment but not replace a type system
Leans right- Laurence Tratt: Another Non-Argument in Type Systems (tratt.net)“They therefore can not replace static type systems, but can augment them.”
- Probably right AI guessIndustrial static analyzers deliberately trade soundness for coverage; this is their documented design position.
Unit tests catch most type errors and can give guarantees beyond what static typing provides
Leans partly rightTests check behaviour that types cannot express, but they are not exhaustive, so types and tests are complementary rather than one subsuming the other.
· denied 0 ·
Unit tests catch most type errors and can give guarantees beyond what static typing provides
Leans partly right- Laurence Tratt: Dynamically Typed Languages (tratt.net)“unit testing allows developers to make guarantees of their programs that are considerably in excess of anything that static typing can provide”
- Leans partly right AI guessTests check behaviour that types cannot express, but they are not exhaustive, so types and tests are complementary rather than one subsuming the other.
- Leans partly right Hanenberg et al. 2014 (static types) lines 1365-1371The provided tests did expose every injected type error in Groovy as a run-time failure, so tests caught them, but fixing from that failure took 2-5x longer than from the compiler message because the symptom appeared far from the cause and required much more navigation.
- Leans partly right Gao, Bird & Barr 2017 (types vs JS bugs) lines 24-31The 400 bugs studied had already survived each project's testing and review, yet 15% were still detectable by adding type annotations, so tests and review let a non-trivial residue of type errors through; the study cannot say what fraction of all type errors tests caught earlier.
Mainstream static type systems cannot express many useful constraints, such as a divisor being non-zero
Leans rightRefinement and dependent types can express such constraints but remain niche; mainstream systems cannot.
· denied 0 ·
Mainstream static type systems cannot express many useful constraints, such as a divisor being non-zero
Leans right- Laurence Tratt: Dynamically Typed Languages (tratt.net)“This limitation is shared by virtually all statically typed languages.”
- Probably right AI guessRefinement and dependent types can express such constraints but remain niche; mainstream systems cannot.
- Leans right Gao, Bird & Barr 2017 (types vs JS bugs) lines 428-441StringError (wrong content of a string such as a bad URL or SQL) is the second largest class of bugs neither Flow nor TypeScript could detect, because the string type is opaque to most static type systems and refining it remains an open problem; a value-level constraint example matching the claim's mechanism.
- Leans right Hanenberg et al. 2014 (static types) lines 657-678The semantic-error tasks are concrete cases Java's type system cannot express: a wrong job class with a compatible interface and a missing method call both type-check, and static typing gave no measurable help in fixing them.
Small increases in type system expressiveness cause disproportionately large increases in complexity
Leans partly rightBorne out by the history of Scala, Java generics and TypeScript's type-level programming, though it is a qualitative observation.
· denied 0 ·
Small increases in type system expressiveness cause disproportionately large increases in complexity
Leans partly right- Laurence Tratt: Dynamically Typed Languages (tratt.net)“relatively small increases in the expressivity of static type systems cause a disproportionately large increase in complexity”
- Leans partly right AI guessBorne out by the history of Scala, Java generics and TypeScript's type-level programming, though it is a qualitative observation.
Type systems themselves contain soundness bugs that are hard to fix without breaking existing programs
Leans rightEiffel covariance, Java generics with arrays, and unsoundness found in Scala and TypeScript are documented cases.
· denied 0 ·
Type systems themselves contain soundness bugs that are hard to fix without breaking existing programs
Leans right- Laurence Tratt: Dynamically Typed Languages (tratt.net)“the vast majority of static type systems are not proved correct; some are sufficiently complex that a full proof of correctness is impractical or impossible”
- Very likely right AI guessEiffel covariance, Java generics with arrays, and unsoundness found in Scala and TypeScript are documented cases.
Automatic memory management saves a large share of programmer time and removes a class of bugs
Leans rightMemory-safety bugs are the majority of serious vulnerabilities in C and C++ codebases per Microsoft and Google data.
· denied 0 ·
Automatic memory management saves a large share of programmer time and removes a class of bugs
Leans right- Laurence Tratt: Dynamically Typed Languages (tratt.net)“Manual memory management – when the programmer must manually allocate and free memory – wastes programmer resources”
- Very likely right AI guessMemory-safety bugs are the majority of serious vulnerabilities in C and C++ codebases per Microsoft and Google data.
- Leans partly right Ray et al. 2014 (languages on GitHub) lines 607-613Memory errors are 5.44% of bug-fix commits and are concentrated in unmanaged languages (C, C++, Objective-C) with statistical significance, but garbage-collected Java still has above-average memory errors (29% of them leaks), and programmer time is not measured; the reproduction could not repeat this bug-category analysis.
Short-lived feature branches with pull requests preserve the benefits of trunk-based development as long as they merge within a day or so
Leans partly rightBranch lifetime, not branch existence, drives integration pain; this is the consensus position in continuous delivery literature.
· denied 0 ·
Short-lived feature branches with pull requests preserve the benefits of trunk-based development as long as they merge within a day or so
Leans partly right- Trunk Based Development (trunkbaseddevelopment.com)“short-lived feature branches are used for code-review and build checking (CI), but not artifact creation or publication”
- Probably partly right AI guessBranch lifetime, not branch existence, drives integration pain; this is the consensus position in continuous delivery literature.
- Leans right DORA State of DevOps 2019 lines 1023-1024DORA characterises effective trunk-based development as fewer than three active branches and branches or forks living less than a day before merging to master, so short-lived branches merged within a day count as trunk-based in its predictive model.
Teams on a shared trunk can scale headcount up or down without losing throughput or quality
Leans partly rightGoogle's monorepo shows it is possible with heavy tooling investment; Brooks's-law effects do not vanish because of a branching model.
· denied 0 ·
Teams on a shared trunk can scale headcount up or down without losing throughput or quality
Leans partly right- Trunk Based Development (trunkbaseddevelopment.com)“Development teams can casually flex up or down in size (in the trunk) without affecting throughput or quality.”
- Leans partly right AI guessGoogle's monorepo shows it is possible with heavy tooling investment; Brooks's-law effects do not vanish because of a branching model.
Beyond a couple of developers a build server is needed to catch commits that break the trunk
Leans rightCI servers are near-universal practice; the threshold is a rule of thumb.
· denied 0 ·
Beyond a couple of developers a build server is needed to catch commits that break the trunk
Leans right- Trunk Based Development (trunkbaseddevelopment.com)“you are going to need to hook up a build server to verify that their commits have not broken the build”
- Probably right AI guessCI servers are near-universal practice; the threshold is a rule of thumb.
Tools that assign a monetary figure to technical debt produce made-up numbers
Leans partly rightSQALE-style remediation costs rest on arbitrary per-issue estimates with little validation; some correlate loosely with maintenance effort.
· denied 0 ·
Tools that assign a monetary figure to technical debt produce made-up numbers
Leans partly right- Technical Neglect, Kevlin Henney (Codecamp Romania)“tools that will look over your code base and say here is how much technical debt you have”
- Probably partly right AI guessSQALE-style remediation costs rest on arbitrary per-issue estimates with little validation; some correlate loosely with maintenance effort.
- Leans partly right Tornhill & Borg 2022 (Code Red) lines 164-172Argues that existing TD quantification methods (Maintainability Index, SIG TD, SQALE) price remediation work while the real cost of TD is the extra development time (interest), so such figures measure the wrong thing; it does not call them made up and the paper itself tries to put numbers on TD.
Organizations often scale headcount to cope with the mess created by their own neglect rather than to add value
UnknownPlausible but no data links hiring growth to failure demand.
· denied 0 ·
Organizations often scale headcount to cope with the mess created by their own neglect rather than to add value
Unknown- Technical Neglect, Kevlin Henney (Codecamp Romania)“most organizations when they scale they scale for the wrong reasons they scale to manage failure”
- Unknown AI guessPlausible but no data links hiring growth to failure demand.
Unmanaged technical debt undermines security because code and dependencies nobody understands cannot be reasoned about
Leans partly rightDependency unawareness is a documented supply-chain risk; the link to general debt is argued rather than measured.
· denied 0 ·
Unmanaged technical debt undermines security because code and dependencies nobody understands cannot be reasoned about
Leans partly right- Technical Neglect, Kevlin Henney (Codecamp Romania)“if you don't know your dependencies you can't make claims about security”
- Leans partly right AI guessDependency unawareness is a documented supply-chain risk; the link to general debt is argued rather than measured.
Focusing on one change inevitably leaves side-effect mess that must be cleaned up afterwards
Leans partly rightLehman's increasing-complexity law; empirical decay studies support it, though the inevitability is a strong form.
· denied 0 ·
Focusing on one change inevitably leaves side-effect mess that must be cleaned up afterwards
Leans partly right- Technical Neglect, Kevlin Henney (Codecamp Romania)“there is inevitably going to be some other consequence that you will have to address”
- Probably partly right AI guessLehman's increasing-complexity law; empirical decay studies support it, though the inevitability is a strong form.
Code does not decay on its own; degradation comes from the changes made to it
Leans partly rightTrue of the code text; in practice environments and dependencies drift, so untouched code does stop working.
· denied 0 ·
Code does not decay on its own; degradation comes from the changes made to it
Leans partly right- Technical Neglect, Kevlin Henney (Codecamp Romania)“if you leave a piece of code and don't touch it for 10 years there is no intrinsic rotting or decaying”
- Leans partly right AI guessTrue of the code text; in practice environments and dependencies drift, so untouched code does stop working.
Capping pull request size makes developers chain dependent branches instead of working in smaller steps
Leans partly rightStacked PRs are a common response to size limits; whether that is worse than large PRs is unmeasured.
· denied 0 ·
Capping pull request size makes developers chain dependent branches instead of working in smaller steps
Leans partly right- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“when they were finished with one full request then they just started a new branch based on that full request”
- Leans partly right AI guessStacked PRs are a common response to size limits; whether that is worse than large PRs is unmeasured.
Working together builds psychological safety better than anything else
Leans partly rightCollaboration correlates with safety, but the superlative is attributed to unnamed research.
· denied 0 ·
Working together builds psychological safety better than anything else
Leans partly right- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“nothing builds community in the team with psychological safety and all that as actually working together”
- Leans partly right AI guessCollaboration correlates with safety, but the superlative is attributed to unnamed research.
Pairing makes waste like slow builds visible and fixed because two people waiting will not tolerate what one accepts
Leans partly rightPlausible social mechanism reported by one team; no independent evidence.
· denied 0 ·
Pairing makes waste like slow builds visible and fixed because two people waiting will not tolerate what one accepts
Leans partly right- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“when you're two people sitting on waiting this team, the first time maybe it's drinking a little coffee and it's okay”
- Leans partly right AI guessPlausible social mechanism reported by one team; no independent evidence.
Per-change pull request gates break down under continuous delivery with many deployments a day
Leans wrongMore than 25,000 Google developers put about 20,000 changes a day through mandatory per-change review into one trunk, with median latency under 4 hours and developers confirming the process works well at scale; one highly tuned company, not a GitHub pull-request setup.
· denied 0 ·
Per-change pull request gates break down under continuous delivery with many deployments a day
Leans wrong- "Pair Programming Fixed Our Pull Request Bottlenecks" (Modern Software Engineering)“If all of these four are to create pull requests all the time for all of the small changes, the team will break down immediately”
- Leans partly right AI guessGoogle and others sustain high deploy rates with change-based review; the claim holds only when review latency is high.
- Leans wrong Sadowski et al. 2018 (Google code review) lines 31-34More than 25,000 Google developers put about 20,000 changes a day through mandatory per-change review into one trunk, with median latency under 4 hours and developers confirming the process works well at scale; one highly tuned company, not a GitHub pull-request setup.
- Leans partly right DORA State of DevOps 2019 lines 1297-1299DORA says approving each individual change by an external board is impossible in the continuous paradigm, but it recommends shifting to per-change peer review by a teammate during development, so the breakdown applies to external gates, not to peer review itself.
Software complexity is whatever makes a system hard to understand and modify, and is judged by its readers rather than its writers
Leans partly rightUnderstandability proxies varied more between developers reading the same snippet than between snippets read by the same developer, and none of 121 code metrics captured it, supporting that difficulty is reader-dependent; the claim's definition of complexity itself is not tested.
· denied 0 ·
Software complexity is whatever makes a system hard to understand and modify, and is judged by its readers rather than its writers
Leans partly right- Review: A Philosophy of Software Design by John Ousterhout (Yevgeniy Brikman)“Complexity is mostly determined by the readers of the code, not the writers. If other developers think your code is complex, then it is.”
- Leans partly right Scalabrino et al. 2019 (understandability) lines 852-854Understandability proxies varied more between developers reading the same snippet than between snippets read by the same developer, and none of 121 code metrics captured it, supporting that difficulty is reader-dependent; the claim's definition of complexity itself is not tested.
- Untestable AI guessA definition.
Defining errors out of existence at the interface removes whole classes of error handling
Leans partly rightWorks for idempotent operations like unset; many errors reflect real external failures that cannot be defined away.
· denied 0 ·
Defining errors out of existence at the interface removes whole classes of error handling
Leans partly right- Review: A Philosophy of Software Design by John Ousterhout (Yevgeniy Brikman)“By changing the definition of the interface, you eliminate an entire set of possible errors, reducing complexity for everyone.”
- Probably partly right AI guessWorks for idempotent operations like unset; many errors reflect real external failures that cannot be defined away.
Consistency across a codebase is worth more than any individual better idea that would break it
Leans partly rightConsistency aids comprehension in code-reading studies, but 'almost always' ignores cases where a convention is actively harmful.
· denied 0 ·
Consistency across a codebase is worth more than any individual better idea that would break it
Leans partly right- Review: A Philosophy of Software Design by John Ousterhout (Yevgeniy Brikman)“the value of consistency over inconsistency is almost always greater than the value of one approach over another”
- Leans partly right AI guessConsistency aids comprehension in code-reading studies, but 'almost always' ignores cases where a convention is actively harmful.
Productivity being hard to measure does not prevent sound judgments about large differences between people
UntestableEpistemic framing rather than a testable claim.
· denied 0 ·
Productivity being hard to measure does not prevent sound judgments about large differences between people
Untestable- The 10x developer is NOT a myth (Yevgeniy Brikman)“Just because something is hard to measure doesn’t mean we can’t reason about it.”
- Untestable AI guessEpistemic framing rather than a testable claim.
Relative-size estimation is more accurate than time estimates for complex or uncertain work
Leans wrongFew studies exist; relative estimation improved accuracy in some contexts and worsened it in others, and the authors conclude relative predictions are generally not more accurate than absolute ones and bias estimates when tasks differ much in size.
· denied 0 ·
Relative-size estimation is more accurate than time estimates for complex or uncertain work
Leans wrong- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“This is more accurate for complex or uncertain work and avoids the pitfalls of timebased estimates which can quickly become inaccurate.”
- Leans wrong Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4210-4227Few studies exist; relative estimation improved accuracy in some contexts and worsened it in others, and the authors conclude relative predictions are generally not more accurate than absolute ones and bias estimates when tasks differ much in size.
- Leans partly right AI guessComparison-based estimation has some support, but experiments do not show story points beating well-calibrated hour estimates.
Group estimation sessions surface hidden complexity and build shared understanding of the work
Leans rightGroups of software professionals produced higher and more realistic estimates than their prior individual ones, qualitatively because they identified more activities, and planning poker gave a shared understanding of the work and risks; student groups, by contrast, became more optimistic.
· denied 0 ·
Group estimation sessions surface hidden complexity and build shared understanding of the work
Leans right- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“This promotes a shared understanding of the work and helps uncover hidden complexities and fosters team alignment.”
- Leans partly right AI guessMolokken-Ostvold found group estimates less optimistic than individual ones; the shared-understanding benefit is widely reported.
- Leans right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4566-4578Groups of software professionals produced higher and more realistic estimates than their prior individual ones, qualitatively because they identified more activities, and planning poker gave a shared understanding of the work and risks; student groups, by contrast, became more optimistic.
- Leans partly right Jørgensen 2004 (expert estimation) lines 954-966Group discussion of software estimates beat simple averaging because it produced new knowledge about role interactions, but the review rates the evidence for group combination as not strong since discussion can also push estimates toward risk or conservatism.
Velocity from completed points gives reliable forecasts of future throughput
Leans partly rightExtrapolating from measured early productivity is called 'a simple time prediction model based on highly local data' that few models beat, but reliability is not quantified and relative (point-based) estimation is elsewhere found no more accurate than absolute estimation.
· denied 0 ·
Velocity from completed points gives reliable forecasts of future throughput
Leans partly right- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“This velocity can then be used to make more reliable forecasts about future work”
- Leans partly right AI guessVelocity forecasts work when scope and team are stable; point inflation and scope churn routinely break them.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4309-4321Extrapolating from measured early productivity is called 'a simple time prediction model based on highly local data' that few models beat, but reliability is not quantified and relative (point-based) estimation is elsewhere found no more accurate than absolute estimation.
Time spent estimating is wasted and better spent building
Leans wrongThe review's authors reject the NoEstimates position that predictions are a waste as unrealistic, noting that extrapolating progress is itself a time prediction and that judgement-based predictions are on average fairly accurate (20-30% error).
· denied 0 ·
Time spent estimating is wasted and better spent building
Leans wrong- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“I believe all estimates are a waste of valuable time that could be better spent actually building something.”
- Leans wrong Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4313-4321The review's authors reject the NoEstimates position that predictions are a waste as unrealistic, noting that extrapolating progress is itself a time prediction and that judgement-based predictions are on average fairly accurate (20-30% error).
- Leans partly right AI guessEstimation has coordination and prioritization value; NoEstimates works in some contexts but not where commitments are needed.
Abstract units shield teams from fixed-deadline pressure and reduce estimate padding
Leans partly rightPadding under pressure is documented, but stakeholders convert points to dates anyway, as the same source notes.
· denied 0 ·
Abstract units shield teams from fixed-deadline pressure and reduce estimate padding
Leans partly right- Why Story Points Are a Complete Waste of Time (Lead Prompt Podcast)“story points help to shield the team from the emotional pressure and rigidness of fixed timebased commitments”
- Leans partly right AI guessPadding under pressure is documented, but stakeholders convert points to dates anyway, as the same source notes.
- Leans partly right Halkjelsvik & Jørgensen 2018 (Time Predictions) lines 4812-4823Fibonacci and T-shirt scales speed estimation but gave no accuracy benefit in published and several unpublished experiments and introduce a bias toward the scale's middle value; shielding from deadline pressure is not tested.
Videos and posts
Score: −1 mostly wrong, 0 mixed, 1 mostly right, 2 right, from the verdicts on the claims each source makes. Novelty adds up, for each claim a source gets right or correctly refutes, the verdict's confidence divided by how many sources take the same stance; 1 is about one unique, well-supported point.
| Score | Source | Novelty | Verdict |
|---|---|---|---|
| +2 | What We Know We Don't Know | 3.00 | new and sound |
| +2 | cmuratori-discussion/cleancodeqa.md at main · unclebob/cmuratori-discussion | 2.78 | new and sound |
| +2 | code.talks 2023 - Our journey from Gitflow to Trunk Based Development | 2.65 | new and sound |
| +2 | Mutation Testing in Python with Cosmic Ray - Austin Bingham - NDC TechTown 2024 | 2.38 | new and sound |
| +2 | Physiological Effects of Crunch: A Look at the Science | 2.29 | new and sound |
| +2 | Critique - Google's Code Review Tool | Reaction | 2.06 | new and sound |
| +2 | Microservices, Where Did It All Go Wrong • Ian Cooper • GOTO 2024 | 2.05 | new and sound |
| +2 | Laurence Tratt: Another Non-Argument in Type Systems | 1.88 | new and sound |
| +2 | Don’t Feature Branch | Dave Farley’s Weblog | 1.82 | new and sound |
| +2 | Trunk Based Development | 1.63 | new and sound |
| +2 | TestDesiderata | 1.45 | new and sound |
| +2 | Why Crunch Mode Doesn’t Work: Six Lessons [2005] – IGDA | 1.29 | new and sound |
| +2 | Open plan offices are terrible for innovation and productivity | 0.99 | mixed |
| +2 | Open concept offices aren’t as productive as you think | Your Morning | 0.74 | mixed |
| +2 | Microservice Premium | 0.72 | mixed |
| +2 | Technical Debt Quadrant | 0.58 | mixed |
| +2 | Monolith First | 0.41 | mixed |
| +2 | Beyond Open Offices: The New Fog Creek Headquarters | 0.29 | mixed |
| +2 | Why The "10x Engineer" Is A Dangerous Myth | 0.16 | mixed |
| +1 | Laurence Tratt: Dynamically Typed Languages | 2.79 | new and sound |
| +1 | SE Radio 577: Casey Muratori on Clean Code, Horrible Performance? | 2.75 | new and sound |
| +1 | The Rationale for Continuous Delivery • Dave Farley • YOW! 2018 | 2.58 | new and sound |
| +1 | Intro to Empirical Software Engineering: What We Know We Don't Know • Hillel Wayne • GOTO 2019 | 2.50 | new and sound |
| +1 | Under Deconstruction: The State of Shopify’s Monolith - Shopify | 2.40 | new and sound |
| +1 | The Key to High Performance: What the Data Says - Dr. Nicole Forsgren | 2.26 | new and sound |
| +1 | Why Static Typing Came Back • Richard Feldman • GOTO 2022 | 1.90 | new and sound |
| +1 | A Response to “Why Most Unit Testing is Waste” | 1.88 | new and sound |
| +1 | Literature review on the benefits of static types | 1.81 | new and sound |
| +1 | Gilding the Rose: Refactoring-Driven Development - Kevlin Henney - ACCU 2023 | 1.81 | new and sound |
| +1 | Best Practices for Code Review | 1.74 | new and sound |
| +1 | Completing the Rewrite from Hell: Five Years of Technical Debt and How We Escaped - Aaron Stannard | 1.72 | new and sound |
| +1 | Code Red: the Business Impact of Code Quality | 1.68 | new and sound |
| +1 | When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020 | 1.63 | new and sound |
| +1 | Blink Estimation | 1.63 | new and sound |
| +1 | The Death of the Code Review: What the Data Actually Says — Laurie Voss, Arize AI | 1.62 | new and sound |
| +1 | Accelerate: The State of DevOps with Dr. Nicole Forsgren | 1.50 | new and sound |
| +1 | TW Hangouts | Is TDD dead? [Part III] | 1.48 | new and sound |
| +1 | DORA | Capabilities: Trunk-based development | 1.47 | new and sound |
| +1 | On Pair Programming | 1.41 | new and sound |
| +1 | Story Points Revisited | 1.38 | new and sound |
| +1 | Deconstructing the Monolith - Shopify | 1.34 | new and sound |
| +1 | Technical Neglect, Kevlin Henney | 1.31 | new and sound |
| +1 | Review: A Philosophy of Software Design by John Ousterhout | 1.31 | new and sound |
| +1 | 95%-ile isn't that good | 1.30 | new and sound |
| +1 | Clean Coders Hate What Happens to Your Code When You Use These Enterprise Programming Tricks | 1.25 | new and sound |
| +1 | GitHub - johnousterhout/aposd-vs-clean-code: A discussion between John Ousterhout and Robert Martin about differences between John's book "A Philosophy of Software Design" and Bob's book "Clean Code". | 1.25 | new and sound |
| +1 | Challenging the Myth of the 10x Programmer | 1.23 | new and sound |
| +1 | You Must Be CRAZY To Do Pair Programming | 1.21 | new and sound |
| +1 | "Pair Programming Fixed Our Pull Request Bottlenecks" | 1.15 | new and sound |
| +1 | Static vs dynamic typed languages: an intentionally rigged experiment | 1.13 | new and sound |
| +1 | Mob Programming, A Whole Team Approach - Woody Zuill | 1.09 | new and sound |
| +1 | Jim Coplien and Bob Martin Debate TDD | 1.07 | new and sound |
| +1 | DORA Metrics: We've Been Using Them Wrong | 1.05 | new and sound |
| +1 | 🚀 TDD, Where Did It All Go Wrong (Ian Cooper) | 1.02 | new and sound |
| +1 | The 10X Programmer, and other Myths | 1.01 | new and sound |
| +1 | SWETUGG 2015 - Is TDD Dead? What are the alternatives? - Emily Bache | 1.00 | new and sound |
| +1 | Revisiting Spolsky's "Things You Should Never Do, Part I" | 0.98 | mixed |
| +1 | Q&A with Vasco Duarte on the #NoEstimates Book | 0.95 | mixed |
| +1 | Clean Coder Blog | 0.93 | mixed |
| +1 | #NoEstimates (Allen Holub) | 0.93 | mixed |
| +1 | The “10x engineer:" 50 years ago and now | 0.91 | mixed |
| +1 | "Clean" Code, Horrible Performance | 0.90 | mixed |
| +1 | Pair Programming Misconceptions | 0.90 | mixed |
| +1 | The ideal PR is 50 lines long | 0.89 | mixed |
| +1 | Why Pull Requests Are a Bad Idea • Dave Farley • GOTO 2022 | 0.86 | mixed |
| +1 | Joel Spolsky, Things You Should Never Do: Rewriting the Code from Scratch | 0.85 | mixed |
| +1 | Code review is no longer the bottleneck | 0.85 | mixed |
| +1 | Story points considered harmful? 1 of 4 – Journey's start – Allan Kelly | 0.81 | mixed |
| +1 | Back to the Monolith: Why Did Amazon Dump Microservices? | Nordic APIs | | 0.80 | mixed |
| +1 | Small CLs | 0.78 | mixed |
| +1 | Overtime & Crunching in Game Development (vs others) | 0.76 | mixed |
| +1 | Agile is Dead • Pragmatic Dave Thomas • GOTO 2015 | 0.72 | mixed |
| +1 | The 10x Programmer Myth | 0.71 | mixed |
| +1 | The Majestic Monolith | 0.68 | mixed |
| +1 | The Leprechauns of Software Engineering | 0.67 | mixed |
| +1 | Maker's Schedule, Manager's Schedule | 0.58 | mixed |
| +1 | Mob Programming Basics – Mob Programming | 0.50 | mixed |
| +1 | Static vs Dynamic Typing | 0.45 | mixed |
| +1 | "Clean" Code, Horrible Performance | 0.45 | mixed |
| +1 | The 10x developer is NOT a myth | 0.43 | mixed |
| +1 | Serverless was a big mistake... says Amazon | 0.42 | mixed |
| +1 | Why you should write tests first - Uncle Bob | 0.39 | mixed |
| +1 | Uncle Bob is Ruining Software | 0.39 | mixed |
| +1 | The problem with comments - Uncle Bob | 0.39 | mixed |
| +1 | How small should a function be? - Robert C. Martin (Uncle Bob) | 0.36 | mixed |
| +1 | Things You Should Never Do, Part I | 0.35 | mixed |
| +1 | The Majestic Monolith can become The Citadel | 0.33 | mixed |
| +1 | Code Faster or Safer? Static vs Dynamic Typing | 0.28 | mixed |
| +1 | Is the 10x Engineer a Myth? | 0.21 | mixed |
| +1 | David Heinemeier Hansson: Microservices vs. Monolith | 0.15 | mixed |
| 0 | Why Story Points Are a Complete Waste of Time | 1.26 | mixed |
| 0 | TDD is dead. Long live testing. (DHH) | 0.33 | mixed |
| 0 | Software Estimation Is Hard. Do It Anyway. - Jacob Kaplan-Moss | 0.33 | mixed |
What the studies changed
Each claim first got an AI guess, then was checked against the studies. Listed: claims where a study pointed a different way. An AI guess counts for at most 50% confidence; a study at least that confident replaces it, a weaker one is shown as context. Biggest changes first.
Verdict changed by a study (17)
- Estimation is a learnable skill: recording estimates and comparing them to outcomes calibrates future estimates (said by 1)
AI guess: Leans partly right · Study: Leans wrong
Independent studies of the Personal Software Process, which records estimates and analyses deviations from actuals, found no improvement in estimation accuracy, and a feedback-and-lessons-learned programme likewise produced none versus untrained controls. (Halkjelsvik & Jørgensen 2018 (Time Predictions)) - Per-change pull request gates break down under continuous delivery with many deployments a day (said by 1)
AI guess: Leans partly right · Study: Leans wrong
More than 25,000 Google developers put about 20,000 changes a day through mandatory per-change review into one trunk, with median latency under 4 hours and developers confirming the process works well at scale; one highly tuned company, not a GitHub pull-request setup. (Sadowski et al. 2018 (Google code review)) - Relative-size estimation is more accurate than time estimates for complex or uncertain work (said by 1)
AI guess: Leans partly right · Study: Leans wrong
Few studies exist; relative estimation improved accuracy in some contexts and worsened it in others, and the authors conclude relative predictions are generally not more accurate than absolute ones and bias estimates when tasks differ much in size. (Halkjelsvik & Jørgensen 2018 (Time Predictions)) - Time spent estimating is wasted and better spent building (said by 1)
AI guess: Leans partly right · Study: Leans wrong
The review's authors reject the NoEstimates position that predictions are a waste as unrealistic, noting that extrapolating progress is itself a time prediction and that judgement-based predictions are on average fairly accurate (20-30% error). (Halkjelsvik & Jørgensen 2018 (Time Predictions)) - Software delivery speed and stability move together rather than trading off; the best teams get both. (said by 3)
AI guess: Probably partly right · Study: Leans right
Six years of survey data show speed and stability are outcomes that enable each other: cluster analysis finds elite performers do significantly better on all four metrics and low performers worse on all, rather than trading throughput for stability. (DORA State of DevOps 2019) - Test-driven development produces no better quality or productivity than other disciplined testing approaches. (said by 3)
AI guess: Probably partly right · Study: Probably right
Blind-analysis crossover replication with 21 graduate students found no difference between TDD and incremental test-last in tests written (p=1.00), external quality (p=.82) or productivity (p=.82), with negligible effect sizes, confirming the Oulu baseline experiment. (Fucci et al. 2016 (TDD replication)) - Many widely repeated software engineering facts trace back to sources that are missing, measure something else, or are methodologically flawed (said by 3)
AI guess: Very likely right · Study: Leans partly right
One documented instance: the famous 28:1 programmer variability figure is wrong (two methodological mistakes, correct value 14:1), rests on 12 subjects, was published in an obscure journal, and kept being quoted after Dickey debunked it in 1981. (Prechelt 1999 (28:1 legend)) - Organizations with high software delivery performance are more likely to meet their commercial and non-commercial goals. (said by 2)
AI guess: Leans partly right · Study: Leans right
DORA's SEM finds SDO performance predicts organisational performance on commercial and non-commercial goals, and elite performers are twice as likely to meet or exceed their organisational performance goals; both sides are self-reported in a cross-sectional survey. (DORA State of DevOps 2019) - In-editor type errors give faster feedback than running the program and tracing a crash. (said by 2)
AI guess: Leans partly right · Study: Probably right
All indicators (time, test runs, files opened, file switches) favoured the static type system on type-error tasks because the compiler names the location while a run-time failure appears far from the cause; the feedback came from a compiler in a plain text editor, not an in-editor checker, so the claim's in-editor form is an extrapolation. (Hanenberg et al. 2014 (static types)) - A surviving mutant reveals either a missing test or code that can be removed (said by 1)
AI guess: Probably right · Study: Leans partly right
A surviving mutant may be an equivalent mutant (e.g. == changed to >= with identical behaviour) rather than a missing test, and manual inspection is needed to tell; the study classified up to 35% of mutants as equivalent, so the either/or omits a third case. (Inozemtseva & Holmes 2014 (coverage)) - Industry and regulatory status do not predict whether DevOps practices improve delivery performance. (said by 1)
AI guess: Leans partly right · Study: Leans right
Controlling for industry, DORA found no evidence that industry affects SDO performance except retail (which did slightly better), including highly regulated financial services and government; organisation size over 5,000 employees did predict lower performance. (DORA State of DevOps 2019) - Lightweight change approval within the team outperforms heavyweight external change approval boards. (said by 1)
AI guess: Leans partly right · Study: Leans right
Respondents whose organisations require CAB or senior-manager approval were 2.6 times more likely to be low performers, formal approval showed no association with lower change failure rates, and a clear, lightweight change process made teams 1.8 times more likely to be elite. (DORA State of DevOps 2019) - Controlled studies find at most small effects of static typing on productivity or defect rates (said by 1)
AI guess: Probably right · Study: Leans partly right
Repeated-measures ANOVA gave significant, medium-to-large effects of language on development time in both rounds (partial eta-squared .275 and .246) with a strong task-language interaction; the exploratory measures showed 35-69 percent of variance in test runs and file switches explained by the type system in the second round, which is not a small effect, though confined to small tasks. (Hanenberg et al. 2014 (static types)) - Differences between individual programmers dwarf differences between languages in experiments (said by 1)
AI guess: Very likely right · Study: Leans partly right
Across 80 programs the within-language bad/good ratios for time, length, memory and run time were on average about as large as or larger than the between-language differences, which supports the direction but not 'dwarf', since scripts still took half the time of C/C++/Java. (Prechelt 2000 (seven languages)) - Organisational structure metrics predict defect-prone components better than code metrics (said by 1)
AI guess: Probably partly right · Study: Probably right
On 3,404 Windows Vista binaries (50M+ LOC, 50 random splits), eight organizational metrics predict failure-prone binaries with 86.2% precision and 84.0% recall versus 78.6/79.9 for churn, 79.3/66.0 for complexity, 74.4/69.9 for dependencies, 83.8/54.4 for coverage and 73.8/62.9 for pre-release bugs; single system. (Nagappan et al. 2008 (org structure)) - Low-quality code makes delivery times unpredictable, not just slower (said by 1)
AI guess: Leans partly right · Study: Leans right
The maximum Time-in-Development per file was 9x longer in Alert code than Healthy code (large effect, Cohen's d 0.96) and already 2x in Warning code, with much higher variance, which the authors read as lower predictability of task completion; correlational, single tool vendor's customer base. (Tornhill & Borg 2022 (Code Red)) - Group estimation sessions surface hidden complexity and build shared understanding of the work (said by 1)
AI guess: Leans partly right · Study: Leans right
Groups of software professionals produced higher and more realistic estimates than their prior individual ones, qualitatively because they identified more activities, and planning poker gave a shared understanding of the work and risks; student groups, by contrast, became more optimistic. (Halkjelsvik & Jørgensen 2018 (Time Predictions))
29 more where a study disagreed but was less confident, so the AI guess stands
- Writing tests slows delivery by a meaningful fraction compared with not writing them (said by 2)
AI guess: Probably partly right · Study: Leans wrong
Elite performers report far more automated testing than low performers (87% vs 57% automated unit tests, 58% vs 28% acceptance tests) while deploying 208 times more often with shorter lead times, so at the delivery level testing is associated with faster, not slower, delivery; the data are cross-sectional self-reports and do not isolate per-feature development time. (DORA State of DevOps 2019) - Pull-request review delays feedback and pushes developers to batch changes, making daily integration impossible. (said by 2)
AI guess: Leans partly right · Study: Leans wrong
Google requires pre-commit review on every change yet median review latency is under 4 hours, 70% of changes commit within 24 hours of being sent for review, and the median author lands about 3 changes a week of 24 lines, so per-change review did not prevent daily integration there. (Sadowski et al. 2018 (Google code review)) - Full line coverage is relatively easy to reach when a team is motivated (said by 1)
AI guess: Leans partly right · Study: Leans wrong
Authors call extremely high coverage very difficult to reach, and even their five actively developed Java projects with 600-8,000 test methods sit at 27-76% statement coverage; no motivated team pushing for 100% was studied. (Inozemtseva & Holmes 2014 (coverage)) - Skill mismatch within a pair matters little; every expert and novice combination produces value (said by 1)
AI guess: Leans partly right · Study: Leans wrong
Student surveys in the review found pairing difficult when there was a large skill differential, with one respondent reporting the pair was unproductive whenever the weaker member was not driving; the review repeats this as a reported limitation. (Dybå & Dingsøyr 2008 (agile review)) - Microservices cost more in the short term and rarely save money (said by 10)
AI guess: Probably right · Study: Leans partly right
Industrial sources name higher compute and network resource consumption than monoliths as the primary operational pain (network cited by 17 of 51), supporting higher running cost; no source quantifies money or distinguishes short from long term. (Soldani et al. 2018 (microservices review)) - Sustained crunch lowers productivity and employee happiness (said by 4)
AI guess: Probably right · Study: Leans partly right
122 weekly observations on WWI munitions workers: output is proportional to hours below 49 h/week, rises at a decreasing rate above it and peaks near 63 h, so output per hour falls once weeks run long; happiness was not measured and the workers were not programmers. (Pencavel 2014 (working hours)) - Long-lived branches delay integration and produce merge conflicts that grow with team size (said by 4)
AI guess: Probably right · Study: Leans partly right
DORA observes that merging patches sooner avoids rebases and that short-lived branches and small patches make everyone more productive, but it does not measure merge conflicts or how they scale with team size. (DORA State of DevOps 2019) - Pair programming provides continuous code review without adding a separate review step that slows delivery. (said by 4)
AI guess: Leans partly right · Study: Leans right
The report treats approval by a teammate during pair programming, before commit, as a valid lightweight way to implement peer review and segregation of duties, as an alternative to review before merge; this is a recommendation, not a measured comparison. (DORA State of DevOps 2019) - Reviewer defect-finding effectiveness drops sharply once a single review exceeds a few hundred lines (said by 3)
AI guess: Probably right · Study: Leans partly right
Changes approved faster than 200 lines per hour ('hastily reviewed') are associated with more post-release defects in Qt 5.1.0, and only 10% of such changes are needed before a component is expected to have a defect; this is about review rate, not a fixed lines-per-review threshold. (McIntosh et al. 2014 (review coverage)) - Open-plan offices increase noise and visual distraction that impairs focused work (said by 3)
AI guess: Probably right · Study: Leans partly right
Not measured in the study; the paper's review cites prior workplace design research finding open offices reduce focus and psychological privacy, and the discussion notes employees isolating themselves with large headphones, so support here is second-hand. (Bernstein & Turban 2018 (open offices)) - Running a CI server is not continuous integration if branches live for days or weeks (said by 2)
AI guess: Probably right · Study: Leans partly right
DORA defines impactful CI as every commit producing a build and test run, and separately defines effective trunk-based development as fewer than three active branches with lifetimes under a day; both predict continuous delivery, but branch lifetime is treated as a distinct capability rather than part of the definition of CI. (DORA State of DevOps 2019) - Summarizing a change and its risks helps a reviewer understand unfamiliar code faster. (said by 2)
AI guess: Leans partly right · Study: Leans right
Understanding the reason for a change is reviewers' main challenge; 91% of 873 developers say unfamiliar files take longer, descriptions are valued when they state what changed and why, and developers report responding better and faster when the author provides context and direction. (Bacchelli & Bird 2013 (Microsoft code review)) - Crunch does not improve product outcomes; it correlates with slightly worse ones. (said by 2)
AI guess: Probably right · Study: Leans partly right
For munitions workers in 1916, hours reductions from wartime levels would have cost little or no output, and seven-day weeks produced about 10% less output than six-day weeks at the same hours; extra hours bought nothing, but product quality and software work were not measured. (Pencavel 2014 (working hours)) - Deploying one small service limits the scope and risk of each release compared with redeploying a whole monolith (said by 1)
AI guess: Leans partly right · Study: Leans right
19 of 51 industrial sources highlight that microservices deploy and undeploy independently and 14 that live updates apply to one service without touching the others, which is the mechanism behind smaller release scope; grey literature, no measured risk data. (Soldani et al. 2018 (microservices review)) - Mutation score measures test suite quality better than coverage does (said by 1)
AI guess: Probably right · Study: Leans partly right
The study uses mutation score as its ground-truth measure of fault-detection effectiveness and finds coverage tracks it only weakly; the authors suggest mutation score as a substitute for coverage, but this is their judgment, not a head-to-head test against real faults. (Inozemtseva & Holmes 2014 (coverage)) - Technology alone does not raise performance; it must be combined with lean management and organizational culture. (said by 1)
AI guess: Leans partly right · Study: Leans right
The report's model has culture of psychological safety, a clear change process and cloud implementation (only 29% of self-described cloud users met the NIST characteristics that actually predict performance) all driving delivery performance, and tells organisations to start with automation plus clear change approval and a healthy culture. (DORA State of DevOps 2019) - A generative, high-trust, blameless organizational culture predicts software delivery and organizational performance. (said by 1)
AI guess: Leans partly right · Study: Leans right
A culture of psychological safety (measured with Google's Project Aristotle items) predicts software delivery performance, organisational performance and productivity, extending earlier years' finding that a Westrum generative culture of information flow, trust and risk-sharing predicts SDO performance. (DORA State of DevOps 2019) - Long working hours raise rates of injury, illness, cardiovascular disease and mental health problems through chronic stress. (said by 1)
AI guess: Very likely right · Study: Leans partly right
Cites contemporary studies: NLSY workers on 12+ h days or 60+ h weeks had 37% and 23% higher injury hazard, nurses on shifts over 12 h or weeks over 40 h made more errors, interns crashed more after extended shifts; injury and illness supported, cardiovascular and mental-health effects not covered, and this is secondary citation not the paper's own data. (Pencavel 2014 (working hours)) - A continuous delivery pipeline gives regulated environments end-to-end traceability as a side effect. (said by 1)
AI guess: Leans partly right · Study: Leans right
DORA argues that with version control as the source of truth, recording who approved each change makes the review-and-submit process highly auditable and satisfies segregation-of-duties requirements from PCI-DSS and NIST frameworks; reasoned from practice rather than measured. (DORA State of DevOps 2019) - A pair finishes a task faster than one person but spends more total person-hours on it (said by 1)
AI guess: Probably right · Study: Leans partly right
A survey of 122 IT employees found 73% of those who pair believe it speeds up development; this is perception only and says nothing about total person-hours. (Dybå & Dingsøyr 2008 (agile review)) - Skilled coaching beats peer or self feedback for improving at a skill (said by 1)
AI guess: Probably right · Study: Leans partly right
Review cites expertise research holding that deliberate training designed by a coach, not amount of experience, determines expertise, and that training improved estimation accuracy while experience had almost no effect; coaching is not compared with peer feedback directly. (Jørgensen 2004 (expert estimation)) - Running the automated test suite before every commit keeps trunk releasable (said by 1)
AI guess: Probably right · Study: Leans partly right
DORA states that for CI to be impactful every commit should trigger a successful build and test run, and finds CI predicts continuous delivery; whether this keeps trunk releasable is implied rather than measured. (DORA State of DevOps 2019) - Knowledge-worker productivity cannot be measured reliably, so hours-versus-output conclusions rest on analogies from other industries (said by 1)
AI guess: Probably right · Study: Leans partly right
The review shows how LOC-based productivity misleads: an apparent 337% XP productivity gain came from delivering 3.5 times more lines of code without more functionality, and other comparisons swung from +46% to -44%; this shows measurement is unreliable in practice, not that it is impossible. (Dybå & Dingsøyr 2008 (agile review)) - Splitting services too finely raises inter-service dependencies and coordination so total cost rises again rather than falling (said by 1)
AI guess: Probably right · Study: Leans partly right
17 of 51 sources report much higher network traffic because services interact by remote API calls instead of in-memory calls, and more services mean more remote invocations; this supports rising inter-service cost with finer splits but gives no total-cost curve. (Soldani et al. 2018 (microservices review)) - Pairing all day is unsustainable because sustained joint focus is exhausting (said by 1)
AI guess: Probably partly right · Study: Leans right
A case study found that working 40 hours a week in pairs requires so much concentration that developers became exhausted, and the review's synthesis repeats that several developers regard pairing as exhausting; another project drifted back to solo programming toward its end. (Dybå & Dingsøyr 2008 (agile review)) - Frequent small releases deliver more value than big-bang releases whose dates keep receding (said by 1)
AI guess: Probably right · Study: Leans partly right
Deployment frequency is one of the four metrics whose high-performer cluster is twice as likely to meet organisational goals, which supports more frequent releases delivering more value; release size and receding dates are not measured as such. (DORA State of DevOps 2019) - A passing test suite should be sufficient evidence that code is ready for production (said by 1)
AI guess: Leans partly right · Study: Leans right
DORA defines effective automated testing as giving developers confidence that a passing suite means the code can be successfully deployed, and finds such testing predicts CI and CD; this is the report's framing rather than a test of whether suites actually suffice. (DORA State of DevOps 2019) - Automatic memory management saves a large share of programmer time and removes a class of bugs (said by 1)
AI guess: Very likely right · Study: Leans partly right
Memory errors are 5.44% of bug-fix commits and are concentrated in unmanaged languages (C, C++, Objective-C) with statistical significance, but garbage-collected Java still has above-average memory errors (29% of them leaks), and programmer time is not measured; the reproduction could not repeat this bug-category analysis. (Ray et al. 2014 (languages on GitHub)) - Short-lived feature branches with pull requests preserve the benefits of trunk-based development as long as they merge within a day or so (said by 1)
AI guess: Probably partly right · Study: Leans right
DORA characterises effective trunk-based development as fewer than three active branches and branches or forks living less than a day before merging to master, so short-lived branches merged within a day count as trunk-based in its predictive model. (DORA State of DevOps 2019)