Jargon busting
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 (external site)’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 (external site) 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.
Wikipedia Link (external site)
Moore’s Law
Moore’s lawis the observation that the number of transistors (external site) in a dense integrated circuit (external site) doubles approximately every two years.
Wikipedia link (external site)
Imposter syndrome
Impostor syndrome is a concept describing individuals who are marked by an inability to internalise (external site) their accomplishments and have a persistent fear of being exposed as a “fraud”.
Wikipedia link (external site)
Dunning-Kruger effect
TheDunning–Kruger effect is a cognitive bias (external site) wherein people of low ability suffer from illusory superiority (external site), mistakenly assessing their cognitive ability (external site) as greater than it is.
Wikipedia link (external site)
Hofstadter’s Law
The “law” is a statement regarding the difficulty of accurately estimating the time it will take to complete tasks of substantial complexity (external site). [2] (external site) It is often cited by programmers (external site), especially in discussions of techniques to improve productivity, such as The Mythical Man-Month (external site) or extreme programming (external site). [3] (external site) 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.
Wikipedia link (external site)
Brook’s Law
Brooks’ law is an observation about software project management (external site) according to which “adding human resources (external site) to a late software project makes it later”
Wikipedia link (external site)
Paradox of choice
The Paradox of Choice - Why More Is Less is a 2004 book by American psychologist (external site) Barry Schwartz (external site). In the book, Schwartz argues that eliminating consumer choices can greatly reduce anxiety (external site) for shoppers.
Wikipedia link (external site)
Analysis Paralysis
Analysis paralysis or paralysis by analysis is the state of over-analysing (external site) (or over-thinking) a situation so that a decision or action is never taken, in effect paralysing the outcome.
Wikipedia link (external site)
Peter Principle
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”.
Wikipedia link (external site)
List of cognitive biases
Cognitive biases (external site) are systematic patterns of deviation from norm or rationality in judgment, and are often studied in psychology (external site) and behavioral economics (external site). This (external site) is Wikipedia’s full list of them.
Heuristic
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 (external site), an educated guess (external site), an intuitive (external site) judgment, guesstimate (external site), stereotyping, profiling (external site), or common sense (external site).
Wikipedia link (external site)
Cognitive load
Cognitive load refers to the total amount of mental effort being used in the working memory (external site).
Wikipedia link (external site)
Sturgeon’s law
Sturgeon’s revelation (as originally expounded by Theodore Sturgeon (external site)), commonly referred to as Sturgeon’s law, is an adage (external site) commonly cited as “ninety percent of everything is crap”. It is derived from quotations by Sturgeon, an American science fiction author (external site) 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.
Wikipedia link (external site)
Rule of least power
In programming (external site), the rule of least power is a design principle that “suggests choosing the least powerful computer language suitable for a given purpose”.
Wikipedia link (external site)
Heisenbug
In computer programming (external site) jargon, a heisenbug is a software bug (external site) that seems to disappear or alter its behaviour when one attempts to study it. [1] (external site) The term is a pun (external site) on the name of Werner Heisenberg (external site), the physicist (external site) who first asserted the observer effect (external site) of quantum mechanics (external site), which states that the act of observing a system inevitably alters its state.
Wikipedia link (external site)
Rubber ducking
In software engineering (external site), rubber duck debugging or rubber ducking is a method of debugging (external site) code. The name is a reference to a story in the book The Pragmatic Programmer (external site) in which a programmer would carry around a rubber duck (external site) and debug their code by forcing themselves to explain it, line-by-line, to the duck.
Wikipedia link (external site)
Fingerprinting
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 (external site) (and also zombie cookies (external site)) can’t be read or stored in the browser (external site), the client IP address (external site) is hidden, and even if one switches to another browser on the same device.
Wikipedia link (external site) • Brave browser’s fingerprint protection mode docs (external site)
Doxxing
Doxxing is the Internet-based practice of researching and broadcasting private or identifiable information (especially personally identifiable information (external site)) about an individual or organization.
Wikipedia link (external site)
Phishing
Phishing is the fraudulent attempt to obtain sensitive information (external site) such as usernames, passwords, and credit card (external site) details (and money (external site)), often for malicious (external site) reasons, by disguising as a trustworthy entity in an electronic communication (external site).
Wikipedia link (external site)
Voice phishing
Voice phishing, or vishing,[1] (external site) is the use of telephony (often Voice over IP (external site) telephony) to conduct phishing (external site) attacks.
Landline telephone services have traditionally been trustworthy; terminated in physical locations known to the telephone company, and associated with a bill-payer. Now however, vishing fraudsters often use modern Voice over IP (external site) (VoIP) features such as caller ID spoofing (external site) and automated systems (IVR (external site)) to impede detection by law enforcement agencies. Voice phishing is typically used to steal credit card numbers (external site) or other information used in identity theft (external site) schemes from individuals.
Wikipedia link (external site)
Birthday problem
In probability theory, the birthday problem or birthday paradox concerns the probability that, in a set of n randomly chosen people, some pair of them will have the same birthday. By the pigeonhole principle, the probability reaches 100% when the number of people reaches 367 (since there are only 366 possible birthdays, including February 29). However, 99.9% probability is reached with just 70 people, and 50% probability with 23 people. These conclusions are based on the assumption that each day of the year (excluding February 29) is equally probable for a birthday.
Actual birth records show that different numbers of people are born on different days. In this case, it can be shown that the number of people required to reach the 50% threshold is 23 or fewer. For example, if half the people were born on one day and the other half on another day, then any two people would have a 50% chance of sharing a birthday.