I'm a Software Engineer in Nottingham.

Enthusiastic about engineering culture, Product Thinking and building high-quality services that make a difference. Rebellious artist, climber, skateboarder and urbanist.

← Back

Developers: Stepping into Competence Identity

Something I often hear and have experienced as the prevailing attitude in teams, particularly from Seniors, is this odd tendency to identify in jest as incompetent.

It’s celebrated very often, but not in what feels like an authentic way; more to caveat one’s contribution with the subtext that our work is ‘sold as seen, no refunds, I’m actually an imposter.’

I got to thinking about this after The Prime Time’s video on this topic: Seniors, and dev culture at large Celebrating Incompetence.

It does a disservice to the realities of being a Senior and the growth we legitimately work toward throughout our career, and that ‘being competent’ (whatever this means) was never the reality, or the destination we should expect. Being ‘Senior’ will not inherently bestow complete mastery.

The fact is, a software engineering career is characterised by an endless pursuit of incrementally becoming less-wrong; the journey is not supposed to culminate in knowing everything intuitively or even feeling like we have accounted for everything and have reached certainty. To think it is, or wil be, is more the mark of the expert beginner who might believe this to be destination; and will shortly become disapointed, and so discouraged.

We must then, to even allow ourselves to make an impact and fulfill our responsibility to other developers, identify with and embody our competence.

Recognise. At some point, we have been entrusted with the Senior title. Done the hardest parts; translating semantics into syntax, learned technical fundamentals, and switched focus to whole-team health, enablement, and developed commercial and technical communication skills.

So, are we about to claim incompetence just because we still need to rely on Stack Overflow for looking up minutiae of what we know we need to implement?

This is not a failing; it’s how we reserve space in our working memory for things that matter when we enouncter the cognitive load of our environment, and the priority for what needs to be held in-state is more about our work in relation to others', business value, and less about the technical implementation.

The feeling of not knowing everything is just part of the journey we're on', rather than being some personal shortcoming and it’s not helpful to promote an expectation of lifelong incompetence to newer developers.

Newer developers should instead expect to reach a critical level of competence, and much sooner than one might think starting out, and so be similarly impactful; with confidence in their solutions, recommendations, and in time communication with the business at a higher level.

I'd go one further; it’s necessary as an effective, professional developer to step into trusting oneself; to untrap and make bold, impactful decisions and communicate confidently to other devs and on behalf of Engineering priorities to the business.

We’ve worked on customer-facing and business-critical software, paid the table-stakes.

We know what we are doing insofar as our roles have allowed us and we should feel able to identify as empowered developers to those looking to us for assurance and empowerment in their early career.

So let’s do away with this damaging ‘I don’t know what I’m doing’ identification and the disempowerment it promotes, and step into our responsibility as Developers to work with what we have developed through no small effort. Realise the value of our experience and skills so far, and simply work with humility, inevitable mistakes, but seek and take on board feedback, and confidently make the impact we are already best able to do, such that we inspire others to do the same.

.