A set of questions I use during the occasional times I have to run an interview to hire engineers inside an agile team.
Questions to send upfront
- Please provide your definition of Agile. What does Agile mean to you ?
- If you had to choose only one agile practice for a team to adopt, what would it be and why ?
- What do you want to learn next year ?
- When did you last work in a team ? What was it like ? What was your role ? What was the job that had to be done ?
- Have you already worked in a remote team ? How was it like ? How did you communicate with fellow team members in other regions ? Was this an agile team ? How did you communicate about progression ? How did you do retrospectives ?
Tell us about a recent book, article or blog post you’ve read that affected your work ? What did you like about it ? What were the key take away ?
Or send a list of books we think are recommended and ask which ones he has read. During the interview we can deep dive into the ideas of the book. If he hasn’t read them, are there any of them that made him curious and interested to read and why ?
- What is better: manual or automated tests ? ** the answer should be it depends: manual exploratory tests are ok, manual regression tests not, these should be automated
Presenting the team.
- How can we help ? (get into the candidate’s expectations: about the interview, the team, the company) You will be happy at the end of the interview if … ? (check for the candidate’s expectations and gives us the ability to continue with our own expectations, what are we looking for)
- Tell us something about yourself ?
- Your CV is more than 2 pages long. What would be the 3 highlights you would like someone to take away from reading it ?
- Tell me something about you’ve read recently that affected your work ? If they don’t read anything, the follow up question is how does the candidate learn.
- What have you learned recently ?
- What attracted you to our company/team ?
- Tell me about a project that went really bad. And what have you learned about it ?
- Tell me about a complex project/experience you are really proud of.
- Tell me about the time when you had an idea that was really great but other people in your team did not agree and did not implement it
Why should we hire you?
This is a very direct question. For some introverts it helps to bring them out and to allow them to be very clear about what they like about themselves. If you see it’s too direct, the next question might be a way to tone it down.
- If we contact your colleagues, why would they recommend us to hire you? This formulation aims to avoid some of the “prepared” answers. It also helps getting more honest answers.
- What value would you add to the team ?
- How would you interact with the team ? (this is important for roles who are not inside the team, or remote workers)
- When do you feel appreciated in your work ?
- Are you more a Starter or a Finisher ? (This is a question to check if people know themselves. We need both starters and finishers in a team. Both are good)
- Who might you call your (professional) role model ?
- What are some of the first steps you have taken when you joined your last team? Will you do the same for the next team ? / What did you learn?
- What is better an open office or having a personal office ? Why ?
- How do you see your role? What do you consider part of your job, and what not?
- Why do we need a … (fill in the job title this interview is about) ?
- What would be your perfect job if you could find it tomorrow ?
- What do you expect from your manager?
- What do you expect from your team mates ?
- What is your favourite work tool? Why is it your favourite ?
- What was your previous favourite tool? Why did is it no longer your favourite tool ?
- What is your favourite way of teaching someone something you know very well?
- How do you know when your work is done ?
- Where does analysis stop ? How do you prove that what is delivered does what it has to do? How do you tackle this ?
- Have you ever launched a product? What did you learn from it?
- Tell me about a team you worked on where things went well.
- Tell me about a team you worked on where things could have gone better. What have you learned from it ?
STARE model: use it to let the candidate talk about past jobs.
- Situation: Tell me about this job. What was the situation here ?
- Task: What was your responsibility here ?
- Action: What did you do specifically here ?
- Result: What was the result ?
- Evaluation: What did you learn/what would you do differently next time/how do you feel about this result ?
The purpose of the questions is to find out how the candidate learns. In our fast changing industry it is more important that a good candidate is able to ‘'’learn fast’'’than knowing certain technologies.
What books have you read, conferences did you went to, podcasts to you listen to, articles have you read or trainings have you attended.
What have you learned recently and would like to share?
- What tools do you know / have you used?
- What tools or techniques have you introduced in your previous roles?
- How would you explain ‘self organisation’?
- What tools should we not use and why?
- What book about your role should every person in your role have read?
- What have you read recently that will help you in the role and what have you learned from it?
- What is the last conference you went to?
- What is the last training you followed?
- What is the best training you ever followed?
- Have you ever spoken at a conference? What was the topic?
- How do you keep yourself up-to-date? some candidates think it’s the sole responsibility of the company, others think it’s their own responsibility to keep learning. Neither are wrong or better, yet it’s very important to see that this is inline with what the company culture is.
- What is the last book you read? the topic is on purpose very broad, it’s up to the candidate to talk about a technical or non technical book. There is no right or wrong choice, both give an interesting conversation that show a different part of the candidate.
- Who are some people in your field that you follow? Who are your role models?
Joris Buijle broad me this one to my attention.
- Give an example of how you brought fun to one of the previous teams you worked in.
As already said, it is less important to know a certain technology, than to learn fast.
A person that was able to know the dark secrets of (fill in your favourite development language), will probably be faster able to master another language. When candidates have mastered something else at very high level (outside of IT), that also tell you something important about the candidate. (We have a former Olympic medal winner in the Belgian IT, she is someone that you would probably want on your team.)
- When you read somebody else’s code, how do you know if it is good code or not?
What is good code to you?
Both of these questions should result in qualities such as readable, testable, short methods. These can be used to start talking about clean code, design, etc.
- What is your favourite programming language and why?
- Which of the programming languages you know (use specifics from resume) do you prefer, and why?
- What are some key things a [xxx] developer needs to know?
- Who did you learn the most from as a developer, and what were some of the things you learned from that person?
When doing the interview with a team, it is important to agree upfront on a signal when you know enough, i.e. :
- a closing message that signals to our colleagues that for the person asking this question, she has enough information about the candidate
use a predetermined non-verbal signal: everyone brings pads of paper and pens to the meeting. When we set our pens down crosswise and sat back, the interviewers know we were done with the meeting.
- What is the question we did not ask that you wished we had?
- Is there anything that you would like to share about yourself with us?
- Are you still interested in the job?
I sometimes ask them how if, now they know more about hte job and the company, it still is what they were expecting and how the job itself measures up against other jobs. If I’m pretty sure that the job we’re offering isn’t a true fit with the candidates desires, I’ll ask them upfront what type of other jobs they are in the running for. Often there’ll be one that fits with what I would define as their talents and I will let them know to try and get that job, since it is clear to me that is the path that gives them the most energy.
– Mieke van Alphen, Community Tips for hiring great people
Use of CoderPad to replace Skype, WebEx, for live remote coding sessions.
Exercises you can use to assess programming capabilities:
- Roy Osherove String Calculator kata
- Refactoring kata:
- Dave Thomas kata’s
- Kata-Log for more kata ideas
- Project Euler aimed at mathematical programming problems
Closing the Interview
Explain the follow up steps.
Make sure that all interviewers have time to debrief immediately after the review.
Have a standard feedback form that allows interviewers to rank the candidates against each other so we can refer back on our decisions.
I get the candidate safely out of the building, then the interviewers go and confer in the cafe area. We decide if we should proceed with the candidate, and why. If there are things that bothered us, we talk about them and decide if those are sufficient reason to not proceed with hiring the candidate. Generally these discussions are unanimous on the “Go/No go” decision.
– Alison Hawke, Community Tips on hiring great people