DevOps Culture Anti-pattern: Tribal Knowledge

As I have been digging into the various cultural pitfalls that operations groups can fall into, tribal knowledge is the first one that teams can dig themselves out of. Imagine you are an executive or director that knows that the information you need for your company to succeed is stuck in the head of one of your employees, but you do not know whose mind or what that piece of information is. It is a puzzle or mystery that can only be solved by the organization as a whole.

Recognizing the negative impacts of tribal knowledge come in multiple forms. But the most critical one is wait time. If you have ever dealt with a project that require one or more “subject matter experts”, the immediate issue is obvious. Imagine a team making significant headway or progress on a particular problem, but running into a brick wall because that “one critical resource” is the required person on another project and will not be available to help until next week. And maybe that resource only has to work for 5 minutes to unblock the queue or issue. And this happens on multiple projects with multiple resources. That is a sure sign that there is tribal knowledge prevalent.

But this comes in other forms as well that can have the same level of negative impact. For example, when dependencies for projects come in the form of knowing system connectivity, but teams must ask a person questions like:

  • What database do I need to point this application to?
  • Where is the API or service I should use for this site?
  • Where is my build server?

These are all indicators of problems with tribal knowledge.

The simplest methods to overcome tribal knowledge are to start with what is in your onus of control. If you are the only person responsible for delivering an outcome using a set of steps that only exist in your head, look for a person to share that with or find a central place to store that information so others can access it.

Any kind of wiki or shared, collaborative documentation repository are excellent places to store this information. And they have many purposes like these:

  • Instructions to complete tasks are used as the framework or pseudo code for automation capabilities.
  • Tips and techniques to develop a response process to incidents can be used to push work out of your system into a commodity or utility capability (outsource/insource help and support functions).
  • General learning that elevates the experience level of those around you

It is important to have as many people as possible have access to this information. The information wants to be free. Why do this? You will be unable to take on new and interesting projects once you have found a way to move the daily tasks that comprise your job out of the system of work you manage. It is one of the best career development decisions you can make when you provide education to those around you and elevate your whole team. This kind of “force multiplier” has a significant impact on leadership skills as it allows someone to become only an escalation point for problems rather than the person someone goes to whenever they need anything related to the area of expertise.