I’ve been asked several times for the “list of questions” that I ask and I’ve promised a blog post for a while, so here it is! Here are the categories that I am interested in with questions that I’ve used in the past for each. These, of course, need to be suited to the particular situation and some you may not care about. And some I will ask in an interview depending on how well I know the interviewer. Enjoy!
- Hardware
- What is the hardware setup for developers? Desktop/laptop, monitors?
- Would I be able to choose anything about my systems or is there standard hardware across the company?
- How often is hardware replaced?
- With hardware, would I be able to choose my own mouse and keyboard?
- Is it okay to bring in personal hardware?
- Software tools
- What software tools does the company provide? (Resharper, NCrunch, profiler, etc)
- Does IT have heartache over what's installed on a developer's box (other than file sharing software or other things that would eat bandwidth)?
- What source control repository do you use?
- What sort of testing environments are there?
- What test testing frameworks do you use? nUnit, xUnit, mbUnit, mSpec? Acceptance tests? Fitnesse or something similar?
- What sort of tools do you have/build/maintain around the health of your systems (to monitor, alert, etc)? Is this something the dev team works on or is there an Ops team?
- Physical environment (usually you get to see this as part of a tour at your interview, but if not for some reason)
- What type of desk and chair are provided?
- Would travel ever be a part of this position?
- Learning
- What sort of policy does the company have around budget for learning? For example book purchases, conference fees/travel, online courses.
- Company Policies
- What does the performance review process look like? What criteria are used? Are employees evaluated on an absolute scale or on a curve (with respect to their peers)?
- What does a "typical" annual raise look like? What does an extraordinary annual raise look like? What criteria determine this?
- What does the title/level system look like?
- Is there a Moonlighting Policy? For example if I write a project at home (on my own time, on my own hardware with my own tools) am I able to retain rights to that software?
- Is there a policy on contributions to open source projects, either out of something at work or on my own time? What about use of Open Source Projects?
- Dress code - is there one and if so, what is it? (and is it strictly enforced if there is one)
- Is there a policy on bereavement leave?
- Team Culture/Process
- Iteration/release cadence - What does an iteration look like (planning, retrospectives, review)? Do you have a daily standup? Who attends?
- Requirements - how are requirements expressed in the team? User Stories? Use Cases?
- How are they tracked? Is there a big visible board somewhere or is it tracked electronically (and if so, what software is used).
- Where do these requirements come from? How is the backlog generated? Are stories decomposed into tasks or is a story the unit of work?
- Estimation - Do you generate estimates and, if so, what method/process is used?
- Are you currently doing continuous integration? If so, what platform are you using to do that?
- What about continuous delivery?
- How much code is the team responsible for?
- What is the test coverage like? Is TDD used on the team?
- What percentage of the time is the team pairing? What activities does the team pair on and which do they not?
- How does this team interact with other teams in the company (if there are other teams)?
- What is the team culture around lunch? Do most people work through lunch, eat at their desk, go out alone, go out as a team, go out with other people in the company or outside the company? (I'm guessing that all of these happen occasionally, looking more for what the norm is)
- Are there any snacks/food provided by the company? Any pot luck events?
- Career Path
- Are there continued growth opportunities available without moving into management?
- Are there opportunities to move into management?
- I'm interested in knowing what you feel I would bring to the team (how I could contribute immediately and longer term), how you see me fitting on the team, what the main attributes that you see that led you to extending an offer and what things you see that I would need to work on.
There is another list that I’m starting for the team that I’d be working with. Here is what I’ve started with:
- What do you enjoy about your job? What are some of your favorite things?
- What are some of your least favorite things?
- What changes would cause you to leave? (as a fill in the blank: If ______ changed, I would leave.)
- What would another job offer that would cause you to go somewhere else (excluding money)? (as a fill in the blank: If another company had _______, I would go there.)
- What, if anything, do you miss from a previous job?
Is there anything that I should add to these lists?
Great post, Mike. Interviewing should be a two way investigation. I often get caught up thinking about how to respond that I don't usually think about the best questions to ask. These are great to bring with you so you don't look like you're pulling stuff out of thin air.
ReplyDeleteOne I would ask the team I'd be working with is, "Who are some of the last team members to leave and why did they leave?"
I don't think that all of these questions are appropriate at interview time (although there are several). For me, many should wait until there is an offer.
DeleteThe interesting thing about questions at the interview is that, in addition to finding out about the company, the company/team finds out about what you value as well.