After three years as an independent (and fifteen more with a day job), I’ve noticed a few trends. Among them: I’d say that a minority of the people actively looking are demonstrably capable of the work. It’s not that there is a ‘shortage’; it is that many good people are not actively looking.
Imagine this scenario: Hiring managers want above average people, HR pegs salaries to market averages, while 3rd parties, who claim to offer a service are actually arbitraging the market, trying to buy labor cheap and sell expensive. Temp agencies, contract houses, companies that do to temp-to-hire and outsourcers are all trying to profit from the billable workers. At the same time, the companies are under intense pressure to get good people who can “hit the ground running” and are available “right now.” Say the steps above are the recipe for a cake. When you try to bake it, what do you expect will happen?
Available, “Hit the Ground Running”, and Cheap: Pick two.
I’m sorry, industry, that is not okay.
The reality for employees is that five years from now, there will be a new magical payment processor, a new ORM, and a half-dozen new frameworks. We don’t need exact requirements: we need people that can learn.
Sadly, that is about half of people in the job market, perhaps less.
“Hit The Ground Running”
Over the past twenty years I have heard of a few environments where this was really needed: generally an organization looking to open a new office or hire a new capability they did not already have. The first BI analyst, the first data warehouse programmer, and the first DBA might need to start a discipline; that makes sense. Most of the rest of time, I am sad to say, “hit the ground running” is code for:
* The organization is not collaborative
* Thinks of work in terms of “your work” and “my work”
* Assigns people different work
* And does not reward them for working together.
My friends, it should not be so.
An Actual Good Environment
When I first went independent I spent a year in Northern Indiana, working with a team that came close to 100% pair programming. Because they were pairing, a new hire could work alongside someone more senior. On any given assignment they could work on the newbies computer until they got stuck, often due to a permissions issue — at which point they could file a ticket and move on to the other user’s machine until the ticket was resolved.
The result was that the two programmers were close to 100% effective. No waiting for permissions. No getting stuck on a new framework, and being afraid to ask for help, and instead googling for a work-around. When the pair needed a break, they’d get a cup of coffee or take a walk, and talk about the work. The very need for socialization was built into the work, so they stayed productive. Comparing 100% to the 40% effective a programmer might be working alone, and we realize that the pair could be faster than two people working separately.
That same company could suddenly hire anyone who knew an object-oriented language with curly braces and could think, breaking the iron triangle.
You might not be into pairing on the work, and that’s okay.
My point today is that if you need people who are hitting the ground running, you might be solving the wrong problem.
Instead of trying to find a needle in a haystack, ask why they need to hit the ground running. Solve that problem – the needing-the-perfect-person problem, and the rest will take care of itself.