Jargon plagues most industries. Software development is no different. Here are some of my favourites.
In our industry there's a shitload of jargon. There are terms for how people behave, how they think, how the world works and even for quirky software development practices. It is easy to forget them, so I thought I would record the most useful (to me) here.
This post is mostly for my benefit; most of the content comes straight from Wikipedia.
Parkinson's Law of Triviality (Bike-shedding)
Parkinson's law of triviality is C. Northcote Parkinson's 1957 argument that members of an organisation give disproportionate weight to trivial issues. Parkinson provides the example of a fictional committee whose job was to approve the plans for a nuclear power plant spending the majority of its time on discussions about relatively minor but easy-to-grasp issues, such as what materials to use for the staff bike shed, while neglecting the proposed design of the plant itself, which is far more important and a far more difficult and complex task.
Impostor syndrome is a concept describing individuals who are marked by an inability to internalise their accomplishments and have a persistent fear of being exposed as a "fraud".
The "law" is a statement regarding the difficulty of accurately estimating the time it will take to complete tasks of substantial complexity. It is often cited by programmers, especially in discussions of techniques to improve productivity, such as The Mythical Man-Month or extreme programming. The recursive nature of the law is a reflection of the widely experienced difficulty of estimating complex tasks despite all best efforts, including knowing that the task is complex.
Paradox of choice
The Paradox of Choice - Why More Is Less is a 2004 book by American psychologist Barry Schwartz. In the book, Schwartz argues that eliminating consumer choices can greatly reduce anxiety for shoppers.
Analysis paralysis or paralysis by analysis is the state of over-analysing (or over-thinking) a situation so that a decision or action is never taken, in effect paralysing the outcome.
It states that the selection of a candidate for a position is based on the candidate's performance in their current role, rather than on abilities relevant to the intended role. Thus, employees only stop being promoted once they can no longer perform effectively, and "managers rise to the level of their incompetence".
List of cognitive biases
A heuristic technique, often called simply a heuristic, is any approach to problem solving, learning, or discovery that employs a practical method not guaranteed to be optimal or perfect, but sufficient for the immediate goals. Where finding an optimal solution is impossible or impractical, heuristic methods can be used to speed up the process of finding a satisfactory solution. Heuristics can be mental shortcuts that ease the cognitive load of making a decision. Examples of this method include using a rule of thumb, an educated guess, an intuitive judgment, guesstimate, stereotyping, profiling, or common sense.
Cognitive load refers to the total amount of mental effort being used in the working memory.
Sturgeon's revelation (as originally expounded by Theodore Sturgeon), commonly referred to as Sturgeon's law, is an adage commonly cited as "ninety percent of everything is crap". It is derived from quotations by Sturgeon, an American science fiction author and critic; while Sturgeon coined another adage that he termed "Sturgeon's law", it is the "ninety percent crap" remark that is usually referred to by that term.
Rule of least power
In programming, the rule of least power is a design principle that "suggests choosing the least powerful [computer] language suitable for a given purpose".
In computer programming jargon, a heisenbug is a software bug that seems to disappear or alter its behaviour when one attempts to study it. The term is 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.
In software engineering, rubber duck debugging or rubber ducking is a method of debugging code. The name is a reference to a story in the book The Pragmatic Programmer in which a programmer would carry around a rubber duck and debug their code by forcing themselves to explain it, line-by-line, to the duck.
Device fingerprinting, machine fingerprinting, or browser fingerprinting is the act of inspecting browser behaviours and features in an attempt to differentiate and track individual users. Fingerprints can be used to fully or partially identify individual users or devices even when persistent cookies (and also zombie cookies) can't be read or stored in the browser, the client IP address is hidden, and even if one switches to another browser on the same device.
Phishing is the fraudulent attempt to obtain sensitive information such as usernames, passwords, and credit card details (and money), often for malicious reasons, by disguising as a trustworthy entity in an electronic communication.