Duck Typing

Idioms

From the programming world.

Bikeshedding

To devote way too much time and energy working on and optimizing trivial issues — that are often hypothetical future problems that don’t exist yet — instead of focusing on what’s actually important right now.

The term comes from a story in which a group of engineers, architects, and scientists are hired to build a nuclear power plant, but get stuck deciding where and how to build the staff bike shed. Where will the bikes go? How many bikes should it be able to hold? What color should the bike shed be painted? All of this attention on the employee bike shed results in a loss of funding and neither the bike shed nor the power plant being built. This is also known as “The Law of Triviality”, that is, that people will give disproportionate weight to trivial matters.

Bus Factor

The number of people it takes to be hit by busses before some area of knowledge is unknown.

Cargo Cult Programming

The ritual inclusion of code or program structures that serve no purpose. Symptomatic of a programmer not understanding how something works or whether it is required.

From from the idiom “cargo cult” that originally referred to remote populations in the South Pacific who performed rituals they believed would cause planes to continue to drop cargo following World War II. Derives from Richard Feynman’s “cargo cult science.”

Code Smell

A characteristic in the code of a program that possibly indicates a deeper problem (i.e. something “smells fishy”).

Popularized by Kent Beck on WardsWiki in the late 1990s, and again after it was featured in the 1999 book Refactoring: Improving the Design of Existing Code by Martin Fowler.

Dogfooding

To eat your own dog food is to have the team that made the product use the product themselves before releasing to the public.

The origins of this one is a little more debated. One is from 70s dog food commercial that was used in an 80s Microsoft email encouraging everyone to internally test their products. It has since been shortened to “dogfooding”.

Duck Typing

To treat things as equal if they appear the same — not if they are actually the same.

he phrase originates from the old saying “if it walks like a duck and it quacks like a duck, then it must be a duck.”

Fudge Factor

To add fake data to make it fit an observation or expectation. Also known as a “Correction Coefficient.”

The usage of “fudge” for disgust or irritation originating in the mid 18th century and later as printers’ jargon for imperfect or best-with-what’s-available work.

Heisenbug

A software bug that seems to disappear or alter its behavior when one attempts to study it (e.g. by adding print statements or breakpoints).

A pun on the name of Werner Heisenberg, the physicist who first asserted the observer effect of quantum mechanics, which states that the act of observing a system inevitably alters its state. Coined by IBM employee Bruce Lindsay in 1985.

Low-Hanging Fruit

To tackle tasks that require little time or effort to complete — ideally those with the most upside (i.e. “quick wins”).

This term comes from the idea that the easiest fruit to grab off of a tree are the ones closest to the ground. Supposedly originated in the 17th century. In modern times, the earliest known use of it was in an article by P.J. Kavanaugh in the 1968 issue of The Guardian.

Parade of Horribles

The list of undesirable outcomes — usually exaggerated — resulting from an action.

Taken from 19th century Fourth of July “Horribles Parades” of people wearing comic and grotesque costumes.

Pigeonholing

To place something into a single category, usually in a way that is unfair or overly rigid (i.e. stereotyping).

Pigeon holes date back to the 1570s and were living spaces for courier pigeons — usually one per hole. From the 1700s the term references generic cubbies like mailroom boxes. In the 19th century a verb to set a topic aside for later.

Rubber Duck Debugging

To explain your code or problem aloud in hopes that the process of describing it and hearing it aloud will help you diagnose your problem.

From a story in The Pragmatic Programmer about a programmer that would carry around a rubber duck and debug their code by forcing themselves to explain it, line-by-line, to the duck.

Shared Fate

Or fate-sharing, is grouping parts of a system together so that they either fail together or not at all.

Defined by David D. Clark in his 1988 paper The Design Philosophy of the DARPA Internet Protocols.

Table It

To delay, postpone, or suspend something for later (“to shelve”).

What began in 18th century British English to a term to bring something up for discussion took the opposite meaning by mid-1800s Americans.

Throw It Over the Wall

To transfer something from one individual or group to another, with the implication that the first person or group has finished with it (“the ball is in your court”).

The earliest use for this meaning was by Bruce Hoard for the 1981 article in Computerworld IBMer Calls Demand Processing Wave of Future.

Tree Shaking

To remove dead code (i.e. shake the tree and dead branches will fall down).

The idea of a “treeshaker” originated in LISP in the 1990s as the idea that all possible execution flows of a program can be represented as a tree of function calls, so that functions that are never called can be eliminated.

Walled Garden

A closed ecosystem.

Created by John Malone, who started a company called Tele-Communications Inc., which was acquired by AT&T in 1999. First adopted by Bell System in the 70s with hardware designed for their own network and intended to be leased rather than purchased.

Wearer of Many Hats

To have or play many roles (e.g. put on my detective hat, put on my victim hat).

Supposedly, the expression dates back to the mid-19th century and refers to a person who wears different uniforms for multiple jobs. Some believe the term came specifically from the 1885 comic opera The Mikado, which depicts a man scrambling between jobs that each require a different hat.

Yak Shaving

To start working on one task that leads you to perform another, and results in a seemingly never ending queue of tasks, diverting you from the original goal.

Coined by Dr. Carlin Vieri, an MIT Ph.D., after he watched the “Yak Shaving Day” episode of Ren and Stimpy where participants had to do seemingly unrelated things like hang diapers, stuff rubber boots with coleslaw, and watch for the shaven yak to float by in his enchanted canoe!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store