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.
Posted
08-27-2009 10:38 PM
by
Anne Epstein