All too often we conflate the unfamiliar with the complex. Whenever we don’t understand something we immediately reach for the ‘this is complex’ label. After all we are smart people right?
However, what we really mean is: this is not in my sphere of experience or cannot easily be extrapolated from that experience. It is not familiar.
Language X is complex, tool Y is complex, technology Z is way too complex.
We don’t like to admit we don’t understand something. We really do not like uncertainty, to the point we will lie even to ourselves.
I sometimes catch myself thinking “this is complex” - and have to step back and think, why do I think it’s complex? Is it really complex or am I just missing some vital context, some background, am I just unfamiliar with the terminology.
Sure there are plenty of things that are complex. After all it is easy to build something complex, it’s extremely hard to build something simple. I admire greatly those individuals and companies that have the skill, patience and diligence to build truly simple things.
So when you are faced with something that you feel is complex, step back and think is it? Or am I just feeling that dreaded sense of unfamiliarity.
Few projects make an effort to make newcomers familiar with the context, the background and the approach - something worth considering in your next project, and if it is hard, perhaps what you have built is complex.
On this subject Rich Hickney has a great talk about simple vs easy. It’s worth a watch, I’d recommend not getting hung up on examples, after all they come from his realm of familiarity but listen to his arguments.