More Software Engineering Terms
Dec 7, 2004 · peterb · 2 minute readComputers
From time to time, I share certain terms that I find useful in my space-age- au-go-go career as a software developer. This is one of those times. Idimpotent - An operation is “idempotent” if it can be safely attempted multiple times. An operation is “idimpotent” if it should be idempotent, but instead it brings your system to a crashing halt if you try it twice. (Variation: idemimpotent).
Implementation detail - This term is usually used to describe the requirements of any given project.
Trivial - Any piece of software (“We need a library with a simple API that solves the halting problem”) that must be implemented by some other team.
System tests - A term used to describe the delivery of product to users.
Frozen - As the ship date of a product approaches, it enters the “feature freeze” period. This means that new features are added to the product only if they are really, really cool.
Reproducible - If a bug does not occur every time the unit tests are run, it is not reproducible, and may be closed.
Unit tests - Pieces of software that thoroughly exercise, at a bare minimum, at least 5% of a given software component.
Regression tests - Comprehensive tests that you expect other people to run when they make changes to the codebase.
Sophisticated - Hard to use.
Simple - Doesn’t do anything useful.
Efficient - Does not do anything useful, but it not does it very quickly.
Debugger - A crutch for the weak programmer who is not sufficiently 3l33t.
Comments - See “Debugger”
Other useful software engineering terms can be found here. Thanks to Stewart Clamen, Benoit Hudson, and psu for helpful suggestions and editing.