Cover image by wilsan u on Unsplash
I first read about the notion of a mature developer in the blog post On Being a Senior Engineer by John Allspaw, way back in 2012. A lifetime in the tech industry, but this simple idea has stuck with me and hasn’t been bettered.
The thrust of this post is that being a mature engineer (or developer) should be valued much more highly than being a senior engineer.
You should really take the time to read that post—I’m not going to try to repeat it here as it’s long and detailed and worth reading multiple times.
What follows is just some random, less relevant information from my own life.
I’m uncomfortable with any talk about “junior” and “senior”
I dislike these terms so much that I often stop people when they mention them and then talk to them about why they are so problematic.
Today I had a constructive conversation with a person who asked me for career advice. They were labelling themselves as “junior” because they had less than 2 years of full-time experience as a programmer. And yet they also had 10 years of a career in another field before learning to code. All that experience is relevant to coding. Team dynamics, office politics, professional development skills, and so on.
For this person, their lack of expertise was only a lack of technical expertise. And that is actually a good thing, because technical skills are fairly straightforward to grow from novice to experienced. Tools like build-your-own-x are wonderful resources for that.
It’s the “soft skills” that are actually hard skills. How to learn them is not at all clear.
Bootcamp grads often excel at this immediately
When I worked as a post-grad coach for the Makers bootcamp in London I was continually surprised how good these people were with just 12 weeks of training.
A specific example is giving and receiving feedback. These bootcamp grads had been pairing and mobbing since the first day on the course, and had no experience of working alone. Instead they had learned to help each other succeed. To coach each other, to support each other, to really be a team.
Giving constructive feedback is just a natural part of that.
I regularly see so-called senior developers struggle with feedback. And it holds them back.
Bootcamp grads are so good with feedback that they often accelerate technically because they are so thirsty to improve. Whereas those who block out feedback don’t accelerate, they just stagnate.
This post isn’t really about bootcamp grads. It’s just a rant that our industry still seems stuck on this distinction of junior/senior. I wish it wasn’t. I want to work with relaxed, respectful people with a willingness to build awesome stuff together.