I’ve been getting calls from major placement firms the last two weeks which surprises me since the dead zone between Thanksgiving and Christmas is normally quiet until New Years. Obviously Dice has thousands of unfilled positions but often those are reposts of the same position to make them “current.” What’s going on? Pick most of the offerings on Dice, Craig’s List, or the unsolicited emails. They have a few common styles.
- Rockstar wanted
- Expert with a long list of specific tools wanted
I agree that rockstars are great … my partner is an awesome musician and he’s great, so therefore all awesome musicians must be able to build great software. Oh, wait, that makes no sense. Correlation is not causation.
What a lot of places really want, but they don’t know how to ask for, is “Someone who knows just what Jane did” where Jane who was an excellent developer moved on. But they can’t advertise for “Jane Wanted” so they start iterating her particular skills.
For instance, they want:
At least 6+ years of experience in –
Java / J2EE
Akka powered REST based Web API
Well, that seems pretty clear. Of course, six years ago Scala was shockingly rare and Akka was created in 2009. So, next year, it will be possible for the very first person in the universe to meet the above job qualification.
But is that reasonable? It’s two languages, four libraries, and a concept.
Let’s make a similar ad in a different domain:
At least 6+ years experience in –
Ryobi temperature measuring
DeWalt Tough System Drawer Unit
Kohler Kitchen Faucets
Oh, wait … wouldn’t you want to hire a plumber or a handyman for that?
You might actually have trouble getting your bathroom or kitchen pipes fixed if you placed the advertisement above. If you advertised for a plumber with six years experience though you’d get hits.
But, wait, there’s a lot more to Java or Scala than there are to tool companies, right?
Actually, no. There’s not. Programming languages are just tools. A plumber reaches for a box-end wrench, I reach for Lisp. A plumber decides to use a Kohler faucet and I decide to use Log4J.
To be fair, languages, libraries, frameworks, all of them are just tools. I converted languages to vendors. I mean, surely there’s a huge difference between Kohler and another vendor, right? Well, sure, but fundamentally? Not really.
Well, there’s a huge difference between Oracle and MySQL right? Heh … before or after Oracle acquired MySQL?
That’s not fair. There are differences between products and companies. But from the perspective of building software, they’re not huge. If a client uses Oracle, MySQL, PostgreSQL, or noSQL (any of the many) there’s always an API to provide it questions and read back responses.
Choice of vendor is based on features, support, scalability, etc. It’s not that vendors don’t matter. It’s just not a developer issue.
Anyone who reads this and knows how to write software — do you want to be “a Java programmer” or do you want to be a “software developer”?
Don’t get me wrong, I use Java, have certs in Java, have done some wild things with Java, and continue to use Java even as a core pillar in GTS. But, I’m not a Java programmer. I’m a software developer.
Could I use Spring or Hibernate? Never had a customer ask me for them but no doubt someday one will and I’ll read their docs, build something with them, and learn them in short order.
I would expect as much from every developer in the world.
But, it would be different if someone needed to hire an advanced Lisp developer, right?
No, it wouldn’t. If you know C++ or COBOL or Perl and know how to program then you can learn Lisp or Scala or Haskell.
There are thousands of unfilled positions where anyone skilled in the craft of building software would be capable.
Those who advertise for plumbers by tool-list and those who seek work by tool-list instead of their profession will not ever hook up with each other. The gatekeepers and matching algorithms aren’t going to connect them.