Complexity and Simplicity
When you plan out something, a project, a process or something else, you can generally take more simple approaches or more complex approaches. There are plenty of examples where you need a complex approach, because there are very high requirements, I think of RF, semiconductor manufacturing, data intensive applications. But there are also plenty of examples where you can take a more simple approaches. Complexity or simplicity are unrelated to the quality of the result.
Sometimes we are so stuck in our ways of thinking that we don’t even consider the simple approach. For example in Germany certain public services are overengineered, but it works.
What makes something more complex or simple? Simplicity is more about directly using the first principles and building up from a lower level. Complexity is of course also build on first principles, but it is using more layers of abstraction, building on a more shaky foundation which is secured by more pillars.
Why we use complex approaches, when we could use simple approaches? Occam’s razor recommends to use the simplest approach, which incorporates all the requirements. This is generally good advice, why cook up something insane, when you can also just do it? A simple approach is not more shallow or of lesser quality, it is just more direct.
In which cases is a complex approach better? First of all, we need a complex approach, when we don’t know the simple approach. But there are also cases where a complex approach is better, because it is more flexible, innovative, tries to solve a problem in a more general way or is the standard, tried and true, approach.