How to Identify Software Engineers with Great Judgment and Decision-Making Skills

How to Identify Software Developers with Great Judgment

Exercising sound judgment consists of the ability to incorporate your past experiences, stakeholder needs, priorities, facts, and constraints to arrive at a decision that is going to be the most beneficial for the organization. It requires the ability to deal with situations in a realistic and sensible way, even if theoretical wisdom would advise taking a differing solution. You need to be able to deal with ambiguities to help figure out which items are truly important.


Potential Interview Questions to Identity Judgment & Decision-Making


If you could change one thing about the architecture of the current system, what would it be?

Purpose

There are a couple of reasons an interviewer may ask this question. One is to determine your level of understanding of the current architectural landscape. The other is to determine your level of context awareness. Are you able to realize when there might be a better way to do something?

Good Response

A good response will indicate that you have a solid understanding of the current architecture. You should also have an idea of something significant that could be changed to make the architecture better. If you have specific examples of how you acted on an idea to implement an architectural improvement, be sure to mention it.

Poor Response

A poor response is one that is so trivial that it really doesn't provide much added value. This is usually an indication that a candidate hasn't reached an engineering maturity to think at an architectural level. They would likely struggle with tasks that involve some level of design and architecture.


If you were going to create an application like Facebook/Twitter/Snapchat (etc), what technologies you would leverage? Why?

Purpose

This is a question that helps determine a candidate's awareness of the overall technology landscape. While the question is rather open-ended and fairly large in scope, it creates a starting point for architectural conversations. There are a number of key characteristics that will be demonstrated by the candidate during this exchange.

  • Initiative - does the candidate actively seek to understand various technologies, even if they are not exposed to them in their current position.
  • Architectural Understanding - does the candidate understand how various technologies are leveraged, and which use-cases are appropriate to create a specific functionality set.
  • Knowledge Scope - these types of questions are great for getting an initial feel for the breadth and depth of knowledge exhibited by the candidate.
  • Technical Curiosity - does the candidate actively research new technologies and try to understand how to appropriately leverage them in a business use-case.
Good Response

A good response will exhibit a number of the following characteristics.

  • Context Awareness - during the course of the candidate's answer, it should become apparent that the candidate has a desire to understand the big-picture. The depth of knowledge will vary widely by the level of experience, but even less experienced candidates should have some level of understanding on how various pieces of a system interact with each other.
  • Technical Awareness - the candidate should demonstrate an understanding of new technologies, even if they haven't leveraged them in a work setting. While their knowledge may be limited in cases where they don't have practical experience with a particular technology, they should still be able to articulate a general understanding of the basic use-cases, and have an understanding of general advantages, disadvantages, and tradeoffs. Candidates who have little awareness of emerging technologies often create complex solutions to problems that could have been solved much simpler via an existing library, tool, or technology.
Poor Response

A poor response may exhibit some of the following characteristics.

  • Little knowledge of system interaction - if a candidate is unable to demonstrate a basic understanding on how systems and technologies interact, it may be an indication of a poor context-awareness. While you will have to factor in the level of experience, a candidate shouldn't be totally let off-the-hook for being somewhat new to the software industry.
  • The modern day Rip Van Winkle - occasionally you will encounter a candidate who describes a great solution, but it's for a problem that existed ten years ago. It seems they stopped acquiring knowedge at some point, while technology kept advancing without them. This often indicates a lack of passion or interest in their career choice. While they may have been passionate initially, they are probably coasting at this point. While some of these individuals are re-energized by a job change, many of them have reached a point where they are more interested in the paycheck than the profession.

How do you solve a situation where the business needs and the technical needs of a product are in conflict?

Purpose

The interviewer is trying to gauge a candidate's understanding of business context. Ultimately, engineers and architects need to be the gatekeepers of product quality, but there may be real-world situations where technology tradeoffs need to be made because of an urgent business need. Maybe a product needs to make an extremely fast entry into the market to capitalize on a specific market opportunity.

The pace of technological change has dictated that organizations are able to adapt very quickly to changing business needs. As outlined in The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses by Eric Ries, it is extremely important that there is a very tight feedback loop in the Build-Measure-Learn process. Sometime when producing new products, it may necessary to put out a product that has significant technology deficiencies, with a plan to re-architect future versions. In these types of situations, the learning from the customer feedback may be more important than the product architecture, as the actual product may be re-architected using information learned during the initial release.

Don't Live With Broken Windows

However, if the functionality in question would require a technical hack to a core piece of the technology framework, there should be some very serious conversations about the technical implications. In these sorts of situations, it should require an extremely compelling argument from the business folks before the technical gatekeepers would agree to implement a solution that could damage the ability of the platform. Additionally, it is extremely dangerous to give the engineers the impression that it is acceptable to check in garbage code because 'It works'. Andy Hunt and Dave Thomas talk about the dangers of the Broken Window Theory in their book The Pragmatic Programmer: From Journeyman to Master. In these situations, the benefits of producing an inferior product faster are far outweighed by the maintenance and support cost of implementing a poor technology decision.

Good Response

While every situation is unique, and there isn't a prescriptive answer about whether the business needs or the technology needs are more important, there are a few things that the candidate should demonstrate when addressing this question.

  • Ability to Prioritize - The candidate should demonstrate an ability to prioritize and weigh technology vs. business needs. Ultimately, they both need to be considered during the planning and implementation phases of development. Context is important, and candidates who make decisions in a vacuum often make incorrect choices because they fail to consider details that were important in the big-picture.
  • Willingness to consider the business context - A candidate should demonstrate an understanding and a willingness to consider the business context when making technology decisions. Technology is the means to provide business value to customers. While it is extremely important for the candidate to demonstrate a desire to produce the best technical implementation, it is important that they understand that the technology solution is only possible because it provides value to the customer.
Poor Response

It is important that a candidate consider both the technical and business factors when making design decisions. Candidates who will make product changes for the business without regard for the effects to the technology platform will create a product that will soon become unmaintainable.

Candidates who are so religious about an implementation that they won't consider alternatives when business needs dictate a different solution are similarly unproductive. While it is good for a candidate to have a passion for creating a great technological solution, it is important that they don't become so focused on the solution that they don't attempt to understand why the solution is important. Candidates who have trouble with the business context often have trouble understanding the technology context as well. A good engineer will usually consider a wide range of factors and constraints, both business and technical, when make technology decisions and choices.


If you had the choice to use <technology A> or <technology B>, which would you choose ? Why?

Example

If you had the choice to use Chef, Puppet, Docker, Ansible, or something else for configuration management, what would you choose? Why?

Purpose

The interviewer is attempting to see how a candidate makes a choice between competing products. They may also ask this question of products that are actually complimentary. While the interviewer may or may not have a specific preference, they are looking for the candidate to articulate a logical explanation on why they would chose one over the other.

Good Response

A good response will exhibit a number of the following characteristics.

  • Candidate provides an opinion - in many cases, the interviewer may be more interested to see the candidate have an opinion, than what the opinion actually is. However, the candidate needs to provide logical reasons for having the opinion. An opinion without explanation may be worse than providing no opinion.
  • Ability to articulate the pros and cons - by understanding the advantages and disadvantages of a particular tool, technology, framework, process, etc, a candidate becomes equipped to make a decision based on sound judgment rather than just guessing or depending on the whims of the moment.
  • Passion for one choice over the other - while many competing products may be similar, there are likely certain contexts that are more suited to one or the other. Expressing passion about a choice in these particular use cases can indicate that the candidate has a fairly deep understanding of how the technologies compare with each other.
Poor Response

If a candidate is not able to articulate the pros and cons of both technologies, or only understands one technology well, it may be an indication that they lack intellectual curiosity and passion to discover whether another product would work better in a particular context. It may indicate that once they become comfortable with a particular technology, they are resistant to change or new ideas.

Are you interested in discovering whether a software engineer possesses a high level of motivation?