Orthogonal lines and software systems...June 2, 2023 | Development
Today I want to talk about... What? Orthogonality? Well... Not the one which you know from Mathematics. No, no.
We're still talking about Software Engineering here. To explain it... Let's look back for a second.
In Mathematics this concept describes two lines, planes, whatever, at one intersection area/point/line at a right angle. Those two objects have the special property that they meet at ONLY the intersection point and nowhere else.
The same thing applies when we talk about Orthogonality in a Software Engineering context.
It is used when two (or more) different things inside an enclosed system are decoupled from each other. This means a change in one won't affect the other one in any way.
Or in other words, in a non-orthogonal system, a change in one thing WILL affect something else. I don't have to tell you, that this is pretty bad and hard to circumvent.
So... When you're designing a system try to eliminate effects and unnecessary relations between unrelated things.
This lets you reduce security risks, increase development productivity due to less debugging, and results in better testability. (And a lot more positive side effects as well... 😉)
Try to eliminate those nasty side effects and keep that in mind.
You can do it.