This is a glossary of terms as used in this essay. These do not necessarily have a standardized meaning to other people. Eric S. Raymond has compiled a massive and informative glossary[HackerDict] that rather surprisingly can pleasurably be read cover-to-cover once you can appreciate a fraction of it.
unk-unk : Slang for unknown-unknown. Problems that cannot presently even be conceptualized that will steal time away from the project and wreck the schedule.
boss : The person or entity that gives you tasks. In some cases this may be the public at large.
printlining : The insertion of statements into a program on a strictly temporary basis that output information about the execution of the program for the purpose of debugging.
logging : The practice of writing a program so that it can produce a configurable output log describing its execution.
divide and conquer : A technique of top-down design and, importantly, of debugging that is the subdivision of a problem or a mystery into progressively smaller problems or mysteries.
vapour : Illusionary and often deceptive promises of software that is not yet for sale and, as often as not, will never materialize into anything solid.
boss : The person who sets your tasks. In some cases, the user is the boss.
tribe : The people with whom you share loyalty to a common goal.
low-hanging fruit : Big improvements that cost little.
Entrepreneur :The initiator of projects.
garbage : Objects that are no longer needed that hold memory.
business : A group of people organized for making money.
company : A group of people organized for making money.
tribe : A group of people you share cultural affinity and loyalty with.
scroll blindness : The effect of being unable to find information you need because it is buried in too much other, less interesting information.
wall-clock : Actually time as measured by a clock on a wall, as opposed to CPU time.
bottleneck : The most important limitation in the performance of a system. A constriction that limits performance.
master : A unique piece of information from which all cached copies are derived that serves as the official definition of that data.
heap allocated : Memory can be said to be heap allocated whenever the mechanism for freeing it is complicated.
garbage : Allocated memory that no longer has any useful meaning.
garbage collector : A system for recycling garbage.
memory leak : The unwanted collection of references to objects that prevents garbage collection (or a bug in the garbage collector or memory management system!) that causes the program to gradually increase its memory demands over time.
Extreme Programming : A style of programming emphasizing communication with the customer and automated testing.
hitting the wall : To run out of a specific resource causing performance to degrade sharply rather than gradually.
speculative programming : Producing a feature before it is really known if that feature will be useful.
information hiding : A design principle that seeks to keep things independent and decoupled by using interfaces that expose as little information as possible.
object-oriented programming : An programming style emphasizing the the management of state inside objects.
communication languages : A language designed primarily for standardization rather than execution.
boxes and arrows : A loose, informal style of making diagrams consisting of boxes and arrows drawn between those boxes to show the relationships. This contrast with formal diagram methodologies, such as UML.
lingua franca : A language so popular as to be a de facto standard for its field, as French was for international diplomacy at one time.
buy vs. build : An adjective describing a choice between spending money for software or writing it your self.
mere work : Work that requires little creativity and entails little risk. Mere work can be estimated easily.
programming notation : A synonym for programming language that emphasizes the mathematical nature of programming language and their relative simplicity compared to natural languages.
strawman : A document meant to be the starting point of a technical discussion. A strawman may lead to a stickman, tinman, woodman, ironman, etc.
white-paper : An informative document that is often meant to explain or sell a product or idea to an audience different than the programmers of that product or idea.