Usually these are words used as synonymous, when in fact they are orthogonal between them.
When we are talking about “complicated”, we are explaining something about linearity. Something is “simple” or “complicated”. What does this mean? Let’s see an example:
Something “simple”: understanding how a bicycle works. I think we don’t need to a genius for this, you analyze the “simple” engine and after some minutes (hopefully seconds) you’ve figured it out!
Something “complicated”: How a clockwork works. If you try to analyze it, you will have to think and analyze the mechanics for a long time, write a lot, until you figure out how the watch works, and how all those components fit together to give you an “accurate” time. It’s a task that’s its possible, takes some time, but you can analyze it linearly until you find the solution that explains it 100%.
Click image below to follow to a site explaining how this works!
The image should be perceived has trying to show a complex system, but its not, it’s just very complicated, but with a 100% detailed explanation how the engine works!
So, we have Simple and Complicate, as 2 grades of linearity.
How about “Complex”?
When we say “Complex”, we are talking about behavior, not linearity. We can take several degrees of behavior but let’s analyze 3 very understandable:
“Predictable”: Something that we can predict, we could not understand it totally, but we know how it responds: For Instance: I jump, and gravity pushes me down again. Do I understand gravity? Something in school…. but…. its invisible and pushes me down! 😉
Complex: Something that we can somehow predict but sometimes arises some unexpected behavior. For instance: Social interactions in a small company, home, software projects with several components in different tiers. Or Poker, a game with rules, but not predictable.
Chaotic: Like complex systems, but with plenty unexpected behavior factors. For instance: Events in a big city. weather sometimes is complex and sometimes chaotic.
So, I hope in the future when someone use the word complex knows that’s its different from complicated. Saying complicated means I just need tools and time to figure it out, and complex I could have tools and time and take my whole life and not discover or even completely predict the system.
Hopefully in future posts dive deeper on this subject. It’s a very popular one in software team leading.