Accidental complexity and our unconscious biases
Photo by DeepMind on Unsplash (https://unsplash.com/photos/X5CSjHTjlgw)

Accidental complexity and our unconscious biases

In the wake of the Twitter saga, there's a been a lot of talk about accidental complexity in architecture. There is some truth in it. In large parts, this frenzy for complexity was fuelled by the bull run in Tech in the last 10 years and our obsession with "scale". Perhaps it's our industry's best kept secret but the truth is that there were strong incentives for Tech teams to build architectures that were often way too complicated.

The seminal paper on software complexity - No Silver Bullet - Essence and Accidents of Software Engineering distinguishes between Essential vs Accidental complexity, the former a product of the inherent problem that the software is trying to solve; and the latter which is induced because of choices we make in the solutions.

Even for the well meaning engineers, accidental complexity can often creep into software due to unconscious cognitive biases at play. This has been studied for long and here's two papers discussing this in more academic language - Cognitive biases as project & program complexity enhancers and Cognitive Biases in Software Engineering: A Systematic Mapping Study

In this article, I share my own version of the biases I have most often observed. I don't offer a remedy for these but perhaps just a reflection on how these biases impact our decision making.

Vanity bias: This bias is caused because showing off your skills is perversely incentivized in some tech communities and orgs. In a world of low attention span, it becomes a proxy for true knowledge, skills and relevance. This causes an inclination to build complex architectures that create an asymmetry of knowledge and make one look smarter than our peers and stand out in a crowd.

Fomo (Fear of missing out) bias: Caused by the fear that one is missing out on the latest trends in technology; or that one will become obsolete. This creates an unconscious bias towards selecting trendy architectures/technologies just to remain relevant. Also known as resume-driven-development.

Not-invented-here bias: This one's caused by a fear or distrust of anything that's not built in-house. This bias encourages reinventing the wheel because one believes that the existing solutions won't scale, aren't secure or won't meet their specific needs and they must build everything from scratch.

Not-invented-there bias: Caused when one puts blind trust in an architecture/solution/process just because someone well-known and respected (for ex. a large company or a thought-leader) vouches for it.

Loss-aversion bias: Related to Not-Invented-There, this bias stems from a fear of taking any kind of risks and sticking to the tried and tested. Engineers with this bias try to maintain status-quo and refuse to question their deeply held beliefs about system design or architecture.

10x-engineer-from-Google bias: No offence to Google but often a team hires someone from a high-profile, top-tier company and the rest of the team is rather afraid to challenge their authority, leading to an architecture that's not reviewed/vetted by the team.

Boredom bias: Tech work can very often be drab, boring and mundane. To overcome the boredom of the same-old-same-old, one is sometimes inclined to pick the latest, shiniest new toy - a cool new language/framework or a more complicated architecture.

Wishful-thinking bias: This bias is driven by an over-estimation or optimism of how the system would potentially grow and the need to accommodate all the possible features in the design and architecture.

Simplicity bias: Similar to Not-invented-here, this is a bias towards building something because the MVP is relatively easier (or more convenient) to build. Although well intentioned, this bias causes teams to underestimate the inherent complexity. This leads to complicated structures over time. Also known as "Hold my beer.." effect.

There are, of course, plenty of other cognitive biases that affect our decision making. After all, human beings are irrational decision makers. In my experience, the best way to mitigate these biases is to start by acknowledging them and creating a feedback loop both within and outside the team to catch these biases from creeping in.

Chris J. Benevich

Visiting Scholar, NSF LCCF TACC UT?? | AI Engineer Intern | Ethical AI & Successful AI | AI Performer?? SXSW, Amazon, NBC, TEDx, TXI @ UT | AI Author ?? BLACKOUT | AI Podcaster #RevelInYourData ? ??

2 年

Rahul Jain, I'm fascinated by cognitive biases and have posted many times about ways to mitigate it, one of which is diverse teams. I love how you put the cognitive biases not only in your own words but in consultant-speak ??

Nikita (Nick) Granin

Customer Success Lead

2 年

Great article, Rahul! From my own experience, any bias is based on our belief system. The belief system is based on our past experiences. Thus, besides having a feedback loop, it's also important to reflect on your past experience. Eventually, reflection leads to the transformation of your belief system, and a bias is dissolved.

Bujar Bakiu

Managing Director at Data Max

2 年

Oh, this article hit hard. Definitely been there in one situation or another.

要查看或添加评论,请登录

Rahul Jain的更多文章

  • Why learn Empathy

    Why learn Empathy

    At Beat, all employees participate in a bi-monthly Enrichment Day - a no meetings day on which we take a break from…

    1 条评论
  • Team Calibration

    Team Calibration

    We have multiple data teams at Beat, working across the spectrum of data lifecycle. An interesting fallout of this…

    2 条评论
  • Custom sessionization of user activity

    Custom sessionization of user activity

    User session is an arbitrary measure of user activity on your app/web. As this excellent post (https://counting.

    1 条评论
  • Engineering Management vs Coaching

    Engineering Management vs Coaching

    The Engineering Manager (EM) role is rather broadly defined, the definition varying from one place to the other. If you…

    6 条评论
  • Data Guild

    Data Guild

    I am very excited about leading a "Data Guild" at Omio as a means to create an Analytics culture and democratize…

    4 条评论

社区洞察

其他会员也浏览了