Negotiating With Terrorists
Terrorism comes in many forms. It’s commonly typified by leveraging hostage situations to undermine national policy and to facilitate foreign influence, or personal ulterior motives. An increasingly common incarnation of what I consider to be corporate terrorism manifests itself as so-called “knowledge anchors”: employees who have been with a company long enough to have acquired intimate knowledge about the business’ problem domain, and have subsequently outlasted any one else who might also have acquired the knowledge.
And so far, no problem. Certainly there’s nothing sinister about lasting at a company through many iterations and evolutions, gaining more and more insight as time goes by. Except that this information can be invaluable to a corporation – so much so, that they’ll actually keep on an employee who’s dead weight in order to prevent the knowledge loss. This is especially prevalent in software organizations, where some legacy component or module that no one understands is at the root of the company’s revenue – maybe it’s a transaction processing class, or a driver to connect to a proprietary data source. It might not even be that complex at heart, but has rotted over time to the point that the risk involved in refactoring – or God forbid, rewriting entirely – is too much to warrant anything new. Then there’s Mort, an abrasive and irritable curmudgeon who was the primary developer on the component 10 years ago, and who has been doing everything within his power to keep the company in the dark ages, which is where he comes from, and where he’s convinced he’ll retire.
Mort is a real pain in the ass to everyone who has the unfortunate task of interacting with him, really at any level. When asked even the most direct questions about his software, his explanations are cryptic and lazily formed, and are typically so myopic they lack context, and ultimately, usefulness. Mort knows what he’s doing too, and he’s become exceedingly capable of keeping his paycheck and remaining an island. So how do you ever get any information? You can try to approach truth by writing unit tests for the legacy system that Mort wrote, but typically the code is so poor that it does not really lend itself to testability. And you can’t really ask Mort for help testing his component, because, well, it’s worked for 10 years, it couldn’t be broken! He probably doesn’t believe in the value of unit tests anyway – that’s not true by necessity, it just tends to be the case. I’ve only ever really found one consistently successful approach in diminishing Mort’s clamp on the organization’s progress: negotiating away information, little by little, and immediately socializing it. If you want to extract age-old domain knowledge necessary to retire problematic software components or archaic processes, you’ve got to learn how to negotiate with terrorists.