Reg Braithwaite’s (hypothetical) resignation letter makes it perfectly clear why companies demanding to pre-screen applicant Facebook accounts is a terrible and potentially self-destructive idea. Aside from the very real problems he mentions in his letter, there’s also the fact that if you are even tempted to do this, you need to grow up.
The perfect job description serves two purposes. It attracts the kind of people you would hope to hire, and almost as importantly, it discourages the sorts of people you don’t want to hire. Going through big piles of resumes is not fun. Job ads that extoll the virtues of your workplace without laying out any of the potential drawbacks may attract lots of resumes, but it’s almost certain that 90% of them will be from people you don’t want to screen, much less hire.
This ad for an investigative reporter from the Sarasota Herald-Tribune is a masterpiece of the form. Some number of people are going to be incredibly enthused by the ad, but a lot of people would read it and know instantly that they are not interested in or cut out for the job. I guarantee it saves them a lot of time.
I remember once interviewing someone about whom I had real doubts. I wasn’t sure what questions to ask to confirm my suspicions, so instead I just tried to scare them away by telling them that it was a small company and that people who couldn’t do the job would be exposed. Anyway, I was outvoted, the person was hired, and they didn’t last six months. Maybe we should have written a more honest job description.
I’m often thinking about what qualities make for a good software developer. One attribute that I think may be important is the capacity to keep the details of a large system in your head. What I mean is, the ability when someone brings up a new feature, to quickly know exactly how it should be implement in the context of the existing system. Or, to be able to recall where the code is in the system that performs some function that needs to be added to some other part of the system. These days, between search tools and the code navigation capabilities built into the better development tools, there are lots of ways to find things in a large body of code, but I think that having a mental map of a system remains valuable. I also think that having this ability may signify the presence other valuable traits that a developer should possess. After all, it’s not fundamentally different from having a good working knowledge of the Java collections framework or the popular Ruby gems or the massive number of PHP string functions.
Two questions for Friday afternoon:
Not buying nice computers for software developers is a mistake. I put this so bluntly because I think it’s an easy mistake to make if you don’t really understand developers. I’m not going to make an argument based on the productivity gains to be had through the use of more powerful computers and bigger monitors. Those are good reasons to make sure people have the tools that make them most effective, but the reasoning behind making sure developers have nice computers goes beyond that.
First of all, it should be noted that many developers are computer enthusiasts. The developers you most want to hire fall into this category. They know the difference between the laptops Dell sells for $600 and the Lenovo ThinkPads that sell for $2,000. They can tell the difference between the nice 20″ LCD monitor and the crappy one. And in most cases, they care about those differences. So when they get a hand me down laptop or a new computer that’s substandard when they start a job, most developers find it a little disheartening. They know they could have something better, and in many cases they do have something better sitting at home on their desk. Ideally, when you’re looking to save money, it should be in an area where people won’t notice. When it comes to their tools, people notice.
The second point is that providing developers with top of the line tools lets them know that the company takes their work seriously. It almost doesn’t matter what someone gets paid — if they are given substandard equipment, it makes them feel like the company doesn’t really value their work, probably because whoever is making the decision doesn’t understand their work. Going all out on equipment is a strong signal to prospective employees that you have a clue.
And third, it’s not that expensive. Software developers tend to be pretty well compensated, and when you add on the amount of money it costs to provide benefits, a work space, and everything else, the difference between a cheap computer and a nice computer is really small. The most expensive laptop in the Apple Store is $2,500. The cheapest is $1,000.
To make my point, I’m collecting job ads that promise nice computer hardware to developers. Here’s a job posting from Tumblr:
You’ll get to work in a nice office in New York City on a Mac Pro with giant monitors on something you actually care about that’s used by well over a million people.
And here’s what Mint.com offers:
Engineers get their own top-of-the-line laptop with 4GB RAM and a docking station, and flat LCD monitor for their desk. Built-in unlimited mobile broadband is a company-sponsored option. Having the right tools is important.
I worry more about equipment purchases as someone who’s gone out and hired developers than as an end user. Finding good developers is really, really difficult, and companies should give themselves every advantage that they can. Having an equipment policy you can brag about is a tangible advantage, and I’m always amazed when companies forgo that advantage.
This job posting led me to a thought — are people getting jobs based solely on their Github profile? If not, how long will it be before people do find jobs that way?
Maybe it’ll take a Github profile and a blog. If you know what someone has written about their work over a long period of time, and you know what kind of code they’re producing, what else is left? Interviewing for team fit, perhaps, but such a record certainly takes a lot of guesswork it seems.
The Presidential campaign this year has me thinking about the topic of experience. The Democrats have nominated the relatively inexperienced Barack Obama for President, and now John McCain has selected the even more inexperienced Sarah Palin as his running mate. It has me thinking about how I evaluate experience.
The approach is the same regardless of whether I’m deciding who to vote for in an election or which programmers to bring in for interviews based on their responses to a Craigslist ad. I see experience as a relatively primitive criteria for making decisions.
If I am looking at two programmers, and the only thing I know about them is that one has ten years of experience and the other has only one year of experience, my initial assumption will be that the more experienced programmer will be more capable when they start the job. Nobody competent would stop their evaluation at that point. Generally speaking, I read the résumés, Google them to see if they blog and to see what kind of things they’ve posted to online forums, and if they seem promising, bring them in for an interview.
What I really want to see in a programmer is desire, curiosity, intelligence, talent, and knowledge, probably in that order. Experience doesn’t tell me a whole lot about any of those qualities, what it mainly demonstrates is that they haven’t given up.
The nice things about political campaigns is that the media exposure given to candidates enables us to judge them by criteria beyond their level of experience. We learn how they’ve used their time in office, what they did before they entered politics, how they respond to the pressure of the campaign, and their knowledge and insights into the issues of the day. (Or at least what their political sense tells them to say they think about the issues of the day.)
Right now people are talking about Sarah Palin’s level of experience because we don’t know a whole lot more about her. But by November 4, we’ll have seen enough of her to be able to make judgements based on other, better criteria. Sadly we’ll have to listen to people on all sides prattle on about experience as though it’s highly indicative of something the whole time.
Duke professor Vivek Wadhwa has research that shows that there’s no shortage of IT skills on the job market, in spite of the assertions of executives and analysts. Some other researchers agree:
“No one who has come to the question with an open mind has been able to find any objective data suggesting general ‘shortages’ of scientists and engineers,” said Dr. Michael Teitelbaum, vice president of the Alfred P. Sloan Foundation, in testimony to Congress last fall. “The RAND Corporation has conducted several studies of this subject; its conclusions go further than my summary above, saying that not only could they not find any evidence of shortages, but that instead the evidence is more suggestive of surpluses.”
Dr. Ron Hira agrees there is no shortage of skilled IT workers. In his capacity as a professor of public policy at the Rochester Institute of Technology, a fellow at the Economic Policy Institute and co-author of the book Outsourcing America, he has pored through Bureau of Labor Statistics data and university graduation rates and found that the United States has consistently graduated more than enough computer scientists and engineers to fill the IT jobs available in the country. Similarly, there he has seen no in unemployment rates to indicate any kind of IT worker shortage
The researchers do have a point in saying that wages don’t appear to reflect a shortage:
“It doesn’t add up,” Wadhwa said. “We live in a free economy. If we were sitting in a government controlled economy it would be one thing, but in a free economy what happens is that when shortages begin to develop is that prices rise and the money compensates for the shortage.”
On the other hand, what I’ll say based on personal experience is that it is very difficult to find competent software developers. I have had the opportunity to participate in the hiring of a number of developers over the years, and it has never been easy to hire developers that I actually want to work with. In 2003, when I had a hard time finding a job and when a lot of people were out of work, it took a very long time to find a solid Java developer to join the team where I worked. We went through at least 100 applicants and interviewed 10 or 20 people before we found someone qualified to do the work — straightforward Java Web application development.
It hasn’t gotten any easier. So I’m not sure what to think about these kinds of articles. The market is complex, but from where I sit, there’s an acute shortage of really solid programmers. I’d say the same for software testers and systems administrators as well. There are a lot of people out there who claim to be able to do those jobs, and who have experience in those fields, but they’re not actually any good at what they do.
We live in this sort of bizarre world where the market looks very inefficient from up close. Salaries seem to indicate that there’s no shortage of talent, but at the same time it’s very difficult to find and hire talented people. Salaries do not tend to vary greatly based on talent, either. Theoretically the most talented programmers are working at companies with stock options that are increasing in value, but I’d be shocked to find that the best developers at Google or Apple make much more money than the worst developers, given equivalent experience. Maybe the academics need to do more research.
© rc3.org. Powered by WordPress using the DePo Skinny Theme.