DEV Community

Cover image for The Danger of a Complexity Fetish
Ben Link
Ben Link

Posted on

The Danger of a Complexity Fetish

Story Time

Let me tell you a story about a project I worked on:

We were implementing some software to manage system accounts in our environment. This software would connect to a few different places: our LDAP, a couple security/compliance reporting tools, and all of our application servers.

One of the first deliverables for our project was an architectural diagram. As I had never been responsible for creating one before, I reviewed diagrams created for other projects to get an idea for what I was supposed to do.

It... didn't go well. I found myself inside what could only be described as "Visio Vomit 🤮". I would open a diagram and it wouldn't fit on my giant monitor.... I'd zoom out to the point I could see the whole document, and none of the labels would be legible. I spent hours just trying to find out which document showed the systems I was interested in, and then tracking where all the lines and connections went took even longer.

Hours and Iterations

I spent probably 30 hours trying to draw this diagram to everyone's satisfaction. It seemed that everyone that I showed it to yet another thing depicted... some of it relevant but most of the elements I had to add were things that just showed management that yes, we had considered some factor in our design (relevant or not).

It was at this point that I coined the phrase "Complexity Fetish" that you see in today's title... as I worked my way through the approval process for this diagram, I continually ran into folks who just seemed to derive pleasure from making it more complicated than it needed to be!

My diagram went through no less than 7 iterations. It spent the aforementioned 30 hours of our project's budget, and took me the better part of a week to get done. My project's story was very simple: "hey we're using this tool to manage accounts from a given LDAP database", but it seemed I was just drawing everything in the data center as some sort of flex... "yeah, I can make a super complicated diagram"... "If you can't convince them (to approve), confuse them!"

Why, though?

Like I said, the complexity fetish appeared when I needed approvals. These approvals came primarily from architects and high-level managers.

Think about that carefully: the purpose of the diagram wasn't for good documentation (after all, we have separate engineering diagrams that show exact placement of our assets). The purpose of my diagram was communication of our project's intent to all the folks who didn't actually do the work but needed to sign off on it. And I was being coached to make it more complex than the actual story I needed to tell.

What would cause people to want the diagram to be overly complicated?

Ego

Some people celebrate complexity because it makes them feel superior. "Look at me, I made this Visio Vomit and it has no less than 2,000 different system interactions depicted, covering literally anything that you could ever dream would interact with the application."

Lack of Shared Understanding

In some cases, the diagram meant something different to the reader, depending on their role. They all thought the purpose of the diagram was slightly different, and so they expected it to have 'their thing' in it... meaning that the document then had to be everything to everyone.

Maybe just a general Lack of Understanding

Added complexity can be a symptom of someone who doesn't fully understand the system. As a result, they add in every detail and make things overly complex because they don't know what's actually important to the story and what's extra information.

This isn't just about diagrams

The Complexity Fetish can worm its way into lots of other parts of our work.

  • When we design a process that our team should follow to accomplish a task... are we keeping it in simplest form?

  • When we write code... do we add unnecessary features? Do we "gold-plate" and overengineer?

  • When we make future plans... do we have intricate roadmaps that stretch into eternity, or do we have realistically short timelines because we know that things change rapidly and we need to be flexible?

When we give in to the Complexity Fetish, we spend a lot of time and effort on things that never actually get used (or get used so infrequently as to not matter).

So what's to be done about it?

Recovering from a Complexity Fetish is difficult. It's insidious because it messes with your brain - makes you feel like you need that extra detail, or that you're doing something valuable and rewarding when you're really just overthinking everything.

If you're the one with the Complexity Fetish

Recognizing you have this problem is actually most of the battle. Once you can see that you're overcomplicating things, you can make conscious effort to simplify. Getting outside opinions on decisions, forcing yourself to reduce the number of steps, or approvals, or connections, and looking for ways to make everything smaller will help you address your tendency to lean into the complex.

If you're trapped in a group with the Complexity Fetish

If you're at the mercy of others who have a Complexity Fetish, things can be a little more challenging... especially if you don't have enough influence to challenge them when they start to overcomplicate. The ideal play is to be able to help them overcome their need for Complexity by gently nudging them to simplify, which of course only works if you can get them to listen to you and accept your nudges.

Wrapping up

Fetishizing Complexity is a natural habit for someone who's very analytical, but it is incredibly dangerous to productivity (and sanity!). Learning to recognize the symptoms can be difficult, particularly in the vein of self-diagnosis, but the benefits of simplifying are too numerous and valuable to ignore.

Top comments (0)