Blog‎ > ‎

Software Engineering: 1 - Hire experienced personnel for their teaching ability

posted Feb 2, 2012, 9:50 AM by Frank Adrian
Occasionally, we managers can actually hire people! Yes, I know... In these days of economic turmoil and outsourcing, these occasions can be rare. However, it is for precisely this reason that one must make make the best decisions one can about selecting new employees to add to your team. There are many factors one can take into consideration when hiring. Certainly, a prospective employee must know how to do the job that you're hiring him or her for. However, there are many other less tangible and peripheral factors that can help you select candidates and that will enhance your ability to successfully produce software.

One reason software is interesting is because software products contain a great deal of tacit knowledge. Documenting every minutia of a software artifact is a fool's errand and the ability to retain the tacit knowledge surrounding the artifact and transmit it to others on the team is often a critical factor in the long-term success or failure of a software product. Teams can be crippled when knowledgeable members leave en masse, taking their knowledge with them. Even more dangerous is a single employee holding all knowledge about a critical aspect of the system - the reduction in the project's bus factor because of the knowledge held only by this person can be catastrophic. As such, managers have a responsibility to make sure that this tacit knowledge is disseminated among the members of the team. The people most able to transmit this knowledge are usually the senior members of the team, who have seen more of the system for a longer time and understand not only what things are done, but also how and why things are done that way.

Another challenge in the software world is that of shifting infrastructure. The software substrate upon which your product is built (operating systems, programming languages, frameworks, etc.) is constantly shifting. Your team members need to keep up with these changes to ensure that your product can take advantage of the new (and hopefully improved) features provided by the updated infrastructure. As training budgets are likely to be constrained (if available at all), the most efficient way to deal with these shifts is to have one person - usually a senior person, who can understand the ramifications of the changes - figure out what these changes are and transmit them to the rest of the team. This is also critical when introduction of new infrastructure is needed.

So, when you are hiring an experienced person for your team, understand that they may soon be needed to pass on knowledge to less experienced team members. Make sure that they are able to do so. One of my favorite behavioral interviewing questions to ask of a prospective employee with many years of experience is "Tell me about a time that you've taught a less experienced team member about something." This question can tell you a lot about a candidate.

Beyond transmission of knowledge, a team member who can teach what he or she knows can bring several other benefits. Usually, they are good communicators - in addition to kickstarting the transmission of knowledge, he or she can become a catalyst for increased communications throughout the team. I have seen team members who are passionate about teaching act as focal points for brainstorming or problem solving sessions. People who are passionate about teaching often see documentation (both internal and customer-facing) as teaching materials and advocate for their quality. Teachers often have a keen willingness to be a team player and can improve team cohesion. People who are able to teach successfully on an ad hoc basis have to know their subject matter deeply. The benefits of hiring an experienced person for their teaching ability, as well as their abilities for doing their engineering tasks, are manifold.

In summary, a team working on products that require retention of tacit knowledge will benefit from its senior members knowing how to teach less experienced member. Use this as an additional factor in your hiring decisions.