Years of development experience is a poor metric

cat

A friend of mine recently brought up the idea that software developer job descriptions can be very unreasonable. They’ll have requirements of 10 years of experience in 5 different technologies, and 3 of those technologies will only have been around for 5 years! I’ve noticed this too. I noticed it a lot more in undergrad while applying for my “first real programming gig”, as even entry level positions will claim to want 2-3 years of experience in several technologies.

The problem is that years of software development experience in a particular technology is a poor metric for the quality of a developer. Even years of software development experience across all technologies is a poor metric.

It’s difficult to succinctly describe exactly why this is the case. But broadly speaking, great developers tend to have strong language-agnostic abilities. Within reason, as everyone needs some time and experience under their belt, the very best developers are great regardless of years of experience or the language they are using.

4 Things I Wish I Would Have Known When I Started My Software Development Career
By John Sonmez

I had mistakenly believed that learning a particular technology inside-out would be a good way to advance my career.

I spent too much time reading books about very specific technologies like ASP.NET or Hibernate instead of reading more books like “Code Complete,” “Clean Code,” and “Agile Principles, Patterns And Practices in C#.” (All of these books, by the way, I recommend that you read, if you haven’t already.)

While it is important to know about the technology you are using, it isn’t important to be an absolute expert in that particular technology. There isn’t much benefit to knowing the exact API call to make when you can just easily look it up when you need it.

Too many technologies that I spent a good amount of time learning about in depth, ended up either dying out or being technologies that I eventually abandoned myself. Most of the knowledge about those specific technologies ended up representing a big waste of time.

Going on about “what makes a developer great” is a thesis on its own, but I’ll cite the above as one example why years of experience in a particular technology isn’t the best metric.

Some people that hire developers understand this, here’s a snippet from a discussion on developer salaries

50 to 90. Depends on how hard core. The range is huge because I have guys with 2 years exp that can run circles around guys with 10.

If you’re hiring a developer, what should you be looking for if not years of experience? Here are my suggestions:

  • Contributions to open source, open data, startup or other no-pay “side projects”
  • A strong and diverse portfolio that includes building different types of software with different technologies
  • Participation in development community initiatives (e.g. attending or giving talks at CodeCamps, PyCons, etc.)
  • Involvement in things outside of programming (i.e. soft skill development)
  • Involvement in team or group activities, non-technical volunteer work

You can also test developers, but if you’re going to do this, test their abilities and not their knowledge. You can give them a small project to complete or hire them to complete a project on a contract basis first. You can ask language-agnostic questions during an interview instead of language or technology specific questions. You can test their ability to see things from different perspectives, and to appreciate different types of value derived from different approaches.

If I had to pick one trait to filter for, it would be self-learning, i.e. evidence that the developer actively chooses to self-learn offline and online and then applies that learning to their own side projects.

 

Kevin Browne

Editor of Software Hamilton.