Writing

Feed Software, technology, sysadmin war stories, and more.

Tuesday, January 22, 2013

Programmer distillation

I think everyone deserves a job if they want one. Maybe this is just me channeling one of those '90s movies about a guy who stood in for the president, but I really do think there is something to this. The "you must be totally awesome in all things or you can just get out of my face" model of hiring in the valley seems to be in direct opposition to this sort of ideal.

One of the things which inspired this idea for me was learning about how various petroleum products are made. There's this whole process of distillation which basically takes the goopy crude oil stuff and turns it into useful products. Different parts of the process yield different things: gas (the usually-invisible stuff, that is), gasoline (petrol), kerosene, diesel oil, fuel oil, and so on down the line. There's even stuff like asphalt way down in there.

Wikipedia has a great graphic image showing the general concept. The point is that you can take a mixed product and get out a whole bunch of useful things. You don't just take one grade of product and toss out everything else.

Let's turn around and apply this to the process of hiring programmers. Is it that much of a stretch to say that every applicant might not be able to create every kind of output? I mean, I can personally rig up some mean plumbing which makes big systems go, but expecting me to create the graphical user interface for the next big cell phone would be a waste of my resources. There are other people who are to those interfaces as I am to plumbing and they would be a far better match.

The field is just too big for anyone to be infinitely deep in all of it. For any given part of tech, there are many nooks and crannies which will become the domain of an expert and the bane of a novice. You can't expect everyone to become an expert in everything. That's just silly.

I worry about monocultures when it comes time to hire someone new. Let's say a company is trying to make the best X they can, and all of their current employees they have working on X also possess trait Y. It's not actually directly related to X, but they might not realize that. They figure that just because we all have Y and are all good at X, testing for Y might be an easy way to find others!

For them, so far, trait Y and ability at making X seems correlated. Then, one day, they find someone who is actually able to get X done, but they can't tell that. They totally miss out on that because they're actually testing for Y. This person is totally not-Y. They are in fact the most anti-Y person you can imagine. They manage to accomplish X some other way that the interviewers totally miss.

Because they were actually testing for the wrong thing, they pass over this person and hire the next one who provably possesses trait Y. The monoculture strengthens, and the likelihood of them hiring a not-Y (but actually good at X) person becomes even smaller.

So what's the connection with my petroleum analogy here? Let's say your project is to move people around using a four-wheeled contraption. It has an engine inside which burns petroleum products and ultimately turns the wheels. That is your thing X: moving people around in a four-wheeled vehicle.

Up to this point, they've been hiring people who have trait Y, which in the analogy is that they come out of the refining process as gasoline/petrol. You can run a car engine on that stuff, so they can accomplish their goal. It moves down the highway by burning that stuff.

Our rejected candidate didn't come out of the refining process as petrol. Instead, they represent diesel fuel. It's also capable of moving stuff around. Just look at all of the Mercedes and VWs and pickup trucks, semis, trains, and everything else out there. It doesn't "burn" quite the same way, but from 30,000 feet it all looks the same: liquid stuff goes in, stuff happens inside, vehicle moves forward.

If you're really trying to get people moving down the road, having some diversity in terms of how you do it might be a good idea. There might be some traits of diesel which work out better than the alternatives at times. Or, hey, you might find out that a whole class of candidates represent natural gas, and building your vehicles around that instead would get you hefty tax credits and save the company millions of dollars. Whatever.

All of this is just to say that someone from another level of the "distillation process" of life might be just as capable at accomplishing the actual goal. You just have to select for that explicitly.

I should mention that this sort of thing applies to post-hire life inside a company, too. Let's say you've managed to hire a mix of people somehow, but all of your offsite functions and other "extracurriculars" are geared for "gasoline/petrol" people, you know, the stuff which requires a spark plug. Those individuals who are more like "diesel" won't be too pleased in such an environment, and may in fact feel out of place. They might even put off great sooty clouds of smoke if you put them in the wrong environment too often.

Take care of your people... and your cars.