The Value of Experience

I was reading a blog post by my colleague Doug Finke in reference to a “programmer competency matrix” by Sijin Joseph. I took a look at the matrix and it seemed like a set of pretty reasonable benchmarks for a programmer’s growth. My only reservation with the chart was that they claim that you need a certain number of years experience under your belt to be a certain grade of programmer. Here’s Sijin’s criteria:

  • Level 0: 1 year
  • Level 1: 2-5 years
  • Level 2: 6-9 years
  • Level 3: 10+ years

To be perfectly honest, I find the entire idea reprehensible. According to this matrix, nobody could be considered an “expert” programmer in C#, since the language has only been around since 2001. I’m not breaking the news to Anders. Ok, maybe that’s a bit of a “gotcha” exception, but I think the entire idea can’t hold water. The problem with the assertion is that it assumes that all years are equal in quality. There’s no comparison between a year in a challenging company on the cutting edge of your technology field working with the leaders in industry and a year making small changes to an enterprise CMS. No offense to the latter group, but it’s just the ugly truth.

What really bothers me is that this kind of fallacy isn’t limited to a few people, but, as I’m sure we all know, almost every employer has some kind of experience requirement in strict years. In fact, one employer I was looking at after graduation actually wanted candidates to have experience with C# since day 1, according to the advertisement. We, as an industry, have got to dispel the myth of causation (and even really correlation) between years experience and skill in development. Basing our recruitment standards on this primitive metric only encourages age-warfare, not unlike a number of discussions I’ve seen on Slashdot, with the younger programmers calling older ones “set in their ways,” and the older programmers calling younger guys “re-creators of the wheel in their inexperience.” It’s got to stop. We have to gather together and celebrate knowledge in our field and, in turn, work to better everyone in our technical community.

This is what I think makes Lab49 recruitment so effective: we don’t predicate someone’s candidacy on experience. Don’t have a degree in computer science or software engineering? Doesn’t matter. Don’t have ten years experience in software? So what? What matters is that you are skilled in your technology, be it C#, Flex, Java, or C++, and you’re someone who works well on a team. When you think about it, this is just good business. Who cares about someone’s pedigree? We’re in the business of creating effective software solutions, not showing off our employees’ education and past merits.

I think moving beyond simply removing the years experience criterion, résumés are becoming more and more deprecated. It’s not because people don’t have significant accomplishments that are noteworthy, but rather that people use ambiguous language, and even outright lies on their résumés in a desperate attempt to be hired for a job for which they’re not qualified, and for every gem in a stack of résumés, there’s a lot of rocks. This is where the community steps in. People involved in their local technology meet ups and people involved in online communities like StackOverflow show their skill on a regular basis, and it’s much harder to BS someone, especially if they start asking questions.

Over the next few years I suspect we’ll start seeing a paradigm shift in the way employers find talent. I won’t prognosticate that StackOverflow and its careers division will be the future, but I’m willing to be it’s going to have a hand in it, at least. The change in talent-hunting strategy, I think, is just one facet of a larger shift in our industry towards building communities. It’s already underway, so all we have to do now is embrace the change and jump in.