This problem also is known as "false dichotomy" (Greek:
διχοτομία "dividing in two") or "false dilemma".
According to yourlogicalfallacyis: You presented two alternative states as the only possibilities, when in fact more possibilities exist.
Also known as the false dilemma, this insidious tactic has the appearance of forming a logical argument, but under closer scrutiny, it becomes evident that there are more possibilities than the either/or choice that is presented. Binary, black-or-white thinking doesn't allow for the many different variables, conditions, and contexts in which there would exist more than just the two possibilities put forth. It frames the argument misleadingly and obscures rational, honest debate.
For example, the claim that "you’re either with me, or you’re against me" is a false dichotomy.
Let's talk about the false dichotomy in the context of software development.
No types don't replace tests and tests doesn't replace types. You can use both. See this article for details.
No self-documenting code doesn't mean that you can omit comments. Self-documenting is clean code with good naming, it can cover question: what and how. Comments can cover questions: what (extended explanation of business-specific terms), why (extended explanation of business-specific rules, or why we need to use this trick/hack)
Types don't replace documentation. See the previous section.
Most static type checking use dynamic type checking as well.
Do you know examples of your "favorite" false dichotomy in software development?
Photo by Rares Cimpean on Unsplash