To 10x-engineer or not, that is the question
Every now and again my Twitter blows up with tweets about 10x developers. I usually don’t engage because I find the topic way more complex than I can fit in (even extended) Twitter limits. But now - ha! - now I have a blog. What better way to make some immediate enemies? ;)
I first came across the concept of 10x-developer (or engineer) ages ago; back when, I think, it didn’t immediately invoke a hate reaction from a lot of people. When I first heard it, I knew quite a lot of developers I immensely appreciated and respected (still to this day some of them are my friends). When I first heard the term, I immediately thought of them. Incredibly talented and experienced folks, hugely dedicated to writing good code, to solving the right problem, in the right way - but also super friendly and helpful and respectful people. To me, “10x developer” term always brought to mind these qualities, and these people.
So to hear that now 10x developers are considered “something that doesn’t exist”, or almost an insult? I don’t know. I just don’t buy into this hate. Doesn’t it all depend on your definition of what a 10x developer is?
I mean… Do we truly want to say that all developers are equal? Did you truly never work with someone that was a terrible developer - either from technical/delivery perspective, creating chaos whatever they touched, or being a terrible human, or (the worst case) - both? Why do we have interviews when we hire? Is it not because we do implicitly admit that no, developers are not identical machines coming from a factory, some are better, some are worse, and most definitely some are better or worse for specific project/task at hand?
And if we admit that there are bad developers out there, if we admit that there are people we would never, ever want to work with again - doesn’t that lead to: there are people we would love to work with again? Are there any people that were so amazing, that you could easily imagine taking them into your team instead of 2 or 3 others?
And, in extreme case, can you not think of a single person (A) that you would much rather have on your team than 10 “instances” of a certain (terrible) person B? Does this not make person A a 10x B developer?
I feel that the backlash comes against the concept that churning out 10X code / features somehow makes someone a better developer by and of itself. To some people, developers with great technical skills can get away with being a terrible person. If it’s in this case that they are called a 10X developer, just because they are very smart, a lot of us (myself included!) do not feel comfortable with that.
However, I’m just not sure if fighting the concept of 10X developers is necessarily the best way to achieve the goal - which, I think, should be to make sure that we appreciate not only somebody’s technical skills, but also a whole lot of other characteristics, such as being kind and helpful and being able to make other people grow in their careers (and loads of other things). I feel that reacting with backlash at the 10X developer idea implies that there are no better and worse developers, everybody is equal - and this is not something I agree with.
What I’d much rather see is redefining, reclaiming of the term 10X developer. I’d prefer it clearly meant not just somebody’s technical ability, but a whole set of other things. I’d love it, for example, to include ability to help other people grow. As in: your X factor is composed of Y in your own technical skills + Z of how much other folks in your team learnt in your presence. Or: your X number is your personal output multiplied by how much output of other people increased thanks to your help. If we had a good definition of 10X developer, we could all try and aspire to become one - based on a sane set of goals and truly valuable characteristics.
So, if we were to reclaim the 10X developer - what would your definition be?