- Do you use source control?
- Can you make a build in one step?
- Do you make daily builds?
- Do you have a bug database?
- Do you fix bugs before writing new code?
- Do you have an up-to-date schedule?
- Do you have a spec?
- Do programmers have quiet working conditions?
- Do you use the best tools money can buy?
- Do you have testers?
- Do new candidates write code during their interview?
- Do you do hallway usability testing?
- Does your web proxy block Stack Overflow?
- What software development methodology do you use, e.g. Waterfall, Agile, Scrum, XP?
- Is training provided for the methodology being used?
- What parts of the software development life cycle do developers do?
- What is the breakdown of a developer's day, e.g. how much time for support or troubleshooting, how much time for coding, analysing requirements, etc.?
- How long does your design, code and test cycle last? Less than thirty seconds, less than five minutes, less than ten minutes, etc.
- Do you encourage refactoring if sufficient unit tests exist?
- What test bench do you use?
- Do you have coding standards?
- Are the standards revisited or are they just left, as written, i.e. "carved in stone", in 2001?
- Do you allow time for peer reviews of code?
- Can you give me an example of a code review that is done here. Are there different levels of a review, e.g. new system is handled in a day long explanation compared to a quick bug fix that is needed ASAP.
- Does the project use continuous integration?
- (If they use continuous integration) does your software build and test cleanly right now? What's the current successful build rate?
- Does the project have regular regression testing?
- Are metrics kept for the code base? SLOC? Numbers of unit tests? Numbers of regression tests?
- How are conflicts resolved between testers and developers? I ask this because there have been times in the past where I see finger pointing of "Well, I interpreted it this way and he interpreted that," enough to make me ask how is this handled.
- How are requests for large changes to be done quickly handled? For example, someone requests a web application that would normally take 2 weeks be done in 2 days for a prospective client that could be a big account.
- Do you use a software repository? (If the answer is no, walk out).
- What is the budget for tools?
- Do you offer your developers any sort of allowance to order technical books?
- Do you have a standard template for estimating development effort for new work to make sure nothing is overlooked?
- A process for obtaining such an estimate?
- What percentage of contingency do you build in to your estimates?
- Do you allow time to revisit
- What has the team achieved so far?
- What has the team learnt?
- What aspects of the team would you like to change to improve the team?
- What's the team spirit like?
- Where do team members generally have lunch?
- Does the team go out together every now and then?
- Do you encourage team members to give presentations to improve their abilities?
- Do you do the same with writing?
- Can I please speak informally to some of the people in the team I'll be joining? (Useful to get beyond the management BS and get a feel for the real deal.)
- Does the company have a training policy?
- What were the latest courses that the company sent people on?
- Does the company have a mentoring policy?
- What kind of feedback mechanism is there for determining employee performance, e.g. how often is my work evaluated and suggestions given on where to improve?
- Is there a dress code? Do employees work a fixed set of hours?
- Is there any on-call time as part of the job?
- Do you encourage employees to set goals and provide incentives to meet those goals?
- Is self-improvement a value common to this organization?
- What's your company's Internet policy?
- What sites do you block? (I've worked at places where you can't access various good technical sites.)
- Can I work irregular hours if I need to? For example, at night, all the week's hours in 2 days?
- Can I work from home?
- Do you have any policies against employees listening music while they work?
- How much work do you expect developers do outside of the normal business day?
- What is your style of managing?
- How s/he motivates people
- How problems are handled (I leave that open-ended to see what sort of problem they assume--relating to those under them or those over them or issues unrelated to people at all, and then ask about whichever they didn't cover).
- What the company does to help develop their managment skills
- What motivates them
- How much they work (typical hours/schedule)
- What accomplishment they are most proud of (I don't specify work-related, and if they mention something besides that I ask about work as well)
- How they develop team cohesiveness and what they've been able to accomplish in that area
- What they see as the next big step for the team, for the company, and in dealing with projects or whatever the main mission of the group is
Then I ask them to answer the same kinds of questions for the company as a whole, explaining that I consider there's such a thing as a company "personality" that usually emanates from the top. I ask how that has changed over the years (if they've been there very long).
- What's your staff turnover rate?
- What's the worst project you've ever been on here?
- How long does the typical hiree at my level stay with the company?
- How are projects categorized, e.g. changes compared to a small project compared to a big project?
- What kind of management is there within the company, e.g. is the development manager also the project manager or are these separate people usually?
- Can I please see my workplace?
- And, more specifically, can I see the desk where I will be working please?
- What’s the company’s policy to downloading software? (I’ve worked at places where you can download zip so it takes a week to get the help team to download the hex editor you needed yesterday.)
- How locked down are the PC’s? (I’ve worked at companies where the PC’s are so locked down it’s almost impossible to do any work e.g. no access to command prompt.)
- Do developers have admin rights on their PC’s? (Rule of thumb – The more locked down the PC, the worse the company. The real development sites I’ve worked at give all developers admin rights. They trust and empower them with corresponding rises in productivity.)
- What software is loaded by default on a standard developer PC? For example, can I use Eclipse or am I condemned to Notepad hell).
- Can I choose my own development tools?
- What sort of equipment do you provide to your developers? For example, are all developers given a laptop to work with, do they have access to two monitors, are they allowed to order other equipment (e.g. ergonomic keyboard)?
- Why did the guy I'm replacing leave?
- How can I help you?
- What are your biggest needs right now?
- What kind of things would you want someone in this position to do?
- If you choose me, are there things I could read about your problem domain that would help me be effective on day one?
- Why the interviewer(s) work(s) there (or likes working there, or continutes to work there, etc). Their responses usually give me a good feel for the company.