As software engineers we often get into arguments with our colleagues about how to solve a specific problem. Usually several people come up with different ideas. When the time comes to pick one we may get into a fight between “mine and yours”, whose idea is better?
At this point the best attitude is to step back and reflect a little. Is it really “my idea vs. your idea”? Or it is “mine and/or yours”? If we remove all the feelings and the “ownership” of the ideas we may discover that sometimes the solutions may complement each other, that they may not be contradictory, or that my idea may work in some cases and yours in others.
This leads to Aristotle and his Square of Oppositions.
Aristotle said that there are four categorical propositions:
• All S is P
• No S is P
• Some S is P
• Some S is not P
The first two are absolutes: they basically say in our case that every solution we can come up with is 100% right or 100% wrong. We all know that this is almost never the case. In the context of the problem some ideas may solve more or less but none are really 100% one way or the other.
We are left with the last two: which one of the ideas, mine or yours fits the given problem and its context more appropriately? Which one addresses the risks better? It is very well possible that, changing the priorities of the inputs, one idea ends up being more appropriate. That does not make the other idea bad. It is also possible that both ideas may work but in different situations.
Instead of spending time fighting each other, Aristotle gives us a way to accommodate our ideas and set them in the proper context. This helps our shareholders and stakeholders. It is not mine vs. your, it is mine and/or yours.
Here we need to stop a little and consider something else: if we use “versus” then we use the “exclusive or”, XOR, so it is mine vs. yours but not both. If we use the OR logical operator then it could be mine, yours or both.