On Simplicity, Complexity, and/or Bad Design

When I was first starting out in my career and I’d encounter a complicated system I couldn’t understand, I blamed my own inexperience.

Mid-career, I started to realize that, no, a lot of systems are just really poorly designed, and I was experiencing cognitive dissonance, trying to find a complex and subtle logic where there was none.

Now as I’m entering (eek) the late stages of my career, I’m experiencing those systems in a third way that I’m still trying to comprehend. It’s not specifically that they’re badly designed (though they may be). It’s that they’re necessarily convoluted because they’re trying to model an inherently convoluted human process.

No matter the skill of the developer, sometimes it’s just impossible to translate the messy, inconsistent, illogical, organically assembled, internally conflicted and occasionally politically-motivated* ways humans concoct to complete a task, into a simple, intuitive program.

Anyway… I just spent a half hour trying to make a little bit of sense of a system that had a clean and modern interface, but one that concealed an unbelievably arcane, niche-specific database model. Now my brain hurts.

*By “politically-motivated” I’m talking about internal politics within an organization, not government-level politics.