What Don’t You Know?

What Don’t You Know?

The Known Unknowns

As software developers, we inevitably encounter knowledge gaps – areas where we are certifiably clueless. Perhaps we’ve never worked with databases, so we recognise terms like “schema” and “queries” as complete unknowns we’d need to study.

These are the “known unknowns” – subjects we can identify as unfamiliar terrain, even if we can’t articulate precisely what lies in that territory. While frustrating, known unknowns at least make the gaps in our understanding visible.

The Invisible Unknowns

Far more insidious is the state we call metacluelessness – being unaware of unknown domains altogether. These are the invisible “unknown unknowns” – entire domains of knowledge and skill whose existence we fail to even comprehend.

For us developers, metacluelessness blinds us to whole realms of critical concepts and practices. We may be experts in shipping web apps, but oblivious to vital DevOps disciplines like infrastructure-as-code, monitoring, or chaos engineering. Or talented backend coders who have never conceived of cutting-edge frontend paradigms like WebAssembly or Jamstack. And then there’s the whole raft of invisibles related to the way the work works – not necessarily an issue for micromanaged developers, but for self-managing teams, crucial.

These aren’t just knowledge gaps – they’re unknowns we don’t know exist. Unfathomable blind spots preventing us from recognising what we’re missing.

The Illusion of Mastery

Metacluelessness is pernicious because it breeds complacency and over-confidence in our ranks. When we’re unaware of the boundaries of our mastery, it’s easy to succumb to arrogance about our depth of experience.

Without recognising our blind spots, we assume comprehensive expertise simply because we’ve never glimpsed the unknown territories. This false mastery mindset leaves us closed-off to growth, unable to even ask the questions that would identify new areas for development.

Shattering the Illusion

The antidote to our metacluelessness is shattering the illusion that our knowledge has no limits. It’s the humble admission that our expertise, however vast, is circumscribed by invisible domains we cannot fathom.

This isn’t easy – it requires us to continually question the limits of our understanding. To surround ourselves with new perspectives and domains. To listen for obscure terminology that hints at whole schools of thought we’ve never apprehended.

Only by identifying the realities of our metacluelessness can we begin addressing it. Grappling with unknown unknowns, if only to clarify what they are, not comprehend them fully. It’s an endless process of mapping the boundaries of our ignorance.

The Never-Ending Terrain

For us developers, pushing past metacluelessness is an infinite game. The leading edges of the intersection of software, work and business are so vast and emergent, there will always be new blind spots blocking our peripheral vision.

As we shed light on one enclave of metacluelessness, it reveals dozens more shadows where blind spots reside. It’s a perpetual cycle of overcoming the limitations of our expertise, only to uncover new frontiers of ignorance.

But embracing this cycle, and the inherent metacluelessness that comes with being human, is the path to true mastery. We cannot eliminate blind spots entirely, but we can develop the self-awareness to recognise their existence – and the curiosity and humility to keep exploring.

Leave a comment