Glossary of Software Engineering Terms
The software is not compatible with previous versions.
Upper management doesn't understand it.
It nearly booted on the first try.
Capability maturity model
A method of determining to what extent the developer can reasonably be blamed
for the inevitable failure.
A management technique that applies to horizontal interfaces what the mushroom
technique applies to vertical interfaces.
A tool for adding an exciting amount of uncertainty to the size, speed and
correctness of a program.
Computer human interface
The means by which the program conditions the user into never trying all the
things that don't work.
A means of convincing the customer to pay for whomever you need to keep
employed this year.
A primitive life form at the bottom of the food chain.
A tool that substitutes afterthought for forethought.
The activity of preparing for a design review.
A process for ensuring you know exactly what it is you won't build.
It was developed on a shoe-string budget.
The discredited notion that software is the outcome of a systematic and
rational process of development, rather than the result of divine inspiration.
A process for converting trees into entropy, usually applied to provide
busywork for the people whose employment cannot be justified by cost modelling.
A class of applications where failure on one project gives you an advantage in
bidding on the next.
Breaking what you did right and getting paid for it. [see also: maintenance]
We're the only ones who have the documentation.
Manufacturing doesn't have a test system.
All parameters are hard coded.
The construction of an incorrect proof isomorphic to an incorrect program.
Function point analysis
Cost modelling a program by what it won't do, rather than by how big it won't be.
It only runs on the next-generation supercomputer.
Delivering several partial products each for the price of a complete one.
It's here at last
We've released a 26-week project in 48 weeks.
Fixing what you did wrong and getting paid for it. [see also: enhancement]
It's impossible to fix.
Meets quality standards
It compiles without errors.
It comes in different colors from the previous version.
It works through beta test.
What software used to be, back when we knew how to write it.
One who is too lacking in people skills to be a software engineer.
The art of always knowing how badly you're doing your work and how late you're doing it.
A way to ensure you never deliver shoddy goods accidentally.
An attribute applied to software that's even more expensive than can be
justified by cost modelling.
Determining what it is you can't do before failing to do it.
Convincing the customer to want what you think you can build.
Explaining what the customer won't get in language they don't understand.
Using an existing product in a new context; especially as applied to
proposals, resumes, disclaimers and excuses.
The disk drives go round and round.
We'll send you another copy if it fails.
One who engineers others into writing the code for him/her.
A development model that allows you to fail in a small way several times over.
[see also: waterfall model]
What we could do with enough money.
What we can do with the money you have.
We shipped it once before, and we can do it again, probably.
The process whereby the false assumptions of one member become shared by an
Helping people replace old useless processes, methods and tools with new
useless processes, methods and tools.
A process for ensuring that the product will work in all circumstances that
anybody other than the user can imagine.
Total quality management
A way of teaching your managers five words of Japanese, without any risk that
they will acquire an equivalent amount of competence.
Nothing ever ran this slow before.
A harmless drudge.
A development model that allows you to fail in a big way just once.
Years of development
We finally got one to work.