You are your Institutional Knowledge

In the midst of recession, many companies are closing locations and laying off staff to cut costs.  The thinking from many of these companies is that the remaining staff can pick up any projects the laid-off staff previously did, resulting in all the important work being accomplished.  Secondary tasks may end up being done a bit less frequently, and any extra can get picked up by contractors, who don’t entail the same hire/fire burden. 

There are some flaws in this thinking for anything with real complexity, and these flaws all relate to institutional knowledge. 

First, it assumes that the remaining staff knows what is important.  In reality, today’s workers are often so siloed they don’t have any idea what the person two cubes over is doing.  Lay off a few people, and entire critical infrastructure applications may be forgotten-until they stop working, to the confusion of the remaining staff.  Also likely- remaining staff will know of the existence of such applications, but most likely won’t know where such apps sit, or how they work.  It’s hard to prioritize importance when you don’t have the basic facts.

Second, it assumes unfamiliar applications are not overly burdensome to learn, even when the previous maintainers are no longer present.  The truth is that many existing applications were built over many years using fragile programming techniques, and then went through a maintenance period that resulted in counterintuitive, self-contradicting, hard-to-follow, even misleading code.  These issues may not have been  issues for the previous maintainers because they were so familiar with it that they knew all the common problems, and how to handle them. I think of the old Dodge Caravan I drove around in college-not fuel injected, so I knew to press the gas when I started. The hydraulics in the rear door were broken too, so I knew to keep my head down, and I kept a hockey stick in the back to prop it up. I also knew to use premium fuel or it would start knocking like crazy. but I knew about these issues, had workarounds, and was largely unaffected.

(This one was not mine, but mine was very similar save for being white with fake wood) However,  had I lent the car out to a friend without this info, my friend may not have even been able to start it, and later probably would have ended up getting smacked in the head with the rear door, and then wondered if they broke the thing after filling up with regular gas and hearing extra knocking.  These problems take only a few minutes to understand; unfortunately, learning all the subtleties of a large, complex codebase can take months or even longer, even with the guidance of someone with experience.

Sure, with time, the important applications will be discovered and eventually learned, but what happens in the meantime?  What if the important app is customer-facing?  What if it runs your business’s billing?  Can you live without this app for days while your staff  takes baby steps learning the most basic elements of an app, trying to figure out why it’s non-functional?  Can you live with new and different critical errors happening repeatedly, as staff learns the idiosyncracies of the app the hard way?  Or, can you live without any work of substance being done on a critical app for an extended period of time for fear of encountering the issues mentioned above?  This is what happens with the loss of institutional knowledge.  If you can’t afford these kinds of problems, you might reconsider the nature of your business… regardless the stated goal of the company or any products it might sell, reliance on knowledge means your business, IS, to some level, the institutional knowledge of the people that make it up, and losing that knowledge could be tantamount to losing the business. Tread carefully.

EDIT: A related concept I really wanted to mention is the idea of the Truck Factor, i.e. “The number of people on your team who have to be hit with a truck before the project is in serious trouble”  Anytime you lay off people who have specialized knowledge, you’re lowering your truck factor… if you lower it down to 1, particularly on a stressful project, you’re potentially in real trouble.. even if that person isn’t hit by a truck, there’s a good chance he/she will leave when the economy recovers.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *