More Software Engineering Terms

On December 7, 2004, in Computers, by peterb

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, Benoît Hudson, and psu for helpful suggestions and editing.


Comments are closed.