When you’re surrounded by people who work in your industry for hours on end, it can be difficult to realize that jargon is seeping insidiously into your vocabulary the way rot creeps unnoticed into an unintentionally abandoned barrel of Granny Smith apples.

Yesterday I caught myself describing something as an “edge case,” meaning that although it is possible that someone might try to cut their hair with hedge clippers, hairstyling should not be the first consideration when somebody sets out to design an effective tool for trimming oleander.

 To put it another way, edge cases represent a subset ​of all likely “use cases” (which can be defined as the ways in which an agent or actor interacts with a system in order to achieve a goal). Design solutions tend to address the interactions that most of the people will undertake most of the time with a given system. Edge cases are use cases characterized by the fact that they are individually unlikely to occur and collectively represent an enormous percentage of all likely use cases.

I’d never even heard the phrase prior to working in software development (although it has been common parlance in engineering and psychiatric circles for decades). But now that I know what it means, I’ve adopted the term “edge case” the way people fond of animals might take in a lost kitten and provide a saucer of warm milk.

(originally published on BAD YEWEX)