Ex falso, quodlibet
“Ex falso, quodlibet” means, literally, “from falsehood, anything is permitted”. It describes a phenomenon in logic that allows one to conclude anything at all if a falsehood is accepted as a given or an axiom. It says that if we do flawless work on top of bad ideas, we get nowhere.
In software, this manifests as a sort of cascading or multiplicative failure: incorrect diagnoses lead to guess-work treatments that do more harm than good. The result is process churn that gives a feeling of control, or complexity introduction that gives a feeling of understanding. ‘First, do no harm’ is not the mantra of the software industry. Perhaps, ‘first, try scrum’
Software is notorious for being late, slow, and expensive to maintain. I believe the root cause is failure to properly attribute problems to their true causes, and instead instituting practices that make us feel productive and in control. Examples include:
- a change of architecture to address a feeling of mounting complexity (microservices)
- adding process, handoffs, bureaucracy, and more roles to plug deficits of competence and craft (which puts us at odds with Conway’s Law, leading to greater problems)
- writing piles of tests that cost more to maintain than they are worth. These test suites usually add friction, reducing iteration speed
- attempting a rewrite to solve everything, and tearing down Chesterton’s Fence in the process
The solution is to make measured, inexorable progress, have an education and work from first principles, seek quality and correctness over fast results, and to focus on perfecting your process rather than trying to micromanage near-term outcomes. Have a little faith that good leads to good.