Glossary Of Software Engineering Terms

All New: The software is not compatible with previous versions.

Advanced Design: Upper management doesn't understand it.

Breakthrough: 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.

Clean Room: A management technique that applies to horizontal interfaces what the mushroom technique applies to vertical interfaces.

Compiler: 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.

Cost Modelling: A means of convincing the customer to pay for whomever you need to keep employed this year.

Customer: A primitive life form at the bottom of the food chain.

Debugger: A tool that substitutes afterthought for forethought.

Design: The activity of preparing for a design review.

Design Review: A process for ensuring you know exactly what it is you won't build.

Design Simplicity: It was developed on a shoe-string budget.

Documentary Hypothesis: The discredited notion that software is the outcome of a systematic and rational process of development, rather than the result of divine inspiration.

Documentation: A process for converting trees into entropy, usually applied to provide busywork for the people whose employment cannot be justified by cost modelling.

Domain: A class of applications where failure on one project gives you an advantage in bidding on the next.

Enhancement: Breaking what you did right and getting paid for it. [see also: maintenance]

Exclusive: We're the only ones who have the documentation.

Field Tested: Manufacturing doesn't have a test system.

Foolproof Operation: All parameters are hard coded.

Formal Verification: 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.

Futuristic: It only runs on the next-generation supercomputer.

Incremental Implementation: 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.

Maintenance: Fixing what you did wrong and getting paid for it. [see also: enhancement]

Maintenance Free: It's impossible to fix.

Meets Quality Standards: It compiles without errors.

New: It comes in different colours from the previous version.

Performance Proven: It works through beta test.

Programs: What software used to be, back when we knew how to write it.

Programmer: One who is too lacking in people skills to be a software engineer.

Project Management: The art of always knowing how badly you're doing your work and how late you're doing it.

Quality Assurance: A way to ensure you never deliver shoddy goods accidentally.

Real Time: An attribute applied to software that's even more expensive than can be justified by cost modelling.

Requirements Analysis: Determining what it is you can't do before failing to do it.

Requirements Engineering: Convincing the customer to want what you think you can build.

Requirements Review: Explaining what the customer won't get in language they don't understand.

Reuse: Using an existing product in a new context; especially as applied to proposals, resumes, disclaimers and excuses.

Revolutionary: The disk drives go round and round.

Satisfaction Guaranteed: We'll send you another copy if it fails.

Software Engineer: One who engineers others into writing the code for him/her.

Spiral Model: A development model that allows you to fail in a small way several times over. [see also: waterfall model]

State-Of-The-Art: What we could do with enough money.

State-Of-The-Practice: What we can do with the money you have.

Stock Item: We shipped it once before, and we can do it again, probably.

Structured walkthrough: The process whereby the false assumptions of one member become shared by an entire team.

Technology Transition: Helping people replace old useless processes, methods and tools with new useless processes, methods and tools.

Testing: 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.

Unprecedented Performance: Nothing ever ran this slow before.

User: A harmless drudge.

Waterfall Model: A development model that allows you to fail in a big way just once.

Years Of Development: We finally got one to work.