The “years of experience” myth

The software industry is obsessed with the notion of “years of experience in languages/frameworks/libraries” to determine the seniority of a candidate. They do not care if someone deep-dived into it and did amazing stuff in just 1 year with that technology. They just want to hear 5, 8, or 10 years of experience with that tiny part of the big and complex task that software development is.

Old man with computer.
Finally! I am a senior dev!

Some companies delegate their recruitment process to persons who do not have a clue about the technology for what they are requesting tons of experience.

This tweet from Sebastian Ramirez is a great example of that problem:

Recruiter: “I do not care if you created the thing. Not 5 years of experience, not senior!”

Who decided that 5 years is the appropriate time to master a technology? Why not 10? Imagine someone with “10 years of experience with JQuery”. What does it say about a candidate that, in an ever-changing field like software development, has focused completely on the same technology during the last 10 years?

This has nothing to do with specialization. If I were looking for an eye surgeon, I want one with lots of experience in eye surgery that combines his general knowledge with the latest advances in the field. Not someone stubbornly stuck with the same technique and technology during the last 10 years.

Dear recruiters and hiring managers, switching frameworks and libraries is not like switching from eye surgery to brain surgery. Software development is a general discipline, while programming languages, frameworks, and libraries are just interchangeable instruments that we use for specific purposes and go obsolete quickly.

Continuing with the eye surgeon example, imagine this scenario when she or he is applying for a new position: “Oh, I see you have 10 years of experience doing refractive surgery, but just 2 with the Laserotron 3000 machine”, so you could only apply for a junior eye surgeon position at our hospital. Does this make sense to you?

Of course, there is some learning curve for each new instrument when an experienced professional tries a new technology. But there are also a huge amount of transversal skills in the discipline. With software development, you do not forget about version control, design patterns, agile methodologies, data structures, algorithms, databases, or programming paradigms just because you switched libraries.

So, what is the alternative? I suggest letting the candidates evaluate themselves regarding to their seniority. There are persons with decades of experience unmotivated, repeating poor practices time after time, and not willing to go outside their comfort zone. And there are also persons with just a few years of experience in some language or library, but with good theoretical foundations, valuable general experience in the field, hunger for learning, and curious enough to not stick to the same framework just to increase a meaningless number in their CV.

Also, if you feel like a senior developer, I suggest you present yourself as one and do not let people without knowledge of the field determine your value as a developer by the number of years you used one of the many instruments we software engineers have at our disposal to create amazing stuff.