June 07, 2004

Software Engineering Terms: A Lexicon

by peterb

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.

Posted by peterb at June 7, 2004 02:15 PM | Bookmark This
Some terms explained by Peter
Weblog: Girish Bharadwaj
Tracked: June 18, 2004 04:07 PM

Please help support Tea Leaves by visiting our sponsors.

November October September August July June May April March February January

December November October September August July June May April March February January

December November October September August July June May April March February January