More Software Engineering Terms

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.