“Kluge” is originally a german word that means “clever one”—or a scottish word that means “toilet.” To most english speakers, a kluge is not usually a good thing. It’s something that can do the job even if it wasn’t put together well or isn’t really right for that purpose. It’s often surprising when a kluge even works. For those of us in charge of complex systems, a kluge might be the only thing that holds it all together. It’s time we ask ourselves, is that the best we can do?
workaround theory
Using a kluge, or a workaround, is how many of us get our work done. I wanted to know how effective they really are. Steven Alter at the University of San Francisco wrote a paper called “Theory of Workarounds” to answer this. He writes that a workaround is an adaptation, or improvisation, with a goal. Workarounds can bypass obstacles, errors or limits in a system, or standard practices. People usually create workarounds to make a process more effective or efficient. They might also create one to benefit themselves or their employer.
Alter described 11 different types of workarounds that he discovered in his research. I rounded these down to a broad-but-convenient-for-me 3 categories.
- Bypassing flawed design. People create workarounds when systems aren’t designed well. They might bypass a process if they don’t have the resources to do it the correct way. They might improve a process when nobody has time for a formal fix. Or they might devise a solution to an issue that happened outside of their control. For example, using a book of barcodes for when the brands’ barcodes come out wrinkly.
- Creating something new. Someone might create a workaround because it’s faster than doing it the “right” way. Or they create a separate system to make the existing one better or more convenient. For example, writing a patient date of birth down on a post-it before typing it into the computer.
- Causing malice or even harm. When a person uses workarounds but pretends they didn’t. When a person lies, cheats, or steals for their own benefit. For example, when a doctor picks a diagnosis code that brings in more money than using the more accurate one. Collusion makes this even worse, like when cops bill overtime en masse to rake in huge salaries.
workarounds are bad, actually
I’m no stranger to workarounds. I’ve used them to bypass bad policy or to help people that wouldn’t otherwise get helped. I still think they’re likely to do more harm than good. Here’s why.
Workarounds don’t last forever. Most workarounds are temporary, or are only done by the person or people who know to do them. When those people leave, there’s not always a record of the workaround or why they did them. Why do they sometimes stick around? Some workarounds happen without others noticing them. They might get baked into informal policy. Or we’ll assume that the person who made the workaround had good intentions. Even if the workaround is good, it most often goes away eventually. Someone with power learns about them or the rules are rewritten to make them obsolete. Whatever good they did risks disappearing with them.
Workarounds are inconsistent. Say you work at a baby store [note to self: what do they call stores for babies? no, the babies aren’t the shoppers. ok never mind]. You discover that a pack of diapers, which usually cost $35.49 [note to self: THEY WHAT??], are ringing up at $49.99. Some customers notice, but others don’t. Management is taking their time adjusting the price in the system. You decide to start ringing up the diapers at the right price until someone can fix the problem. But what happens to everyone else? If a low-income parent visits the wrong cashier, do they deserve to pay a higher price for diapers?
Workarounds hide or downplay the problems they bypass. Independent workarounds give a pass to the people running a system. If everyone has their own workaround for an unfair system, how will we know where the problems exist? Will the problem seem like a problem if it only seems to affect a small number of people?
what we can do instead
I like to think about workarounds as fractures in a larger, flawed structure. If they work, let them work. But don’t forget to repair the problem itself. Here’s how I do that.
Understand the workaround’s why. Why does this fix seem to work? What issue is the workaround trying to solve? How does this workaround bypass the trouble spot, and what does that do for the system? What does it do to the people? Who isn’t affected by the workaround? Learn from the people who use the workaround to find out why the quick fix works for them.
Understand the system’s intent. People build every system, even bad ones (especially bad ones), with intent. What was the original system trying to solve? Before we can figure out where a process went wrong, we need to know what it should be like when things go right. Say we have to consult ten people across the company before we make this decision. Is that poor, inefficient design, or did something go wrong? If it happened once or twice, perhaps we can find an easier and more permanent solution.
Fix it for everyone. We should create every workaround with justice in mind. Be really careful about bias when examining workarounds, such as those that only happen when someone’s “in the know.” We need to judge workarounds with more suspicion than just whether or not they work. Even if we’re acting in a just manner, our workaround will rarely apply to everyone who needs it. We have to change the system, not simply bypass the parts we don’t like.
leave a trace
In a perfect world, we’d fix everything as soon as we notice a problem. In the real world, we need to understand it before we can do that. We can’t avoid some workarounds, like those used in disaster or medical situations. But most of us aren’t in those situations. We can take the time to go after the root cause of a problem. Let’s focus more on how to improve systems for all. Would a permanent fix expand access to more people? Would revising this process make it easier to use? Are we using this workaround for our personal benefit? Why?
We should also commit to creating processes that someone can edit later. Think of this as commenting on your code. So many workarounds exist because the system they’re in is complex or hard to change. Or the system, piled up with years of workarounds made permanent, is not easily understood. If you spot an issue in a process, flag it and work to solve it. If you create a workaround, socialize it until we have time to fix the real problems.
Workarounds against injustices are never permanent and always unjust. We can do better. Whatever route we take to get somewhere, fight to make sure everyone can follow your path if they so choose.
josh
my name is josh martinez. i have always loved trying to understand systems, and the systems that built those systems. i spend a lot of time thinking about how to get there from here.
i own and operate a consulting practice, Future Emergent.
say hello: josh[at]bethefuture.space