My Knowledge Is Your Knowledge


We’ve all heard the term “tribal knowledge” before. It references a time when life was simpler (albeit arguably more dangerous) where the knowledge your tribe had could mean your survival over others. Now it is most commonly used in business (ahem, tribes), and has deeply permeated into the software development world. It is often considered a negative in a team environment, and is generally defined as the following (according to Wikipedia):

Information that is known within a group of people but unknown outside of it.

This most commonly happens in small companies or teams (particularly startups), where the team is moving so fast they forget (or don’t have time) to write down how they do things. A few people build a new service or feature and then it is shipped out the door. No time to document how it works and why it was designed that way, we have more features to build. It’s not a big deal though, right? Everyone knows how it works because they built it. Then you bring on another employee. How do they know how anything works? You teach them when you have time, but they kind of have to be able to figure things out for themselves sometimes. This can work if that person has worked in other environments before, or if you are only following industry standards. But what about junior engineers? What about the fact that you are a startup and are trying to develop a new way of building something and cannot follow industry standards? That’s tribal knowledge.

I say all of this from experience. I work in a startup. We have new ways of building software. We have tech debt from decisions made when deadlines were tight. We are missing documentation (which is a good solution to share tribal knowledge, but is also the first thing to be dropped from scope in favor of speed). We have a complex platform of event-driven services that calculate metrics, and that is just one facet of our business value. Is it difficult to onboard? You betcha. I believe it can take up to 6 months for someone to be truly onboarded. Sure that person might be able to contribute something in the first few weeks, but they still won’t understand the full system. That’s just how it is, and sometimes, it’s honestly okay.

So why would I call this blog “Tribal Knowledge”? Well, a few reasons actually. I will talk a lot about software development, and that is a specific part of it on the top of my mind recently. Honestly, I also just really like what it represents. The main reason though, is that anything I know and share with others is tribal knowledge. I want to build a community of people (tribe) interested in sharing their collective knowledge. We all bring unique experiences and backgrounds to the table. Together, we can help each other survive and thrive in this crazy world of ours.