“The vocabulary of computing can be baffling, and just when you have finally figured out the difference between a mainframe and a mini, they're almost obsolete,” wrote Peter H. Lewis in a column for The New York Times back in 1993. In it, Lewis defined a brief list of terms from corporate computing culture, words and phrases like “server,” “open systems,” and “outsourcing.” He also listed a few words and phrases that had trickled into the mainstream, like “hard-wired,” “beta,” and “bandwidth.” And then, there was “kludge:”

KLUDGE, pronounced klooj, is an inelegant but expedient solution to a problem, or a solution done hastily that will eventually fail. Examples: “We kludged it until we can figure out the right way to do it.”

The pronunciation of “kludge”—it rhymes with subterfuge and ice luge, not nudge and fudge—hints at its alternate spelling, “kluge,” which is still commonly used among programmers. The discrepancy may also offer hints as to the earliest uses of the word, which, like “bug,” has its own thicket of folklore to untangle.

“It’s, um, complicated,” the linguist and lexicographer Ben Zimmer told me in an email. “The short answer is that the word was originally spelled ‘kluge’—derived from the surname Kluge, in turn from German klug, ‘clever.’ But then later it began to be spelled as ‘kludge,’ merging with a U.K. slang term with that spelling (apparently derived from a Scots word for ‘toilet’). So now we often get the ‘kludge’ spelling with the ‘kluge’ pronunciation.”

Whew.

Several sources trace the word’s origins back to 1940s military usage, where it was apparently used in the Navy to describe electronic equipment that “worked well on shore but consistently failed at sea,” according to the Jargon File, a compendium of hacker slang created by the developer Eric S. Raymond. But there are other hints that “kluge,” dates back farther, perhaps as a reference to printing press equipment manufactured by Brandtjen & Kluge in the 1930s.

Newspaper ads from that decade describe Brandtjen & Kluge systems as modern marvels—automatic and ultra-fast—but they also had a reputation for being, well, pretty klugey, according to the Raymond’s site: “temperamental, subject to frequent breakdowns, and devilishly difficult to repair.”

“The result of this history is a tangle,” the Jargon File concludes. “Some observers consider this mess appropriate in view of the word’s meaning.”

But ironically, given its definition, kluge is itself a fantastically nuanced word, too. Here’s how the File describes sophisticated shades of its meaning:

Take the distinction between a kluge and an elegant solution, and the differing connotations attached to each. The distinction is not only of engineering significance; it reaches right back into the nature of the generative processes in program design and asserts something important about two different kinds of relationship[s] between the hacker and the hack. Hacker slang is unusually rich in implications of this kind, of overtones and undertones that illuminate the hackish psyche.

The File also points out that kluge exists on a spectrum of related slang that might be used to describe the functionality (and beauty) of code more broadly, from “monstrosity” to “perfection.”(Perfection in computer programming, of course, being a “mythical absolute, approximated but never actually attained.”)