Software Development Terms

Here's a quick description of random software development terms. Most developers probably know them but someone could find something new.

Broken Windows Theory
If there is a low-quality part of a codebase, people maintaining the codebase tend to produce more low-quality code.

Technical Debt
Taking shortcuts by making intentionally suboptimal design or implementation decisions. Not always bad, not all debt have to be paid.

Using your own unfinished product in day-to-day work while developing it.

Code Smell
Doing something that could lead to problems.

A bug that doesn't repro when debugging.

Applying a method that works in one context in a different context without knowing why it worked in the original context.