Let me start by posing a question to all of you other groups looking for PHP developers right now – should we just settle?
Sure, I’d love for that perfect candidate to come walking through the door, shiny resume in had that fits close to what we need (no, I’m not naive enough to think they’ll be perfect). We could sit there in the interview and he or she could give all the right answers in all the right places. The choice would be easy and, with a few shaking of hands, the deal would be sealed.
If that’s your impression of hiring a developer, you’re in for a serious kick in the shins by the software development industry. Right now (and it seems especially right now) finding good developers is even harder than the needle in the haystack trick. I’d go so far as to say that, for the parameters that most companies can afford, there’s almost no good, skilled developers out there – the real problem there being that pesky S-word.
If you’re not at all concerned about code quality or serious development, by all means hire the next interviewee that walks through your door. Don’t check his criteria, don’t look at his experience and by no means ask him any questions about how many years he’s been developing PHP. Now, a skilled developer, on the other hand, is something that should be sought after and held onto as long as possible. They’re the ones that will think about the structure of the code they’re writing and continuously look for ways to improve the application. As I explained it to a coworker of mine:
“You want a developer, not a hobbyist.”
I’m not saying that kids fresh out of school (or whatever) are to be discounted because they don’t have much development experience. I will say to be careful with them, though. As anyone that’s worked in development can tell you, there’s just that “something” you can see in the eyes of a developer when they talk about the technology they work with.
So, back to my dilemma – how to find a good developer in a wasteland of good talent. After a few interviews with widely varying candidates, I’ve been getting a bit more discouraged, but I just have to keep reminding myself of a few things:
- Don’t be too picky (except on the important stuff)
- No matter what the resume makes you think, don’t assume
- Remember your roots, assess them based on theirs
- Don’t settle.
Yes, I know I’m sort of answering my own question, but that doesn’t stop me from asking it. You go through enough applicants and your have to start wondering…
It has been suggested here and there that skilled/good developers know their own market value as well and will commonly not have to apply for jobs through the usual channels. I imagine a lot of them will be working through telecommuting as well.
I do all my hobbyist development in PHP and it’s my preferred language, but unfortunately Java pays better, so that’s where I stay employed.
I think the problem is “can afford” in paragraph three. Most companies want to hire someone for sub-teacher wages and the chances of finding a quality, experienced programmer at that price as slim.
@joseph a sad but true fact of any development language community (even some of the “dead” languages). Junior developers are easy – find one you like that’s willing to learn. Hopefully they’ll turn into a mid-range developer with a great skillset. If you can keep them on after that, you’re usually good. The hard part comes when you don’t have a junior/mid-range developer to look to and need to fill that senior spot. And, of course, the only really qualified people are those jr/mid level developers hungering for something more. And you’re right – people want as much something as they can get for nothing. Sadly, they don’t realize that they usually get what they pay for.
I came from the printing industry, which has more of a journeyman/trades model when it comes to professions. It’s almost universal there that you hire people to LEARN the work, not to actually DO the work. That comes with time. Then you work like hell to keep the environment pleasant enough to keep them once they have the skills. If your work is close enough to the front to be noticed by the public, you’re pretty much an alpha dog in the kennel. It’s easy in print/photo work because there are clearly delineated skills and tasks that are “entry-level” – masking, knocking out backgrounds, base (non-high fidelity) color work, minimal retouching and such. In coding, everybody is practically on the front lines, and everyone’s skills (or the lack thereof) affects everyone else’s work. There really aren’t many “entry-level” tasks because practically everything is critical to your online success and/or security, and there’s just not enough time or money to use the print world’s practices of rigorous proofing of all subordinates’ work.
I’m a fan of posting a test with the job advert – if you pass the test, send us your resume and the test result.
It covers off the basic skills we want in the job, the people who tend to complete it are those who *like* solving puzzles, the people who do it best are those who are already sold on test driven development (a sign of being a senior programmer), and it’s actually a fairly good indication of the kind of work you’ll be doing.
This cuts out 95% of the crap. From there, I tend to use an interview to determine questions like:
* We’re going to mercilessly pick on you for everything. Tell us how you deal with conflict (tell a story of when someone corrected you, and how you felt/dealt with it)
* What do you do for *fun* involving programming? (points for open source, points for solving problems you have in your life, etc)
* What do you do for fun which has nothing to do with programming (points for things which involve communication, etc)
I think that in this matter very important role has the banal luck. Undoubtedly, on the labor market there IS someone whom you need and you just need to be enough lucky to find him.
And personally I would rely on internal, emotional experience talking to the applicants. What man he is, and whether you can work with him is much more important than the confidence that he meets every single point in your questionnaire.