Software Engineering Terms: A Lexicon
Jun 7, 2004 · peterb · 3 minute readComputers
Software engineering is a scientific discipline, as well as an art. Like many such fields, it has developed specific terminology and jargon, whose meaning may be subtly different or even completely opposite to what one would guess. In the interests of spreading enlightenment among budding software engineers, we have prepared this brief lexicon that covers some of the more important terms you may encounter in your career in software development:
- triage Common usage: “I haven’t made progress on that bug - it requires more triage.”
Meaning: “If I hadn’t spent all afternoon talking to my friends on AIM I might have some idea what is causing the problem.”
- corner case Common usage: “The problem you are seeing is a corner case bug.”
Meaning: “Compiling the source did not catch the bug. Please file a bug and I’ll triage it later.”
- testing Common usage: “This submission passed all required check-in testing.”
Meaning: “This compiled OK on one platform.”
- debug Common usage: “I will debug this problem.”
Meaning: “I will file a bug on this problem and assign it to some component I am not responsible for.”
- passed Common usage: “The test passed.”
Meaning: “I ran the test five times, and four of them failed with bizarre non-reproducible errors, but one of them succeeded.”
- and a pony Common usage: “I want faster compiles, more hardware, and a pony.”
Meaning: “I know I’ll never get any of these things so why not add a pony to the list just to make myself feel better?”
- flexible Common usage: “Our product is flexible.”
Meaning: “We’ll bend over backwards to add any feature you want.” Opposite of ‘stable’.
- prototype Common usage: “We should prototype that feature.”
Meaning: “We have absolutely no idea how this feature should work, but we don’t want to think about it, so you should just implement it over and over again until we think it’s right.”
- wiki Common usage: “We should get a wiki to provide for better collaboration on the teams.”
Meaning: “Someone should waste time setting up a bizzare web server with a stupid user interface so that for two weeks people write a series of bad web pages that are hard to read and navigate which then fall into complete disrepair as they tire of the shiny new tool.”
- documentation Common usage: “I’ll make sure that’s documented.”
Meaning: “I’ll create an empty wiki page for that issue and give people the URL whenever they pester me via e-mail.”
If you found this lexicon useful, you might be interested in yesterday’s profile of the different types of software engineers.