The must-ask question for your software engineering interview

If you’re interviewing for a software engineering position, there are plenty of articles and books out there to help you get ready to answer questions from your prospective employer. There are far fewer resources to help you learn which questions you should ask if you’re the one being interviewed. Having interviewed hundreds of software engineering candidates over the years, I can tell you that the questions a candidate asks are often extremely revealing. And, because they’re usually among the final questions in the interview, they often leave behind an important impression in the interviewer’s mind.

If you’re like most software engineering candidates, you are probably prepared to ask at least some questions of your potential employer during an interview. Standard questions usually probe into things like technology stack choices, benefits, or the amount of autonomy afforded if you get hired. While those are all important questions to ask, they don’t reveal the level of sophistication of the engineering organization you’re about to join. That’s harder to determine, especially if you’re only given a couple of minutes at the end of the interview to ask a couple of questions, having been grilled for hours already.

Given that you’ll likely also only work at a small number of jobs in your career, you want to choose teams that truly help you to grow, and to do that, you need to surround yourself with high-quality engineering talent. During any interview process, I suggest that you use this valuable opportunity to get a deeper sense of the quality of the team you’re looking to join.

If you want to quickly vet the quality of the team that’s interviewing you, one question can get to the heart of the matter with immediate effect:

“Why did you choose your current software development methodology?”

The interviewer’s answer to this deceptively simple question will reveal a lot about the engineering team, but also about the company’s organizational health.

The answer to this question tells you if the engineering group is aligned with the business needs of the company by building software in a way that matches those needs. It also tells you if the engineering managers are sophisticated enough to truly understand how software should be built at their company, or if they’re just run-of-the-mill folk who just apply the latest and greatest buzzword technique to make the team look modern.

Here are some not-so-great answers, along with what they’re revealing:

  • “We use waterfall because, well, that’s what we’ve used for years.”

The phrase “that’s just how we do things here” will probably be heard regularly at a company like this. There might be nobody willing to challenge the orthodoxy or rock the boat because people there are comfortable, and change is generally resisted. In large companies, more modern development methods might be difficult to implement, or are perhaps isolated to only certain teams. In smaller companies, it’s often a sign of a lifestyle business culture, which generally won’t lead to massive growth in either top-line revenue or development careers.

  • “We are a Scrum shop because the CTO used it in his previous company, and he’s super passionate about it. He’s even a certified Scrum Master.”

This answer tells us that Scrum might be getting applied religiously rather than rationally. Just because Scrum worked for the CTO when he was at a different company doesn’t mean it’s the most appropriate methodology in his current one. A candidate hearing this kind of answer should dig deeper into their decision criteria for using Scrum now, and find out if it’s being regularly evaluated as still being appropriate. Also, given the passion of the CTO for Scrum, he might be unwilling to consider other approaches that might be more suitable. In general, answers that lead back to a single person’s decision can also be indicative of a hierarchical and rigid culture.

Some encouraging answers might be:

  • “We use Kanban because we’re an early-stage startup and we have limited financial runway. We need to find product/market fit as quickly as possible, so we need to maximize the flow of features, prevent blockers, and build a strong feedback loop around things that we ship. We’re planning to re-evaluate our choice once we get real paying customers.”

This answer shows how the business goal – reaching product/market fit before running out of money – matches the methodology chosen, and hints at a good amount of introspection on the part of the management team. Those are all very good signs. Also, the fact that they plan to re-evaluate is another good sign that they are open to feedback, and most importantly, to change.

  • “We use something of our own invention that is probably closest to Scrumban. We run pretty disciplined sprints, and we love the data we get from doing them. But, we are always looking for improvements in everything we do. In fact, our process looks very different now compared to last year, and that’s mostly because of some great suggestions that the engineers made to how we do things.”

This company sounds healthy in numerous ways: they are introspective, they use data to inform their decisions, they have a culture of continuous improvement, and opinions from the team members are both encouraged and implemented. They’re also showing humility, another important thing to look for – beware of companies that arrogantly think their development process has no room for improvement.

In summary, a great answer to the question will:

  • Show that the team builds software in the most appropriate way to meet the company’s needs
  • Make the interviewer open up enthusiastically as they proudly describe more about how they have chosen to work
  • Be an identical answer to what each of the interviewers give (beware of teams with managers who say everything is rosy when their engineers say it’s anything but!)
  • Reveal how open the managers are to engineer-driven ideas
  • Show how introspective the company is, and whether they have a culture of continuous improvement
  • Get the candidate the most value out of their very limited “ask the interviewer something” time, allowing them to better evaluate the job opportunity

Remember, asking a really good question or two of an interviewer can help your chances of actually getting the job. A good interviewer will be thinking not just about your ability to write code, but about your ability to contribute to team culture and growth. But most importantly, the answer to this question will give you a strong sense of how much you really want the job. In an environment where engineering talent is at a premium and candidates are often vetting many opportunities at a time, companies that truly know how to build great teams will seek to “sell you” just as much as you want to “sell them.” Even if you don’t use this specific question, use this valuable opportunity to ask questions about topics that will shed real light on what your career would look like with the company — not on questions that can easily be answered with a one-line email later on.  

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s