Two Strategies To Optimize The Impact Of Critical Experts In Software Engineering

Have you ever found yourself in the following situation? You are asked to investigate a certain issue with the software your company is building. You start debugging, trying to narrow down the problem. A couple of hours later, frustrated, you walk for coffee, complaining to a fellow coffee addicted developer about how strange this issue you are investigating is. It turns out your colleague investigated a similar issue a while ago. He fixed it by changing two lines of code in some low level configuration file, after days of debugging and root causing.

His tip, accidentally exchanged at the coffee machine, dramatically reduced the time needed to fix the issue.

The role of experts in software engineering

Experts can play a crucial role in many software projects. Having (even brief) access to the right person at the right moment in time can have a tremendous impact on the quality of the solution. However, experts are usually scarce and might not be present in your project team. Planning expert interventions is in most cases impossible as the interventions are usually very interrupt-driven. Basically, I see two strategies you can use (and combine).

  • The problem owner hunts for the expert: try to make explicit who is expert in what domain. People looking for experts can then consult that knowledge. This requires installing some kind of knowledge management system (Wiki, …). This strategy is difficult to apply if expertise can change very fast; then updating the expert profiles becomes cumbersome.
  • The expert hunts for the problem owner: in this model, experts browse through the "problems" and look for opportunities in which they can help. This can be difficult because it can require a lot of browsing time from the experts. This strategy requires the installation of a "broker" platform. To some context it might be difficult to motivate the experts to hunt.

To learn more about this topic, you can read chapter 2.7 in the book The Art of Software Innovation: Eight Practice Areas to Inspire your Business.