The other day I got a email from a recruiter. Now, I get stuff from recruiters all the time but this one stuck out a bit because it didn’t follow the standard line. I hope she doesn’t mind but I decided I wanted to answer her questions here on my blog because I think they are important.
Her main question was: “What do developers really want out of professional opportunities that they might not be getting with their current employers? To put it another way, what are the things that entice you guys?”
That’s an interesting question. What DO we want? Why do some employers have a bad rap in town while others seem to have their pick of the top developers?
First off I want to dispel one myth. The recruiter followed her question up with “My inclination is that money is a secondary factor when seeking out new grounds for professional growth”. Yes and no. Money is not the ONLY factor but it certainly is a large factor and it can easily disqualify an employer from a job search. Especially for the top talent in town who may be accustomed to a certain lifestyle. We all live in this same economy. We have families and children we want to send to college. We want to take that trip to New Zealand. We want a nice home. Money is a factor. Your job as an employer is to make sure that it’s not a negative when I’m considering you. It’s quite insulting and sad when you meet someone who thinks a beer fridge and a foosball table somehow makes up for low salaries. It doesn’t.
That said, while pay is a factor for why we might NOT take a job it’s not an indicator of why I might take a job, or stay at a job. As long as the pay is in a competitive range the other factors come to the front. So what are those factors?
1) “Self-Determination”. People want to feel like they are contributing to solutions. They want to bring value to their clients. The absolute last thing they want is to feel like some cog responsible for implementing someone else’s design. This is why top-down architecture is so detrimental to good teams. I want some amount of influence over the design, the architecture, and the tools. I want to feel like when I come to work people want me to be there because they value my contributions, opinions and the code I write. Most importantly, if something is in my way, or is inefficient, and I have a better way to solve it, I want the power to solve it. Nothing is more frustrating than being told. “Yea, we know it sucks, but we have to do it that way because [corporate policy, Joffrey the “Architect” said so, we always did it that way, derp].”
2) Customer feedback: I want to know that the work I’m doing matters. Make sure developers have the opportunity to interact with customers, even if that is part of market research or trade conferences. Ideally I want constant feedback from a product owner who works with the development staff every day and makes sure we are working on the right things.
3) A cool project with cool technologies: As developers we like cool things and cool toys. I realize sometimes you’re an insurance company and there is little you can do to make your app more exciting. That just means you need to get creative. Sorry but nobody wants to work on a legacy struts app running on Websphere.
4) XP: I can’t speak for everyone on this but I think I speak for a growing majority. I will not consider a job where XP practices are not followed and embraced. Particularly BDD/TDD and CI. I’m also cool if you’re not there yet and you want me to help you get there. Just don’t be wishy washy about it. XP is the one exception to rule #1. Everyone needs to get on board. We are professionals, act like it and take your craft seriously.