The rusty developer

The rusty developer

When I was younger I was - and being honest, I still am - madly in love with Futurama, an American animated sci-fi sitcom created by the crazy creative mind of Matt Groening, the father of The Simpsons. The whole series is completely based on the oddities of a future world where aliens, robots and humans live together, space travel is a completely normal thing and people can end their own life using a suicide booth. In this crazy world we find Philip J. Fry, a pizza delivery guy who falls into a cryogenic pod on January 1st, 2000 and reawakens 1000 years later, in a New York completely transformed during the last millennium.
Fry is a great character but the guy in the series who immediately took my heart is, by far, Bender: a robot that takes his name from his main task, since he has been created to, well, bend things with his strong robotic arms.
Bender, as many characters created by Matt Groening, is irreverent, politically incorrect, always inappropriate and would do everything he can to take advantage of people around him, including his best friend Fry. Bender is a non apologetic anti-hero who proudly present himself as terrible role model and, let's say that, that's why we love him.
Other then being a terrible huma... hm, robot, Bender deals with a plethora of bad habits and addictions like smoking, gambling, stealing, using (electrical) drugs and, of course, drinking. Ingurgitating a huge amount of alcohol is, indeed, required by his robotic body and, since he uses this substance as a lubricant, he gets rusty around his mouth when he's not drunk.

Bender, completely wasted after a night of non drinking
Bender, completely wasted after a night of non drinking

Working as a senior manager and a coach I often meet folks who want to grow above their current level; those people are usually good software engineers who reached the senior level within a couple of years showing strong technical skills and start asking themself how the next career step might look like.
A couple of weeks ago, during a coaching session, I asked the other person the reason why they where not considering a transition into management or a horizontal shift into a more product-focused role, and the answer I got was:

I think I would enjoy being a manager but I know that I will code less and I'll be less hands-on; I'm really scared of getting rusty.

Once I heard those words I put aside my professional mask (mainly due to the long and great coaching relationship I have with this person) and I couldn't help but cracking a loud laugh, thinking about a software engineer acting like Bender, after spending a couple of weeks without coding.
It was the end of our session so we postponed the talk about this concern but the idea of "getting rusty" stuck with me for the whole evening until I realized that this concern keeps a lot of brilliant folks away from a potentially fulfilling and rewarding career.
Looking at ourselves and noticing that we are slowly getting rusty at something might be a painful realization, so let's try to analyze this fear describing the context where it takes place and trying to provide a rational approach to the issue.

The context

The tech field is strongly driven by the technical abilities of the individuals. The idea of the technical guru able to enter the zone and code an incredibly complicated algorithm is adored by the media and, if you don't believe in what I'm saying, just watch movies like Matrix, Independence Day, The Social Network or any other movies where the ultra smart antisocial hacker saves the team thanks to their incredible technical abilities.
Unfortunately, this narrative is all over the tech scene nowadays, starting from the interview process, where people are put on a stage and given random problems to show how high their IQ is in front of a white board, to the technical skills assessment, strongly considered during a calibration round. No matter if the majority of managers are not able to understand and evaluate those skills and, most of the time, the promotion process ends up being a bias party, being technical, or at least being perceived so, helps immensely in this field.
Now, don't get me wrong, having a technical background is extremely helpful when it comes to work in the tech field because it gives you a first hand perspective on the challenges that individual contributors are facing, this is undeniable. Leading and growing engineers is objectively easier for people who have been engineers themself and this reasoning applies pretty much to every fields. The issue that I'm trying to underline is that the level of nonsense reached in tech is doing anything but good to the scene and creating a lot of useless anxiety fed with impostor syndrome.
The consequence is that, every activity that will make you look and feel sub-optimal from a technical standpoint, tends to be considered a bad deal.

The importance of the rose

Learning to code and acquiring technical skills is hard and takes a lot of time. Getting a degree in Computer Science is not a walk in the park, learning to code requires time, practice and repetition and the amount of hours people spend on Leetcode building Hanoi Towers to crack a code interview is unbelievable.

The Fox and the Little Prince
The Fox and the Little Prince

Let's be honest, once we invest a big portion of our life getting better at something, it's hard of us to let it go; exactly like we indulge in front of a slice of chocolate cake once we spent the whole year working hard to see (and show) the shape of our six pack.
As Antoine de Sint-Exupéry wrote in his masterpiece, "The Little Prince":

It is the time you have wasted on your rose that makes your rose so important

Other than that, we keep telling ourselves that "if you are the smartest person in the room, then you are in the wrong room" or "be brave enough to suck at something new" and, honestly, this narrative is easy to follow in case you want to improve yourself and adopt a learning mindset. Unfortunately, the reality is quite different and being at the top is alluring; once you worked so hard to climb up the throne it's quite painful to step down and go back to be the average Joe (or Jane) who is learning something new.
As you can see, getting rusty is frightening because it changes the perception that we have about ourselves and forces us to question something we gave a lot of importance to, like the choices we made throughout our entire career.

3,4-dihydroxyphenethylamine

Dopamine (or, if you wanna sound cool, 3,4-dihydroxyphenethylamine) is a neurotransmitter that plays a key role in regulating mood, reward, motivation, and pleasure, as well as influencing movement and various cognitive functions.
This wonderful molecule is released in our brain in many cases. Living a rewarding experience, such as doing sport, having sex, eating chocolate, smoking a cigarette or getting a notification from our favorite social network are all activities that give us a Dopamine rush.  The anticipation of a reward can also trigger the release of Dopamine, as Gotthold Ephraim Lessing perfectly explained in his most famous quote:

The wait of pleasure is itself a pleasure

This molecule is also released when we make new experiences or learn new information while solving a problem and, last but not least, Dopamine might also be released during a stressful situation, especially when the problem that was making us stressed is successfully solved.
Now, all the software engineers reading this article can make a connection between the events that trigger a Dopamine release and the different aspects of computer programming. In case you cannot figure out what I'm talking about, let me ask a couple of questions taken from real life scenarios.
How do you feel when you are coding a feature and, ticket after ticket, you see it taking form? How do you feel when you are doing Test Driven Development and, iteration after iteration, you see your tests becoming green? How do you feel when you learn a new way to use a software library and you close 38 tabs opened in your browser after spending three days hunting down a bug? How do you feel when your merge request is finally approved and you can push the result of your hard work to production and finally start your weekend? How often have you thought "I just need to make a quick refactoring, change a couple variable names and I'm done" just to found yourself rewriting the whole functionality?
Yes, coding is somehow addictive and creates this sense of flow, exactly like social networks do, or cigarettes, or salty chips or chocolate or gummy bears or all the guilty pleasures that have this "just one more" element that makes us stick with them.
In my experience I realized that the individual contributors who struggle the most jumping into a different role are those whom spent years, even decades, coding. It's hard to break the Dopamine circle when it has been the fuel of your career for so much time; and the more time you spend in the zone, the harder it gets to move out, just like every addiction.

The logic

Emotions, feelings and chemistry have been the main topics of the previous sections, let's try to bring some logic to the table to steam down a bit and show that, getting rusty is not only natural but, to some extent, even advisable in case we are trying to grow.
Let's start with a story from my teenage years.
When I was fifteen I picked up a guitar and started learning chords, since I fell completely in love with Marilyn Manson and I wanted to walk the rock-star path. The first thing that my wise dad did was to buy  a cheap classical guitar and send me to take classic music lessons since, according to him, I was supposed to "learn the basics".
Against all odds, and despite my profound love for distortion, I fell in love with this gentle, ethereal and elegant kind of music and, even if my passion for satanic heavy metal didn't fade, I found myself greedily studying Paganini, Bach, Segovia, Villalobos, Brower and a lot of other classical guitar authors. It took a couple of years to get my first cold shower realizing that, other than moving my fingers quite well I could do nothing that a real musician was supposed to do: I could not read a music sheet properly, I knew nothing about harmony or rhythm and I was not able to play with other folks. In other words, all I could do was practice for hours, learning how to move my fingers faster and faster. I was basically becoming an athlete, not a musician.
At this point, my music teacher sat me down and candidly told me that, in order to grow and become a more solid player, I should have practiced guitar technique less and focus more on things I left behind; this was undoubtedly a bitter pill, but I decided to swallow it for the sake of achieving my musical goals.
I can still vividly remember my sense of guilt when I realized that it took longer to learn new licks or to grow in speed because I was spending less hours practicing in front of a metronome. I clearly remember the sense of guilt that I felt when I had to waste two hours practicing sight reading or harmony instead improving a music piece through brute force practice; no matter if I became able to play in an ensemble, to read music, to prepare a solfège conservatory exam and to improvise over a chord progression; for years I felt guilty for not investing that time practicing exclusively guitar technique.
I felt guilty because I got rustier while studying something else, even if, doing so, I would have achieved my goal of becoming a better musician. Looking back in time it sounds absolutely hilarious but this unpleasing feeling is still something I remember quite well.
Now, let's think about it for a moment from a logical point of view. We all have a limited amount of time in our day and learning a new skill will necessarily take some of this time. From a realistic and rational stand point, it is simply impossible to learn something new without sacrificing a slice of your time; time that was previously invested in something else. Like it or not, this reasoning applies to everything we want to learn during the course of our life.
Accepting the reality in a rational and stoic way is part of the growth process we are talking about, and looking at the matter from this point of view might really help you out making peace with your inner self.
Another truth that we need to accept is that we, as developers, are not hired to code, we are not hired to refactor, we are not hired to write elegant algorithms; we are hired to solve problems. Many problems might be solved with a software we create, others with the definition of the right process, other with the implementation of a different communication flow and so on.
Coding is only one tool that we have in the problem solver box, like a hammer or a screw driver. The issue with having and practicing only one tool is that we start using it for everything; after all, if we only have a hammer, everything starts looking like a nail.
The last drop of bitter medicine that we must swallow is about the complexity of coding and the change of the perception about it.
I know that we, as developers, like to think about us like sorcerers who shape reality from the top of a tower, writing arcane words surrounded by books while talking with other folks of our species in a language that common human beings can barely understand. The reality is quite different tho, and during the last ten years the complexity of writing a software application decreased dramatically, to the point that the whole tech industry is trying to get rid of developers with no-code platforms or AI tools since our job is starting to be perceived like an expensive - and easily automatable - commodity. Studying computer science used to be a big thing once, but nowadays a degree is not even needed to work for a tech firm and a lot of folks are able to get a software engineering job after completing a boothcamp.
It's hard to admit it but the era of Linus Torvalds, Kevin Mitnick, Grace Hopper or Richard Stallman is coming to an end; let's rip the band-aid off, being able to write software doesn't make us special anymore. We are not the super smart kids who typed fast on a keyboard and were the grandma go-to person when the television needed to be re-synchronized.  
That said, I can only close this article asking you (and myself) a question: considering how the tech scene is evolving and where the world is going isn't it worth to let the old rust, in order to make something new shine?

Conclusion

In Italy we have a say that goes like:

Chi lascia la vecchia via per quella nuova, sa quello che lascia ma non sa quello che trova

The English version, sounds more or less like: "If you leave the old road for the new one, you know what you have left but not what you'll get" (I also almost rimed, how cool is that!?).
In this article we focused on the reasons that block individual contributors from becoming a manager - or, in general, from growing into something new - trying to analyze the context and the mental blockers that we might need to overcome to make this jump and start walking the new road.
It's always important to remember that embracing a new role is not a decision that fits everybody (as I previously wrote in this article) but, if you find yourself being conflicted about this choice, I really hope this article might help you out.

Until we meet again!

Show Comments