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.

Cleanroom
  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 colors 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.

|