Attracting the right Agile software developers
A lot of software development job candidates will claim to have Agile skills, but are they just throwing around buzzwords? In this tip, consultant Catherine Powell will help you find the qualified candidates who live out the values and practices of Agile in their daily work. Read more for ideas of how to attract Agile candidates and ensure those you hire will fit well on your Agile team.
There are many more people with the word "Agile" on their resumes than there are people who will work effectively in an Agile environment. So how do we separate the talkers from the doers? How do we attract truly Agile people?
Identify Agile characteristics
To attract Agile people, you first need to decide what defines the Agile person for your organization. What are the characteristics that make someone successful in your Agile organization?
Leave aside technical qualifications and concentrate on Agile skills for the moment. Define five or six bullet points about what makes the Agile people at your organization special, and be as specific as possible. "Flexible" is too vague. "Willing to switch focuses every week" is more specific.
For example, this is the list I used the last time I hired an Agile developer:
A successful Agile employee will:
- Expect to break tasks into chunks of no more than one to two days, even for large overall goals
- Ask for and give help
- Embrace a variety of tasks, including development, testing, documentation and mentoring
- Be comfortable showing and explaining the work he is doing
- Have used spike development techniques
Before the interview
When you do have a job opening, you'll get many resumes with Agile buzzwords. This does not mean the candidate will be successful in your organization. Instead, look past the buzzwords for evidence that the candidate has the specific characteristics you have defined. Look for descriptions and examples where the candidate has demonstrated mentorship and teamwork, for example.
Consider questions like this:
- Tell me about your development approach on a large feature you built.
- Describe a time when you worked closely with another member of your team and how you did it.
- Tell me about the work you do when you're not writing code.
You're not explicitly asking about the Agile characteristics that you care about. Rather, you are inviting them to describe how they work, and their answers will help you understand whether their Agile characteristics match the ones you are looking for.
The candidate may take time to solve the problem or might even be wrong, but habits and approaches will be apparent very quickly. Agile habits similar to your team's Agile habit are a very strong predictor of success.
Catherine Powell, SSQ Contributor
In the interview
Assuming the candidate passes the phone screen and comes in for an interview, then there are additional interview techniques that are available. In many ways, it's easy for the candidate to say something; it's a lot harder to actually do it. Use the interview to see the actions, and not just the words.
In the interview, do activities that reveal the Agile characteristics you're seeking. This is a "show me, don't tell me" opportunity. The overall theme is getting the candidate to do something rather than just talk about it. Expose your Agile techniques and invite the candidate to participate; truly Agile candidates will participate successfully, and buzzword-only candidates will fail.
The following exercises draw out some Agile characteristics; use the ones that apply to your team:
- Pair work: Ask the candidate to solve a technical problem while working with one of your engineers. Make sure neither of them knows the answer and let them work together. The pair engineer will walk away with a very clear idea of whether he wants to continue working with this candidate or not. Do not use the hiring manager as a pair here; use a peer.
- Demo something: Ask the candidate to do a problem before the interview -- a piece of code or a design -- and then in the interview, ask him to demonstrate it. Ask questions just like you would in an internal demo and see how the candidate reacts.
- Estimate a big task: Give the candidate a large task that he would have an idea how to complete (e.g., ask a Web developer to build a clone of a major website). Ask him how he would approach the task, including how he would break it down and at what points he would want to make it available to customers.
- Power outage: Put a task board in the interview room with mock content. Tell the candidate that you're terribly sorry but that the building has suffered a power outage and there will be no coding or other computer work for the rest of the day. Ask him what he'll be doing with the rest of his day, if he's on this team. See if the candidate understands there is more to his job than coding and what other tasks he chooses to focus on.
In all these exercises, the important outcome is not completion, but that the candidate is comfortable and embraces the Agile characteristics you're showing. The candidate may take time to solve the problem or might even be wrong, but habits and approaches will be apparent very quickly. Agile habits similar to your team's Agile habit are a very strong predictor of success.
Attracting Agile people hinges on separating those who have read about Agile from those who have actually done it. Define what you're looking for in Agile, and get candidates to do things to show off those characteristics before you make a hiring decision.
How corporate changes are redefining the app developer role