Addition by Subtraction
“The entire idea of *via negativa* is that *omission* [avoidance of harm, removal of drugs, corn syrup, cigarettes, gluten, carbs (by fasting), gym instructors, tail risks, etc.] does not have side effects and branching chains of unintended consequences - hence robust. But big corporations [evil pharma, pepsi] and consultants cannot make money from removing; they only benefit from adding.” -- Nassim Nicholas Taleb
Via Negativa (Latin for “negative way”) can be used to describe a philosophy of simplification, focus, and modularization. It’s a simple concept, and one that is violated often in software engineering organizations. It’s easy to keep adding features and code to a system. It’s much harder, and emotional, to remove something that already exists.
Subtract until it hurts, then subtract some more
Removal of marginal features and code is only the start. To live Via Negativa we need to cut deep, and keep going through the pain. Realize that in this context pain is a symptom of emotional attachment, not rational value protection. We become emotionally attached to everything we build, decisions we make, and features we champion. In most situations this attachment is a valuable and needed mechanism of leadership and ownership. It is the enemy of simplification and focus; you have probably heard the term “pet project”.
In other words, living Via Negativa means shifting away from being emotionally attached to “our” projects and features. As with any philosophy it changes us over time until we become obsessed with simplicity and minimalism.
Beauty in Simplicity
It is not hard to find beauty in engineered simplicity. Let’s take Google Search as an example:
If Google were a regular company their front page might look something like this:
How many times do you think someone has suggested putting ads on www.google.com? A News feed? Weather widget? Part of Google’s brilliance, and staying power, is resisting that temptation.
Let the diffs run red.