views:

117837

answers:

357

Question

What programming terms have you coined that have taken off in your own circles (i.e. have heard others repeat it)? It might be within your own team, workplace or garnered greater popularity on the Internet.

Directions

  • Write your programming term, word or phrase in bold text followed by an explanation, citation and/or usage example so we can use it in appropriate context.

  • Don't repeat common jargon already ingrained in the programming culture like: kludge, automagically, cruft, etc. (unless you coined it).

Background

This question serves in the spirit of communication among programmers through sharing of terminology with each other, to benefit us by its propagation within our own teams and environments.


Stealing from the comments:

"A shared vocabulary is the basis of communication, not just among programmers [...]"

+14  A: 

.NET sandwich - when .NET code called native code which calls other .NET code and makes the poorly designed application crash.

Danny Varod
You did not coin that.
jrockway
I've never heard or read either term before, which term are you referring to? - Ok, found it on Google with an alternative spelling, edited to remove that term.
Danny Varod
Wow, then we have some nice JNI sandwich in our code.
G B
I've done this a few times, but never had any issues with it. I always like looking at the stack traces in VS (especially if it's cross-app-domain), they're usually scarily long.
Robert Fraser
+8  A: 

Not really a jargon, but I don't actually spell out "A-P-I". I just say "ah-pee".

polygenelubricants
but if you pronounce it that way it sounds like you are getting ready to hit the bathroom
Woot4Moo
Hardcore programmers use catheter bags.
polygenelubricants
That is how latin american programer say it. Ah pee.
DFectuoso
@polygenelubricants - Hardcore programmers also refuse to eat on time when someone calls them. They have to finish something up before they feel comfortable to eat. Oh, sometimes they even do not eat! :)
Leniel Macaferi
Ah, pee.. _ _ _ _ _ :)
mlvljr
Most Dutch programmers say that too. Funnily enough it also means little monkey.
Bart van Heukelom
Spanish programmers also say it this way.
Lluis Martinez
German and Russian programmers say it that way too.
styts
so do greek programmers..
Gaby
Wait till you hear some italian say Pee aka Pee (PHP)
Midhat
Other pronunciations:.cshrc,.kshrc, .bashrc : "c-shark","k-shark", "bashark"
mataap
+719  A: 

Pokémon Exception Handling. For when you just have to catch em all.

Woot4Moo
[citation needed]
Ether
http://stackoverflow.com/questions/2308979/exception-handling-question/2308988#2308988 per request
Woot4Moo
I can see people like my Pokemon
Woot4Moo
at the very least, I liek your mudkips
Jimmy
I favour the inverse; namely, exceptions you can't catch. I call them "slippery exceptions".
Rob
Haha, you definitely made my day :D
Helper Method
Squirtle Squirtle!
pokstad
@Rob you mean when someone tries to catch an OutOfMemoryException?
Woot4Moo
Yes, that sort of thing.
Rob
My favourite kind of error handling: `catch(Exception exc) { MessageBox.Show(exc.Message); }`
Nick Bedford
@nick: I've actually seen something like something like `try {MessageBox.Show(message);} catch(Exception exc) {MessageBox.Show(exc.Message);}` somewhere. Grrr...
David X
Ive seen when error logging was wrapped in a try catch and then calls itself....`stackoverflow` here we come!!!
phsr
MY EXCEPTIONZ - Let me show you them
akamike
@David X: that reminds me of the 404 error given by some Apache webservers, noting that "Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request." :-)
ypnos
nice graphic :)
Woot4Moo
This is one of those phrases that i'm going to use forever in my life
Marco
I used that before Feb22... http://stackoverflow.com/questions/416616/parsing-c-finding-methods-and-putting-try-catch-to-all-methods/416624#416624
StingyJack
you do realize its quite possible for me to have been writing code before Feb22 and moreso having seen pokemon long before that right?
Woot4Moo
Yes, but there is an earlier public record. Thats all I was saying.
StingyJack
The best! From hence forth I shall always catch(Exception emAll)
aredkid
+1 for the so very genuine lol
chaosTechnician
This is actually nicer http://www.daimi.au.dk/%7Eandos/images/catchemall.jpg
Kungi
+131  A: 

Bicrement - Adding 2 to a variable

EvilTeach
I always thought "excrement" should have been the opposite of increment.
Jimmy
Anyone who upvotes Jimmy's comment knows what the correct opposite of "excrement" is?
BeowulfOF
AFAIK excrement doesn't have an opposite.I think excrement should be used to indicate adding an unknown quantity to a variable (ie. add x).
Dom
Now @Jimmy be careful to which way your pointer runs.
kenny
If only C++ had the `lValue++++` operator.
Nick Bedford
@BeowulfOF: food?
RegDwight
@Nick Bedford: Don't worry, that feature is coming in C++++.
dreamlax
@jimmy wouldn't excrement mean something like i = i^2?
Will
decrement should be the opposite or increment, but Jimmy's comment made me laugh! so upvoted.
Victor Farazdagi
+22  A: 

integerize - the process of turning a floating point number into an integer

EvilTeach
how 'bout "intify"?
Mark
how about "cast as int"?
Cam
@mark I like "intify", or even "intification".
Andrew
"The Intification Ritual" :))
mlvljr
What about `integralize` for us Haskellians?
trinithis
How about "floor" ?
rlb.usa
flooring usually means putting the pedal to the metal.
Tor Valamo
@rlb.usa integerize(-7.3) == -7
Doug McClean
you mean round?
AlexeyMK
Yeah but integerize sounds like intergize, which sounds like something you do when Scotty beams you up.
Robert P
@AlexeyMK, @rlb.usa, @incrediman - exactly that's why. It means "make an integer from it, in a way that is appropriate in given context". round, floor, cast, truncate, substract fraction part, stringify-then-intize, read the int field from an union, whatever.
SF.
I woulda called it `hacksawing`. Get.. off.. you.. dirty.. fraction! `int i = sawoff(2.3);`
Nick Bedford
i usualy say "int it!".
st0le
We truncate 'em.
Warren P
+10  A: 

Instead of a simulator, we have something called a stimulator (the other end). One of our customers actually came up with it by accident, although he doesn't know it yet. Lets just say, he has an accent and we were sure he referred to our "stimulator".

Matt H
On second thought, I just won't ask.
Steve
Same reason we sometimes call our software versions "wersions" now.
Bratch
They must be a really good customer.
kenny
Very common for a stub which injects test messages into a system
Pete Kirkham
Let's hope this answer doesn't get a picture... (I jinxed it, didn't I?)
Andrew Grimm
Enemy wessel within range, captain.
Warren P
Enter authorization code 95 wictor wictor 2.
RMorrisey
+193  A: 

"Jimmy"

A generalized name for the clueless/new developer.

We found as we were developing a framework component that required minimal knowledge of how it worked for the other developers.

We would always phrase our questions as:

"What if Jimmy forgets to update the attribute?"

This led to the term: "Jimmy-proof" when referring to well designed framework code.

alt text

Gord
We don't have a developer on our team named Jimmy so it worked well, going to be interesting when we do though ;)
Gord
I use "Lumpy Cheetosian" - has a certain associated mental image, and name collisions are somewhat less likely.
Scott Smith
Yah... you really can't hire a Jimmy after inacting this strategy, but in the meanwhile...
Joseph Silvashy
sigh . . ...... :<
Jimmy
Wow... priceless stackoverflow moment. I wish there was a best-of like Craigslist.
Joseph Silvashy
Aww poor @Jimmy XD
Nick Bedford
:( I might start a few more accounts to down vote this. Jimmy doesn't like it when he get's made fun of.
jim
We use "Pelican-proof", after a former coder's nickname, bestowed upon him by the admin girls for the way he used to gulp down huge bottles of orange squash...
Keith Williams
While in the Air Force, "Airman Snuffy" was our generalized name.
Michael Wales
@Michael - "Airman Snuffy" - *that* brings back memories. And, hey Scott, I used to work with Lumpy Cheetosian, tall fellow from down under, wasn't he?
Mark Brittingham
I used to work with a Jimmy, and he was, well, a real Jimmy.
PaulG
I am Jimmy and I am not happy ;-)
Sands
Hey! ..........
James Westgate
But... but... :(
Jimmeh
Sad trombone...how about Paula-proof? http://thedailywtf.com/articles/the_brillant_paula_bean.aspx
Jimmy Bogard
We have a similar term - "Jimmy Fixed" named after an intern we had working at our company. It's where you haven't actually fixed something, but claim it is fixed.The alternative definition is the bug is fixed, but only in one specific case.There's even a song.What is worrying is that this term is now used by our project-managers...
Aidos
My friends and I used to do the same thing with "Pab". Once during a CS scrim, we played a clan who would blame one of their members - Pab - whenever anything went wrong. D*** it Pab!
BlueRaja - Danny Pflughoeft
http://en.wikipedia.org/wiki/Jimmy_Olsen any relation?
shoosh
Oh I forgot, it is also a unit of measurement.1 Jimmy = the amount of work not done in an hour.
Aidos
Upvoted Jimmy's comment to make him hit 666 upvotes >:)
Erik van Brakel
And any code 'Jimmy' writes is known as 'J-Code'.
Kelly French
Someone here suggested "FNG," but I said it was too East-coast.
a paid nerd
codeproject. .NET extended messagebox with checkbox.http://www.codeproject.com/KB/dialog/MessageBoxChk.aspx"does anyone know how to work this into a HTML page?"Thanks, jimi
Run CMD
We definitely used FNG and we definitely thought we were clever.
Marco
Is this pronounced "Jeeemy"?
Warren P
+4  A: 

Cruftaculous - when a program has more "cruft" than useful features.

simeonwillbanks
I call that bloated or JAVA for short.
Kyle
+442  A: 

Different kinds of bug reports:

Smug Report - a bug submitted by a user who thinks he knows a lot more about the system's design than he really does. Filled with irrelevant technical details and one or more suggestions (always wrong) about what he thinks is causing the problem and how we should fix it.

Drug Report - a report so utterly incomprehensible that whoever submitted it must have been smoking crack. The lesser version is a chug report, where the submitter is thought have had one too many.

Shrug Report - a bug report with no error message or repro steps and only a vague description of the problem. Usually contains the phrase "doesn't work."

Aaronaught
+sideways 8 for smug and shrug reports
Antony
Man, developing software would be great if it wasn't for all the f**ing users.
Frank Farmer
+1 for Smug and Drug reports. Admittedly, I am quite guilty of the former
Sukasa
My favorite bug report of all time was "It runs for half an hour and then it stops." I never got any clarification on that one, despite asking.
David Thornley
smug reporter here, damn.
James Morris
At least "the smug" isn't the one who put the bug in there in the first place. But he is taking his time trying to be helpful, even if he doesn't know about all the intricacies of the system. Some programmers really have bad social skills..
bitc
@bitc, it's impolite to talk about yourself in the third person like that.
Aaronaught
It is true that the smug reporter is often better than the other two. Nevertheless, the term fits them well (and is funny). I've seen some truly bizarre explanations for how problems work from "smug" reports. The other types tend to be just completely useless.
jsight
Yup; smug reports are sometimes helpful. Smug reports where the person disassembles your code in .NET reflector and actually finds the fix for your bug are best of all (though a bit disconcerting).
Robert Fraser
@Robert, if the report is precise and technically accurate then by definition it's not a smug report. It's amusing to see some people contending that the definition itself is incorrect or unfair because there are certain cases that don't fit the definition. An apple is not really a fruit because sometimes it might be a zucchini.
Aaronaught
I'd like to indicate, that *any* report (including the kinds you've listed), is better, than the lack of reports. Unless your software is bug-free.. right?
shylent
@Frank Farmer: I'm so gonna pin that on my whiteboard!
Bobby
I once reported a vulnerability in Wordpress and everyone on the dev team accused me of "smoking crack" and didn't even bother using my exploit. So I made the exploit public, and then Wordpress wrote a patch. I guess I mean to say that it goes both ways.
Rook
@The Rook: Sounds like the Wordpress team to do that. Still, this post isn't intended to mock all users or even all bug reports, it's just calling attention to a few specific types. Obviously it goes both ways, but since this is a programming site, it's our turn to laugh at them. ;)
Aaronaught
@Frank Farmer : A quote worth treasuring.
naivnomore
Wish I could give this +100. Would be good if there was a "bug report" definition though. I need a permanent link to this answer to forward to certain bug reporters: "You have submitted a drug report, please change to a bug report as defined here"
Jon
+90  A: 

Hocus Focus problem - unexpected behavior in Windows caused by changes in focus, or incorrect setting of focus.

Scott Smith
... or inappropriate (intentional) stealing of focus
Bob Kaufman
There should be some sort of capital punishment for that. (Oh yes, I love the fact that I just typed half of my mail in a popup window)
ldigas
I wasn't thinking of the focus-stealing problem when I wrote this, but it is definitely one of my pet peeves.
Scott Smith
@Bob Kaufman: YES! I hate it when I'm trying to type and something steals the focus. Bonus points if it takes me longer than 5 seconds to even find where the new focus is.
Dinah
http://stackoverflow.com/questions/235848/most-astonishing-violation-of-the-principle-of-least-astonishment/288452#288452
harpo
+1 Because weve had a hocus focus problem for a year, which no one has been able to fix.
Viktor Sehr
Double bonus points if it's a crash notification that has the "Press OK to shutdown" button selected so that when you press `<space>` while typing your email you actually end up shutting down.
Blair McMillan
@Blair: Those somehow tend to be rare (at least I haven't seen such messages so far that are stealing the focus). What I get frequently is some program thinking to tell you about something (aka MessageBox) and you close the wnidow with the next hit on space; and then you know neither what program had a problem nor what it was.
Joey
@Johannes: Yes, those certainly are more common and I haven't seen what I described in quite a few years, but I have seen it happen.
Blair McMillan
Yet more bonus points for when focus shenanigans lead to posting passwords on public websites…
Donal Fellows
Hah! In some Javascript code for the website I work for, we actually had a `hocusfocus` function, as well as a `focuspocus` one! Luckily, we got rid of them.
Aistina
@Donal, I have this happen to me sometimes. If the site gets hung up for a few seconds loading an image, I'll manually click in the username box and start typing. Then by the time I tab into the password box, the image finishes loading and the onload() function gets called that changes focus to the username box just before I type in my password.Nice. :/
Carl
At a former job we dealt with multiple terabytes of data on a monthly basis, so I often had to download rather large files (hundreds of megabytes or more) to my development machine. You know how IE refuses to actually put the file where you want it, but first downloads it to cache and then copies it? You know how it pops up a dialog, including a cancel button, while it copies the file to the target location? You know how that cancel button has focus, so any keyboard input triggers it? (This was in the days of IE4/IE5, but the current version still does the same thing.)
GalacticCowboy
My favorite is the command windows that pop up briefly during, e.g., some install process. They are there long enough to steal focus and then leave the focus god knows where, but they provide nothing to the user. Windows should not ever let them get focus in the first place.
siride
+6  A: 

Columnify To change a table's column name into a user-friendly name. Requires a valid table column naming schema, fails if column names are x1, x2, x3...

e.g. 'user_id_num' -> User Identification Number (s/id/identification; s/num/number; underscores -> spaces; first character after space capitalised.)

I built a utility procedure to do this process, and the pet-name stuck in production. I still get laughed at :<

glasnt
Nice edit, jdk. I don't think those columns have been bug-checked though.
glasnt
+51  A: 

n-gleton - a class that only allows a fixed number of instances of itself. I've recently seen another (perhaps official) term for this; something like multiton or polyton.

Scott Smith
Wow, lots of down votes on this topic - few with associated comments.
Scott Smith
Many down-voted items are actually answers to the question. Looks like a classic case of somebody coming through and down-voting everything because it appears it happened at once. Overall community should see this and get the votes back up to zero minimum.
John K
so thats said engleton?
RCIX
@RCIX - Yup. That's how I pronounce it.
Scott Smith
@RCIX: I say “ingleton” but that's because there's a small town/large village about 40 miles from home called that.
Donal Fellows
I've heard multiton a lot lately ... #JustSayin
drachenstern
Some book referred to this as a "Fewton".
Helper Method
I created (what I called) a ThreadLocalSingleton in a project a few years ago. I haven't seen this pattern elsewhere...
Benoit Miller
I'm a square. I like to call it an object pool.
Will
+1 `engleton` flows much better than `fewton` or `multiton`.
runrunraygun
I once saw code that described itself as a "twingleton".
Carl Norum
Multiton is an official pattern, AFAIK
John
Mangleton: using a non-threadsafe singleton in a multithreaded application
Jurily
it's usually doubleton, tripleton, multiton. (Yes, I've had tripletons in my code...)
Marcus Lindblom
I've written these. Wasn't sure I wanted to, but it was far-and-away the best solution to the problem.
staticsan
+19  A: 

The Sheath - the isolating interface between your team's (good) code, and the brain-dead code contributed by the other guy(s). The sheath prevents horrible things (badly named constants, incorrect types, etc) in the other guy(s) code from infecting your code.

Scott Smith
I've seen that referred to as a Shim.
staticsan
I thought a shim was a boy/girl that you cant tell its gender
Woot4Moo
How about 'condom'?
Remy Blank
@Remy - We were trying not to be *that* obvious, since the guy that wrote the toxic library we were forced to use was likely to see our code eventually.
Scott Smith
+187  A: 

nopping
I'm writing a scifi novel from the POV of an AI, and their internal language has a lot of programming jargon in it. One of the more generalizable terms is "nopping", which comes from assembler NOP for no-operation. It's similar to 'nap', but doesn't imply sleep, just zoning out.

Example: Stanislav sat watching the screensaver and nopped for a while.

Stanislav
+1 for working your jargon into a sci-fi novel. That's novel.
John K
Haha... cute ! Might start using that when *I* zone out.
Mark
For a full dose, here's a short story full of computer jargon--two AIs arguing about whether humans could be considered intelligent because of their glacial thought speeds. http://zzascape.blogspot.com/2008/04/interruption.html
Stanislav
Thanks for the link, that was an interesting read
Sukasa
When do you publish? i'd like to read that novel...
RCIX
It's downloadable from lifeartificial.com. Part 2 is about half finished.
Stanislav
Seems like it could also describe a busy-wait.
Groxx
I'm definitely going to start using this. Genius...
Christopher Parker
+117  A: 

Squizzle-giz: A horribly mispronounced version of the file extension .sql.gz

We made it up while setting up a server and looking for something easier/more fun to say than "dot ess que ell dot gee zee file" or "gzipped sequel file."

MBCook
Is that a hard 'g' or a soft 'g' because it makes a big difference in hilarity if nothing else.
John K
I kinda like squizzle-jizz better (or soft g).
Mark
@mark that sounds like a personal problem
Woot4Moo
I prefer "squiggle giz", sounds cooler and goes better with the letters.
tsilb
I will attempt to use this every day. I may have to change my day job to DBA but that is a small price to pay
oxbow_lakes
How about squirrel-giz? If that's not a straight line...
outis
Every one knows that SQL is pronounced as squeel.
Seamus
Dare I suggest squirrel-jizz?
Blorgbeard
squizzle-gizzle - just like snoop would say it...
Harold1983-
@Seamus, everyone except those of us who pronounce it sequel.
jmucchiello
Edited to remove amusing but highly questionable picture.
BradC
@BradC I was more so thinking about "Sq"uizzle and "sq"ueezing toothpaste and hadn't quite formulated a coherent mental picture when posting it (the pic rampage). You're right.
John K
+42  A: 

Ghetto code - a particularly inelegant and obviously suboptimal section of code that still meets the requirements.

Kaleb Brasee
You didn't come up with `Ghetto ______`. Ghetto when used before anything is an aphorism for something half-assed, unprofessional, bad, not following convention.
Baddie
Except for ghetto bootay.
PaulG
I started using it for code, and then everyone else stole it. And I didn't get a dime!
Kaleb Brasee
I also coined this independently: http://fishbowl.pastiche.org/2003/05/28/the_ghetto_minipattern/
Charles Miller
except today ghetto is cool
kenny
I only +1'd for the picture :)
Wallacoloo
I didn't even put the picture up! WHO HAS HIJACKED MAH POST!?!?!?!!!!111one
Kaleb Brasee
There I fixed it.
Warren P
+40  A: 

Bug Bait

Programming practices that encourage, rather than discourage, program flaws.

Larry Lustig
Almost like jailbait ;)
Gacek
Only less enticing...
Nate Bross
What I call **bug bait** is the practice of willingly putting debug code into production, for the sole purpose of bringing out a hard-to-find bug (so it can be exterminated properly). Related to **Heisenbug**.
Benoit Miller
@Benoit Miller - so is that Heisenbait?
Mark Schultheiss
Reminds me of PHP
Charlie Somerville
@Charlie, that was uncalled for.
staticsan
+9  A: 

Sonic - A manager who is so clued out that you wonder if he's actually plugged into the same reality you are.

The name stems from a passage by Douglas Adams where he goes on at length about how certain kinds of madness should be easy to sort out. The provided example was someone who thought he was a hedgehog, a form of madness that was ostensibly easy to point out the flaw in: "Here's a mirror. Here's a photo of a hedgehog. You sort out the difference."

A Sonic (named after the video game hedgehog) is someone who'd take the mirror, take the picture and say "Yep, that's me alright!"

JUST MY correct OPINION
+243  A: 

Doctype Decoration - When web designers add a doctype declaration but don't bother to write valid markup.

Zurahn
@Zurahn - Argh! I hate when my team members do this. (I'm totally using this phrase from now on.)
JasCav
What if you write one but just because some W3C spec says you should? *--Looks around innocently--*
Nick Bedford
@Nick - http://xkcd.com/292/
Zurahn
@Zurahn ha love it. xkcd + velociraptors = gold
Nick Bedford
This does actually serve some kind of purpose. If you don't use a doctype you will get quirks mode...
lhnz
is that GOTORAPTOR then>?
Mark Schultheiss
@lhnz, if you don't write valid markup you'll get quirks mode, too.
tloflin
@tloflin If you don't specify a doctype in IE6/IE7/IE8, you will get horribly-broken-beyond-any-hope-quirksmode, while if you specify the doctype but have invalid markup, you'll simply get quirksmode. The difference is that in horribly-broken mode, you'll have considerably more work to do to make the HTML really compliant.For example, take a legacy web application designed for IE6 without a doctype, add a doctype to it, and see how the pages layout suddenly abominably breaks because of the upgrade from "horribly-broken-quirksmode" to "quirksmode"
ckarras
Joey
of course `<html></html>` is invalid. `head`, `title`, and `body` are required, and probably a lot of other things I don't remember.
sreservoir
@ckarras: If you use IE at all, you'll get horribly-broken-beyond-any-hope quirksmode.
Mason Wheeler
@Johannes Rössel, that is called Programmer Validation, where the programmer seeks validation of himself (in the psychological sense) from the W3C validation service. What a useful service.
Liam
Ever see XML as Windows-1252 explicitly declared as UTF-8? The ACC sent our users one and blamed us when our program choked on it.
Joshua
+1  A: 

Mant!

A build that uses Ant for compilation and deployment, but also uses the Maven Ant Tasks to pull in dependencies from the organizational Maven repository.

Steven Huwig
+375  A: 

I wish I had invented it myself, but credit goes to Jason Gorman:

Refuctoring - the process of taking a well-designed piece of code and, through a series of small, reversible changes, making it completely unmaintainable by anyone except yourself.

Dan Vinton
I have a person on my team doing this right now. Too bad mgmt overruled my objections. :-(
KPexEA
We had a guy come in and immediately strip out comments and whitespace from our code "to make it faster".
Scott Smith
**Coder:** Look sir! We shaved 359ms off the compile time!**Boss:** *sigh...*
Nick Bedford
I own refuctored.com :)
George
@Scott Smith - wow - I have a hard time even comprehending that someone could be that stupid.
Mark Brittingham
This is a keeper.
Mark Simpson
I wonder how many people are voting up Scott Smith because they too have made code faster that way.
jfar
21/22 @jfar 1234
Woot4Moo
@Scott Smith:That may have made some sense if the language was HTML. If not... o_O WTF?
slacker
I knew a team that would null out all method local variables so that garbage collecting will pick them up faster
John V.
@Scott Smith: Doing so might make the code compile faster :)
splicer
I heard that one a while back with its opposite 'unfuctoring'.
Mike Two
@John W. - I've seen that many times. Ugh.
jsight
+1 - Geez - I thought I'd come up with that and here it is - but I bow to those who have pioneered the term. It is often performed by people who think they are doing good - as the other comments testify!
Sohnee
I think defactoring fits better for this scenario.
Longpoke
An excellent term to describe the process of job preservation...
Jon
@slacker: Even for HTML, CSS, JavaScript, etc., you could have a file that you use for development, and then a script that copies it to a version without comments and extraneous whitespace.
Tim Goodman
@John V.: This makes sense to do if you're using javascript. Garbage collection in javascript (especially in IE) is dumb and unreliable. It's also easy to overlook closures and create references that can't be collected.
RMorrisey
+111  A: 

Reality 101 failure:

The program (or more likely feature of a program) does exactly what was asked for but when it's deployed it turns out that the problem was misunderstood and it's basically useless.

Loren Pechtel
This happens to me so often
Sukasa
Ask client what they want -> build what they want -> show client -> trash project -> build different program -> endure it for the money.
Nick Bedford
@Nick You just described the agile approach, it's just that they strive to make that string of actions happen in a very short amount of time because they know there will be things needing to be trashed. Better sooner than later.
AaronLS
hmmm, solid concept, shaky naming.
matt lohkamp
@matt: The idea is that it failed the test of reality.
Loren Pechtel
I do not get the point of the picture? What is wrong with solar powered flashlight? It contains accu, therefore it recharges when there is light and can shine once it gets dark.
Suma
I did *NOT* post that picture! Someone went through an attached pictures to a lot of the posts in this thread.
Loren Pechtel
Like the concept, needs a better name.
JohnFx
Also reminds me of this: http://johngushue.typepad.com/.a/6a00d83451f25369e20120a513810c970b-800wi
jtbandes
"Solar-chargeable flashlight"?
intuited
This is one of the all-time great SO "so fun they had to lock it" questions.
Warren P
Feel free to remove and/or replace picture. I only assigned pictures once in an attempt to enhance the entire thread. Will not override author's final decision. Agreed Solarverter pic isn't the best, but didn't have a better one - took it from this blog post - http://blogs.msdn.com/b/cdndevs/archive/2010/05/09/new-programming-jargon.aspx
John K
I'm a client using apps built off languages I know almost by heart, or apps that I even helped initially build. Yet I find it almost impossible to correctly convey enhancements needed or bugs to be fixed to support teams. I think it's a symptom of the client syndrome.
bob-the-destroyer
C, Catch It!.. or Cat Shit!
Frank Computer
@Frank What connection does this have to my post??
Loren Pechtel
+1 for the pic you didn't add :)
Johann Philipp Strathausen
+9  A: 

Delsert- Delete all previous listing then repopulate with new.

Here is a blog post: http://wp.me/pybOK-1d

Phil
we use UPSERT for either updating or inserting depending on what is required.
Randy
That's what MySQL does for a `REPLACE` statement
bart
@Randy and @Bart. Well, this is not a MySQL replace. Delsert deletes all previous entries and populates with new entries; it does not "replace" anything per se. For example, lets say on Decemeber 31st 2010, you have two list of cars in a lot, 2010 cars (in stock) and 2011 cars (coming in on January 1st 2011.) You cannot sell 2010 cars as new on that date, so you delete ALL 2010 cars from the new-car database and replace them with 2011 cars. You are not replacing but doing something like an upsert involving deletion. Ignoring the lack of grace of the example, do you get the point?
Phil
+178  A: 

Unicorny - An adjective to describe a feature that's so early in the planning stages that it might as well be imaginary. We cribbed this one from Yehuda Katz, who used it in his closing keynote at last year's Windy City Rails to describe some of Rails' upcoming features.

Barack Obama - An account in Redmine that we assign our most aspirational tickets to, i.e. the stuff we'd really like to do with a project but will probably never get approval for.

alt text

Jordan
+1 for Obama. :-)
Konrad Garus
-1 for Obama. :P
Kyralessa
How about Barack Obama for stuff that we really cannot afford, most clients don't want, and plan to charge future clients for.
Tim Santeford
@Tim Santeford - Way to kill the funny!
Richard Szalay
@Richard Szalay - Au contraire, I found the parallel hilarious. I'm sure most have worked on projects that fit all three of those categories.
Tim Santeford
+1 on both comments for hilarity.
SF.
Especially given that as we all know, clients rarely know what they actually need ..
FeepingCreature
@Tim Santeford: How about Barack Obama for stuff that will save us money in thee long run, and make life better for our users, but the other developers won't let us do for because they won't get credit.
Matthew Scouten
+14  A: 

Tired RAM Syndrome

After your Windows computer has been running for some time, and something breaks due to cumulative memory or resource leakage, requiring a reboot.

Bob Kaufman
@Bob Kaufman: +1... This one never ceases to amaze me. On a correctly designed OS this cannot happen. Windows and OS X both suffer horribly from this (don't get me wrong: I love Macs and I've three of them here). My Un*x workstation (not OS X) regularly reaches months of uptime (I only reboot it for critical security patches and they ain't very common on well designed OSes ;) even tough I constantly pushes it's limit (using it to do number crunching, running several Java apps, etc.).
Webinator
I usually call this "memory leaks."
Jeff Davis
You mean *"Why is this computer going so SLOW?! GRRR"* face-in-palms syndrome?
Nick Bedford
makes it more human, though...
Andrei Rinea
This is related to "Windows Rot"
rlb.usa
On many systems - old style mainframes and minis, as well as Windows etc I have always known this as bitrot - not coined by me.
Chris Walton
A: 

Spaghetti code. I didn't coin this but it is definitely a contender.

fastcodejava
The title reads *New programming jargon you coined?* ... You didn't coin it, nor is it new.
dreamlax
@dreamlax actually now the title is just "Common Programming Jargon" included terms you heard.
AaronLS
like that method a coworker developed that when printed was 276 PAGES.
Mark Schultheiss
This has already been mentioned in several other answers and is definitely not new
Jazza
@AaronLS: Somebody edited the question title - it was changed back about a day later.
John K
sendmail's main function is over 2000 lines long.
stu
+124  A: 

At one company where I worked, we had a lot of food-related jargon, in-jokes, and backcronyms:

Programmer fuel - Mountain Dew, coffee, anything which gets you well-caffeinated.

I can't get started on Monday mornings until I've had my programmer fuel. (Synonyms: nerd fuel, geek chow.)

Hot potato / Hot potatoes - Http and Https repsectively. Same number of syllables, but more fun to say.

Submit all customer information through the authentication service at hot potatoes company-name.com/auth

[Noun] cake - depends on context, usually indicating an action related to the placeholder noun. Noun should be a single syllable for easy communication.

Marty's noob cake broke the build. (See also: noobery, noobage, noobular, works on my machine)

Juliet's serving ample amounts of bitch cake because everyone double and triple books her for meetings without checking her availability.

Banana banana banana - placeholder text indicating that documentation is in progress or yet to be completed. Mostly used because FxCop complains when a public function lacks documentation.

/// <summary>
/// banana banana banana
/// </summary>
public CustomerValidationResponse Validate(CustomerValidationRequest request, bool useStrictValidation, bool throwIfSessionExpired)

Chunky salsa - based on the chunky salsa rule, a single critical error or bug that renders an entire system unusable, especially in a production environment.

The whole system turned chunky salsa after Bob's change to the login screen locked everyone out of their accounts.

Juliet
In the world *I* live in, chunky salsa is a good thing.
Steve
Just so long as those chunky salsa bugs don't spew ludicrous gibs all over my computer, I'm good with it.
Chris Charabaruk
I remember reading the HTTP / Hot Potato thing in a HTML for Dummies book. Not the HTTPS version though.
Cesar
If you go to Properties > Build > Suppress warnings and put in 1591, you won't have to type banana banana banana anymore.
Kyralessa
+1 for "banana banana banana"... I ♥ Futurama
Mike Stone
Uh-oh, you linked to tvtropes from SO... you've just single-handedly wiped out 40 billion hours of programmer productivity worldwide!
Aaronaught
@Aaronaught: put me down for 2
Ty W
We use Coolite/ExtJS and find that the most convenient/hilarious placeholder icon is "Cake" (http://examples.coolite.com/Examples/Getting_Started/Introduction/Icon_Summary/images/icon_summary.png). It provides for excellent Portal-inspired placeholder text too. A useful aspect is that if we grep our code for "Cake", we'll get a list of unfinished corners of the app.
Kevin L.
+1 for hot potato(es)
Zsolt Török
Re. Programmer fuel, we used to say "green debugging fluid" (Mountain Dew) and "brown debugging fluid" (coffee).
Tim Lesher
I've always resented the implications of 'programmer fuel' - you can be a dedicated, driven coder without being a caffeine addict. and no, I'm not mormon. :]
matt lohkamp
+1 for the TVTropes reference.
Mason Wheeler
@matt - but why would you want to?
GalacticCowboy
+100 for Hot potato!
iamserious
again, +1 for hot potatoe
Johann Philipp Strathausen
+17  A: 

Ajah for Ajax when it is using HTML instead of XML.

Daniel Moura
http://microformats.org/wiki/rest/ahah
Breton
Surely therefore most AJAX is actually AJAJ (using JSON)?
stusmith
or ahaj if you use the microformats pattern.
Breton
doesn't the X in AJAX stand for XMLHTTPRequest?
Rob Fonseca-Ensor
Also refers to one of the sorceress factions of the White Tower in the Wheel of Time
RMorrisey
X in AJAX stands for XML...
Finbarr
@stusmith: Ahem, I think you mean **JAJA**. Javascript And JSON, Asynchronously.
DisgruntledGoat
=))))))))))))))
Andrei Rinea
+184  A: 

Hindenbug

A catastrophic data destroying bug - "Oh the humanity!"

Counterbug

A bug you present when presented with a bug caused by the person presenting the bug

Bloombug

A bug that accidentally generates money (just did this one)

Mike Robinson
+1 Brilliant. I wish I could upvote it a few more times.
bromfiets
On the same note, one I learned recently: **Heisenbug**, a bug that's difficult to reproduce or changes when you try to observe it.
jtbandes
We use Heisenbug a lot. It's particular useful for trying to debug race conditions; typically when you set a breakpoint in a race condition you alter the race and the bug doesn't show up!
apinstein
Bloombug reminds me of Office Space.
musicfreak
I like **Schrödingbug**, which is a problem that some people see when they look and others can't find at all. Often tied to the execution environment in a surprising way (or at cat).
Donal Fellows
We have a lot of Schrödingbugs...
Brian Knoblauch
Stop putting heisenbug on here - it's already been done in different answers
Mike Robinson
A Schroedinbug is **not** *"a problem that some people see when they look and others can't find at all."* It refers to a function/feature that appears to fluctuate between buggy and correct (like Schrödinger's cat fluctuating between alive and dead), until somebody looks at the source code (opens the box), at which point it becomes permanently bugged. It's a fun term but it's definitely not a new one.
Aaronaught
Although i'm ambivalent about the definition of Schroedinbug, In the original thought experiment, the cat does not fluctuate between two states, but is actually superposed, being in both states simultaneously, until someone opens the box and looks, at which point (and never sooner) the cat must choose between being dead or alive, with probability equal to the radioactive decay of some atomic nucleus elsewhere in the device.
TokenMacGuy
+1 for counterbug. I'm pretty sure I've done this before. :]
matt lohkamp
Where did the zeppelin photo go?
Joey Adams
How on earth... explain Bloombug to me please!
ZoFreX
@ZoFreX I accidentally rendered every ad twice on the page - they were layered on top of each other too, so you didn't notice. But twice the ads = twice the impressions. Tadah!
Mike Robinson
Similar to the schroedenbug, a fairybug is one that can only be seen by people who believe in it. (For example, some bugs only happen for certain IP addresses, due to server load balancing.)
Laurie Cheers
+16  A: 

Configuration Programming / Programmer - someone that says they are a programmer but only knows how to hack at configuration files of some other pieces of software configuration to make them do what they want. Apache config files are a good example. Being able to hack at a mod_rewrite config doesn't make you a programmer. Much like hacking at Spring/Hibernate/etc config files isn't programming either.

fuzzy lollipop
jQuery widgets...
Mike Robinson
That seems more like just a description of what they are rather than an actual term.
Jeff Davis
I think hacking at Spring config files is probably just as much of programming as any other sort of glue code...
kyoryu
I've picked it up here, but earlier today I used this term to describe a guy who does "programming" by searching for the appropriate parameter to specify, for an API call, for every problem he has.
bart
Heard of someone who's earning over $100K Australian a year this way... (not his fault - his workplace doesn't want people changing actual code for security reasons)
Andrew Grimm
+49  A: 

NAME_OF_MY_FORMER_BOSS-switch
Generally in hardware, a very impressive looking adjustable dial that isn't connected to anything but lets them feel that they are involved by giving them something to fiddle with - without any risk to the carefully calibrated instrument.

In software it would be a page of advanced configuration settings that don't do anything except make the software more 'enterprisey'

alt text

Martin Beckett
In my former life as an audio engineer, we had an unattached knob on the desk for precisely this purpose, when the client (read 'precious musician') wanted 'oh I don't know, just that little bit extra, that sort of oomph'.
johnc
We once removed a box from in the chassis, but left the switch on the front-plate because otherwise there'd have been a hole. We all knew we'd done it. And we found ourselves slipping into this crazy world where we'd go flip that switch when something was wrong and it seemed to help.
Will
An interesting read: http://www.retrologic.com/jargon/magic-story.html
Will
@johnc - I hope it went upto 11 !
Martin Beckett
@johnc, I've been in *both* sides of that position: sometimes both at once. :-(
staticsan
I added an image. hope it doesn't annoy original poster. This is kind of the opposite of the "Duck" mentioned in another answer.
Warren P
I think this was called the "producer's button" -- as in record producer -- in the Jargon File.
Zack
That kid looks a little psychotic
adam0101
@johnc: I know that one. We refer to it as "ghost slider" :)
back2dos
+7  A: 

Reclinacode

-To code in your recliner

Matt S.
Oh damn, I want one of those stands!
Daenyth
I have the feeling that chair wasn't mane for that guy. It looks like a double-wide with extra cheese.
Evan Plaice
+54  A: 

IRQed = annoyed by interruptions

Example: The phone IRQed me so much today I couldn't get anything done.

The distinction between "IRQed" and "irked" is subtle and only obvious in written form or by context.

Related: IRQload

Example: "The poor slob who runs the switchboard has an IRQload you wouldn't believe."

Stanislav
Depending on who is interrupting you, sometimes it's a **Non-Maskable Interrupt**.
Benoit Miller
I find this one the geekiest of all
Ubersoldat
i < 3 this one.
acidzombie24
+99  A: 

Megamoth

Stands for MEGA MOnolithic meTHod.
Often contained inside a God Object, and usually stretches over two screens in height.

Megamoths of greater size than 2k LOC have been sighted. Beware of the MEGAMOTH!

Zolomon
ooh. I have a few of those.
Jeff Davis
If in Python, over five screens in width.
rlb.usa
Project contains one file: main.cpp.
Nick Bedford
Two screens? That's highly optimistic. We have java classes with 3000+ lines of code, and the longest method is about 800 lines.And I'm secretly proud of it. :-)
G B
I've got C code with a single function over 8000 lines, with less than 1% of that comments. It's also the most `goto`-infested thing I've ever come across. (What's worse, it's functionaliy-critical, speed critical and it's stuck in a local minimum. Refactoring it is a bitch.)
Donal Fellows
@G B: Serial killers are proud of their work as well.
BlueRaja - Danny Pflughoeft
@nick: or better, project contains one file: test.cpp
UncleZeiv
I've seen one function that was nearly 40000 lines long. The source file was right around 1 megabyte. ...when I have to work on that file, I can never decide if I want to cry, scream, or just walk out. I haven't walked out yet, but I've at least done the screaming bit.
George
I saw megamothman and then a bridge collapsed. True story.
Will
only two screens!!!
Matt Joiner
Is this a Megamoth? http://pastebin.com/mJfwQyt8
Longpoke
LOL I once worked on one that when printed out was 276 PAGES (I did NOT write it and never understood 90 percent of it)
Mark Schultheiss
@Mark Schultheiss - You can bet the idiot that wrote it didn't understand 90 percent of it either.
Jim Leonardo
I saw a 29 page KeyDown handler written in VB the other day. You could see that it probably started as a repeated copy-paste procedure for simple handling of a few different keys, but it had steadily mutated over two years into a monstrosity of immense cyclomatic complexity, including embedded validation logic and UI updates (copied and pasted, naturally).
Dan Bryant
use #regions to hide the problem...
code4life
I took over support for an app that had one method which issued, endorsed, renewed, and cancelled insurance policies. Yeah, that was the first thing to go.
Peter LaComb Jr.
.NET, 30,000 line class.
Joshua
I've seen C code with *if expressions* that were taller than my monitor.
Zack
I've seen a core server function preceded by a warning that the compiler _would_ choke if the function was expanded past 32768 lines. It was fairly obvious that this was an emperical observation.
MSalters
@rlb.usa: ... _width_? O.O
FeepingCreature
Hah, and I thought the 2500 line "init" function in one of the projects I worked on which was making me want to poke my eyes out was bad ... now I see there is worse... much much worse.. :-)
Nico
+944  A: 

"Yoda Conditions"— using if(constant == variable) instead of if(variable == constant), like if(4 == foo). Because it's like saying "if blue is the sky" or "if tall is the man".

Thanks to dreamlax for helping me find that.

if (5 == count)

Trillian suggested the following during an IM conversation:

Here's a dirty but portable trick you can use to force a compile-time error:

struct not_a_bool {};
template<typename T>
not_a_bool ERROR_CONDITIONAL_EXPRESSION_IS_NOT_BOOL(T value) { return not_a_bool(); }
bool ERROR_CONDITIONAL_EXPRESSION_IS_NOT_BOOL(bool value) { return value; }
#define if(x) if(::ERROR_CONDITIONAL_EXPRESSION_IS_NOT_BOOL(x))
#define while(x) while(::ERROR_CONDITIONAL_EXPRESSION_IS_NOT_BOOL(x))

This will cause Visual Studio to emit the following error:

error C2451: conditional expression of type 'not_a_bool' is illegal

While GCC will emit:

error: could not convert ‘ERROR_CONDITIONAL_EXPRESSION_IS_NOT_BOOL [with T = int]((lhs <unknown operator> 1))’ to ‘bool’

It doesn't work with for loops, but equality testing in for loops is less frequent.

zneak
+1 Very original and applicable. Sums up a common programming scenario quite succinctly.
John K
This is actually quite a common idiom on languages that use == and =. If you put a constant on the LHS of the expression the compiler will generate an error if you use = accidentally rather than == for equality checking. Quite a few C or C++ programming types actually recommend doing this, and the principle would apply to C# or Java as well.
ConcernedOfTunbridgeWells
... I've read books which actually suggest this, since - in some languages - an assignment statement can be used as a condition. So if you're in the habit of writing `(4==$foo)` when the day comes that you bugger up and write `(4=foo)` you'll get an error message telling you what you messed up. Nonetheless, I don't do that :P
LeguRi
We know it's a common idiom. Things can be common and still be really annoying.
Kyralessa
Isn't "Yoda Programming" where you never handle exceptions? Because, you know, there is no "try".
Michael Myers
@ConcernedOfTunbridgeWells: It isn't necessary to do Yoda Conditions in C#. If you leave out an equal sign in an if statement, it won't evaluate to a boolean.
aaaa bbbb
Upvote you I did.
dreamlax
@ConcernedOfTunbridgeWells: We all know _why_ this idiom arose. In civilised climes, we have compiler warnings to help us avoid this mistake, rather than subjecting every reader of our code for ever more to this Yoda-speak. (`gcc -Wall`: warning: suggest parentheses around assignment used as truth value)
John Marshall
Nick Bedford
In Java some people speak Yoda: if( "John".equals(name)) instead of if( name.equals("John")) . I understand the purpose (to protect from NPE if name is null), and have used this idiom sometimes, but I hate it nevertheless.
leonbloy
@leonbloy: I think it's better to deal with the problem at its source than to sweep it under the rug with convolutions like: if("John".equals(name)).
bitc
We'd all be speaking like that if saying "the sky is black" with a different accent could cause an eclipse.
Jurily
BiYoda condition for "reentrant comments" feature is `if(3==4)`, beacuse `/*` and `*/` suck :-D.
Notinlist
A project I worked on had someone that made Yoda comments all the time. They were for places in the code where things were very complex or needed to change at some future date. /* Crappy this is. Fix it you must! */ and /* Confused you will be. Seek BLK-SHLS-CALC-DESCR.txt you do. Help you it will. */ Appreciate it I did.
sal
@bitc - Its not always a "problem" for a var to be null, and this approach deals with the null check nicely.
jsight
One of the most annoying variations on this I've seen is if ( false == someBooleanVar ) . It's not only annoying in many cases it's harder to understand.
Arnshea
This is the recommended convention in junit tests, which is probably how it gets into other code, particularly in java. Junit assertions are supposed to look like: assertEquals(expectedValue, testValue)
RMorrisey
A pet peeve of mine, this is.
Alterlife
@aaa bbb: actually, it will. You get a compiler warning though. bool a; if (a = true) Console.WriteLine(a);
Jeroen Pluimers
in C# you can't do: int a; if(a = 1) Console.WriteLine(a);
Bryan
@John Marshall - Yes, but it's also arguably more readable. if(null != someLongExpression), you see immediately it's a not-null check while if(someLongExpression != null), you need to read more.
Robert Fraser
@Robert Fraser: Yes, *arguably* is the key word there. How often is it more useful to know it's a not-null check without caring about what is null?
dreamlax
@dreemlax - You see both, the question is which one you see first when reading the code. I find the reversed form easier for null checks (maybe just because I got used to it in C)
Robert Fraser
@Robert Fraser: Yes, but my point is, how useful is it to know it is null-check before knowing what could be null?
dreamlax
Reminds me of the possibility of "Yoda assignments" in R: `some.value -> some.variable`
Florian Jenn
@Florian Jehn: that's also how work many programmable calculators.
zneak
@Jeroen: In JavaScript this concept mostly I see and compiled that is not.
JBRWilkinson
This is not a problem for Java--it was designed to avoid stupid mistakes rather than force people to come up with stupid ways to work around them. If(a = 20) fails since assigning within an if statement would be a confusing thing to do in the first place--and yes I'm aware of some of the "Neat" one-liners you can pull with assignment within an if, but java will compile good code if it's one line or not, so there is no longer any reason to have confusing, error-prone code.
Bill K
It's not so much the Yoda Condition per se. It's how people keep defending it as "being better code" when not it is, clearly. I called it "mental speedbump" before, but Yoda Condition is great.
DevSolar
+1 for the picture.
Reshure
+1 fore pic and comments!
lak-b
Actually that's not how Yoda speaks. Yoda appears to mimic Japanese grammar by placing the verb in the end. "In grave danger you are.", for example.
Dave Van den Eynde
I love this one."Check the condition, you must!"
alexander.biskop
I just can't bring myself to type this `if(null != someObject)`
dotjoe
@Dave Van den Eynde: There are many languages that naturally place verbs at the end. Placing the verb at the end is called Subject-Object-Verb or Object-Subject-Verb. Japanese is usually SOV, but Yoda appears to follow OSV, especially if the given quote is the example (*"grave danger"* object, *"you"* subject, *"are"* verb).
dreamlax
@dreamlax: True you are, but with the Knights of the Jedi and their lightsabers, George Lucas' interest in Japanese culture hard to see it's not.
Dave Van den Eynde
so want to do +111 on this one :D
Perica Zivkovic
I pity the poor "Yoda Conditions" programmer that has to compare two variables. Oh noes, "if (x == y)", nothing can help me prevent accidental assignment in an if statement anymore! There are good ways to avoid accidental assignments (compiler warnings, code reviews, unit tests, code coverage), and writing your code backwards isn't one of them. Even more annoying is: "if (3 <= x)", no chance for the bug but they still persist writing it backwards.
Jon
this even worth: `if (0 < x)`... you can see this in microsoft's video: http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx
stacker
Since this question is locked I've decided to select the "correct" answer as not only the one with the most votes, but the one I also think has the best chance of being spread.
John K
Yoda condition necessary is, because C++ shortcomings has. Yoda condition is used to bend the C++ compiler into emitting an error if you forget an = sign: if (2 = x)illegal is, whileif (x = 2)a legal statement is, but not certainly what you mean.Java wiped this clear allowing a boolean between brackets, rather than an expression. The sintax is strong with this language and Yoda programming is for those who do not perceive the change in the force
mico
I prefer Yoda conditions in my C++ code, because I've been bitten my a missing "=" way too many times in a gigantic code base that does not compile without warnings. But I love the name.
Rodyland
Loved it so hard (mainly because of Yoda, I guess), that I think I'm finally going to start writing this way.
XLR3204S
Even worse than `if (constant == variable)` is `if (constant == nonLHSExpression())`. I hate it!
Pumbaa80
This is not Yoda speak. Yoda speaks in Object Subject Verb order. So Yoda would say "(5 count ==)" not "(5 == count)". It would be more accurate to call this Klingon speak, as that is the order they use.
@user102008: It's supposed to be a humorous term, not an accurate term.
dreamlax
+91  A: 

apt-got and wgot for files installed using apt-get or downloaded using wget.

"I apt-got 100MB of updates this morning"

 

"Once this loop has wgot that file, it takes the md5 hash"

Rich Bradshaw
I think you mean "has wgotten". :)
JimN
Good point! I've been saying it wrong for all these years! :)
Rich Bradshaw
How does one pronounce wgot? "Wigot"? "We-got"?
Alex
I always say double-you-get, so double-you-got.
Rich Bradshaw
+1 for declining tool names!
sum1stolemyname
Am I the only one who says "apt-getted" or "wgetted"?
rascher
@rascher: yes..
Mark
If a package is apt-gotten, then are its children apt-begotten?
Jon Purdy
Just don't use that verb with time travel http://pages.cs.wisc.edu/~param/quotes/guide.html willan on-wgotten FTW
KitsuneYMG
I use this all the time!
Ken Bloom
Reminds me of people’s use of “dugg” to mean “posted on Digg”.
Timwi
@sum1stolemyname: for verbs, it's conjugate, not decline.
siride
+6  A: 

Trojan Horse ESB: for an enterprise service bus that really hosts a whole bunch of bilateral connections.

The idea with these service buses is to reduce n^2 system connections to n, by putting a neutral layer in the middle. Unfortunately, most business don't have the stamina or discipline to do it properly, so they feed system specific crap through, and end up with a much more expensive version of whatever they were already doing with point to point connections.

alt text

xcut
A: 

PAIN - Plan All Incremental Needs - it will change and will need to be maintained - ease your PAIN. Documentation goes a long way in this regard. Document what you do like you will have to maintain and enhance it and ease your pain and that of others. What is YOUR pain level? If you don't document it, it does not exist. (HOW you ease your pain is up to you). How many times have you written some "quicky code" that still existed years later? Was it a PAIN to maintain?

Mark Schultheiss
+13  A: 

IOP - "Insistment" Oriented Programming

It happens when the developer keeps compiling a program (or changing a script) over an over, after really small modifications (like a single line or a single variable), and runs the program to see if the modification works instead of trying to really understand the problem to fix it.

GmonC
I sometimes do that when trying to figure out whether to use min() or max(), +1 or -1, sin() or cos(), etc. :P
Bart van Heukelom
I am pretty sure that is a valid debug technique.
Jeff Davis
Lazy debugging, for sure.
rlb.usa
F5 is the new CTRL+S.
Nick Bedford
@Jeff unfortunately I have seen people do this who didn't want to take the time to understand the program they were debugging, and they only managed to hide the bug and cause more bugs because they didn't know what it was they were actually changing.
AaronLS
@AaronLS: Yep. They keep "insisting" in modifications until the code section "magically" works and they stop programming.
GmonC
Can work if you make stupid makes like capitalization on vars, and such. I used it to good effect in PHP.
DeadMG
@AaronLS: If I know only 4 values are "valid" and only 1 produces working code, it is often faster and easier to try all possible values than to read the sources of 3rd party libraries 4 abstraction levels deep or spend hours on Google searching docs for this one half-documented parameter.
SF.
This is also referred to as "trial-and-horror".
JesperE
@SF That's exactly what I'm talking about. If you're not sure the functionality of that value, other than it makes one bug disappear, you can't be certain of what other side effects it might be introducing, which might not be apparent initially until later in production when the right scenario is present for that parameter value to apply, which presents itself as a new bug.
AaronLS
Another way to look at it is that it's bogoprogramming.
CPerkins
I'm afraid this is something I have done before. Not often though, and not lately.
Jack Leow
It is funny the way you described it...but yeah I have used it...
VoodooChild
Nice naming - I've been calling this one Brownian Debugging (after Brownian motion in a gas - basically a random walk of minor alterations).
Kim Reece
+70  A: 

svn vomit
I usually alias the 'svn commit' command to simply 'vomit'... Reminds me of teammates who messed up repositories by committing files anywhere...

Macmade
"svn ci" is less keystrokes though :P
Harold1983-
There's also `svn blame` for seeing who commited what rubbish. Though they also have a proper command `svn annotate` which does exactly the same thing.
staticsan
@staticsan And svn praise for seeing who commited that genius solution.
bjarkef
svn is a constant source of PC LOAD LETTER moments.
Aiden Bell
+10  A: 

String typed

Referring to a code module or framework that only uses strings in its interfaces even though it is implemented in a OO language and handles things that have obvious benefits of using classes (such as IP addresses, cars, references to other object, etc).

Borken

A misspelled check in comment "Fixed a borken merge" is now standard jargon for small faults.

Line Programing

For code that is written like the worlds longest Pascal program despite the OO language, everything in one method, with random flow control and error handling. The nightmare case of this in our office is a 9k lines Java class with 5 methods containing regions of some hundred lines copy pasted all over it.

Rickard von Essen
RE: borken--this? http://www.catb.org/jargon/html/B/borken.html
outis
Wow, about Line Programming, your scenario sounds like a complete procedural program stuck in an object wrapper for the helluvit. Impressive indeed.
John K
@outis Oh haven't seen that. We also realized the one of our (seldom) used servers where named borken.
Rickard von Essen
@jdk Yes it was impressive to see, I was amazed that it actually worked in a few cases. They must have spent months on that.
Rickard von Essen
Bork bork bork!
Erik Forbes
"Borken" has been around forever. I usually spell it "b0rken", though.
Daniel Pryden
I usually use the form 'borked'
KitsuneYMG
b0rk3n B-) sounds cool.
Andrei Rinea
+10  A: 

Not a specific term, but where I used to work, we always used ColdFusion as a sort of placeholder for some technology/language that's esoteric, out of date, not mainstream, etc.

We also used Atari Jaguar Emulator as a placeholder for a futile personal project that someone would work on instead of something more mainstream that would provide actual value to society/customers/etc.

Also, we used Dreamcast Browser as a general term for an obscure browser in discussions about whether to support one feature or another.

mgroves
Robert Fraser
I tend to use **toaster** to refer to weird machines/browsers "no one" uses but force us to act specially to support them. Oh, and for IE6 too.
Martinho Fernandes
+3  A: 

Shenanigans
When a bug is reported that isn't actually a bug.

Shane Fulmer
Also the name of a restaurant with goofy $h1t on the walls...
Redbeard 0x0A
This is just a word. Here is the def. for you: http://www.merriam-webster.com/dictionary/shenanigans
Hogan
Many of the responses to this question are just words.
Shane Fulmer
We have a term "ghost", and "ghost-busting" - when a bug is reported, we spend several hours hunting it before we come to conclusion that it's not actually a bug, and that application is working properly.
Ivan Vrtarić
+1  A: 

Commify merge a list of terms using commas.

So if the input is ["A", "B", "C"] the output is "A,B,C". I won't claim to have coined the term, but never heard of it until I joined this team.. and actually found it used as a method name.

DSV Dot-Separated-Values, a format similar to Comma-Separated-Values; I'll leave you to guess the difference. e.g.: Model.Child.Grandchild.And.So.On.Till.ALeaf !

FOR
I've sen the term used for adding commas to a number every 3 digits to make it more readable, for example 10 million becomes 10,000,000
bart
+273  A: 

Stringly Typed

A riff on strongly typed. Used to describe an implementation that needlessly relies on strings when programmer & refactor friendly options are available.

For example:

  • Method parameters that take strings when other more appropriate types should be used
  • On the occasion that a string is required in a method call (e.g. network service), the string is then passed and used throughout the rest of the call graph without first converting it to a more suitable internal representation (e.g. parse it and create an enum, then you have strong typing throughout the rest of your codebase).
  • Message passing without using typed messages etc.

Excessively stringly typed code is usually a pain to understand and detonates at runtime with errors that the compiler would normally find.

Example:

Person 1: "Did you check out Jimmy's API?"

Person 2: "Yeah, what a mess. It's so hard to understand and it always fails at runtime in an obscure fashion because it's Stringly Typed from top to bottom."

alt text

Mark Simpson
P.s. this answer contains Jimmy which I independently used! (It seems Jimmy is used throughout the world to denote an incompetent developer :D)
Mark Simpson
I like this answer because it is not just terminology, but exemplifies a bad coding habit some people have. If you look at scientific progress, often the first step is giving a concept like "gravity" a name.
AaronLS
i coined this independently to describe tcl's type system :)
Martin DeMello
There is another more generic term for this in Fowler's Refactoring book - Primitive Obsession.
DamienG
@Martin: It'd be more accurate to say that Tcl values are all strictly interconvertible with their serializations.
Donal Fellows
+1 because I have a corker which tends to returns strings just about all the time (replacing both integers and bools)
Viktor Sehr
The cause of this is Unix' "everything is a file" and "hey, it's just text". Text interfaces at the surface are great (as Unix shows) but they aren't so hot once you are inside the program (as this answer shows).
jmucchiello
I call this "String Oriented Programming"!
Ricardo Nolde
Thanks for this! Perfectly describes the codebase I inherited. See also String Driven Development. ;)
thSoft
Please do not associate lolcats with my sterling contributions to SO :(((
Mark Simpson
Another example is when messages of exceptions are tested in the unit tests instead of subclassing Exception! Also, bonus points if there are no constants, just replicated string literals.
thSoft
Yes, more string literals everywhere, please. It helps keep things robust.
Mark Simpson
Beautiful. I will be using this.
j_random_hacker
+1 for the cat picture...ok and the answer itself ;)
Adam Neal
I remember a friend I had who used strings and numbers exclusively - no booleans even, just "yes" and "no".
Wallacoloo
And using SQL doesn't help.
zaratustra
I bitch about this ALL THE TIME. I think most of my peers are tired of hearing about it, but now that I have a term for it, they can hear about it again! Bravo.
Jason
I'm trying to come up with a String Theory joke, but I'm not funny.
Liam
This has escaped into the wild. Spotted it in several different tech blogs in the last month.
Jason
May it run free and frolic on the internets :D
Mark Simpson
-1 for being unoriginal. That's a serious programming paradigm, just ask any PHP developer. ;)
Evan Plaice
+2  A: 

Ideal Environment Development

Writing your core code to the exact ideal dependencies that you wished existed. Used to keep the integration code separate from the core internal logic, and to promote the ability to swap dependencies.

Actually used to communicate the concept of "abstraction" to developers who do not understand the differences between abstraction, indirection, and generalization.

kyoryu
An IED in the computer world.
John K
+17  A: 

Silk-Pursing

Using some "blessed" terminology, technology or API to do something generally considered a bad idea, but give it the appearance of respectability. Generally done when the developer in question does not understand why the underlying practice is considered poor, or lacks the knowledge of how to avoid it.

Example: "Most uses of the Singleton pattern are just silk-pursing a global."

Example: "I know we're supposed to throw our own exceptions, and not the underlying ones, so we'll just wrap everything in a MyProductException."

kyoryu
I like this! Saying 'Singleton' is so much classier than 'Global Variable'
Brian King
Or "polishing a t---"
Warren P
+8  A: 

Snergle

A Snergle is a practice followed or advocated by a developer with little understanding of that practice, simply because the developer in question does not want to admit their lack of understanding. "If I don't understand it, it must be good. If I use it a lot, I'll sound smart."

The Snergle is an application of a practice, not the practice itself. Maybe applications of design patterns are in fact snergles, but this does not mean that all applications of design patterns are snergles.

Snergles are different from Cargo Cults in that a Cargo Cult mistakenly believes it understands what it is doing. A Snergle is the result of someone that knows they do not understand the concept, and assumes that means it must have value.

Example: "Why in the world do we have a StringFactory class that takes a string as a parameter? Someone must have been snergling hard."

kyoryu
There are too many terms for this.
Jeff Davis
@Jeff Davis: Such as? I'm seriously curious. I usually use it in a kind of "Emperor's new clothes" way - but with the person not only pretending that the Emperor's new clothes are great, but that in fact he believes that the Emperor actually *has* clothes, and he doesn't want to admit that he can't see them...
kyoryu
Cargo cult programming is one...
RCIX
Who can forget "Have you tried JavaScript?": http://thedailywtf.com/Articles/Straight_Shooter_for_Upper_Management.aspx
Kevin L.
A slight variant is when the programmer thinks they understand the practice, but completely misapplies it.
AaronLS
+396  A: 

A Duck

A feature added for no other reason than to draw management attention and be removed, thus avoiding unnecessary changes in other aspects of the product.

I don't know if I actually invented this term or not, but I am certainly not the originator of the story that spawned it.

This started as a piece of Interplay corporate lore. It was well known that producers (a game industry position, roughly equivalent to PMs) had to make a change to everything that was done. The assumption was that subconsciously they felt that if they didn't, they weren't adding value.

The artist working on the queen animations for Battle Chess was aware of this tendency, and came up with an innovative solution. He did the animations for the queen the way that he felt would be best, with one addition: he gave the queen a pet duck. He animated this duck through all of the queen's animations, had it flapping around the corners. He also took great care to make sure that it never overlapped the "actual" animation.

Eventually, it came time for the producer to review the animation set for the queen. The producer sat down and watched all of the animations. When they were done, he turned to the artist and said, "that looks great. Just one thing - get rid of the duck."

kyoryu
+1, @kyoryu - good story, though doubt this jargon is useful in environments lacking the context.
bill weaver
http://www.dilbert.com/strips/comic/2007-02-02/
Kyralessa
Well told! I'm gonna use this on a future project. Also, it reminds me of the Cool Cam - http://thedailywtf.com/articles/the-cool-cam.aspx
Mike Robinson
I had a Brazilian friend tell me of a similar concept years ago, but in a business context. Farmers used to drive a sacrificial head of cattle into a river to test for/satisfy any piranha that were present. The business world co-opted the Portuguese word "Boi" (cattle) to describe a deliberately allowed mistake in a report so that critics would find it and hence take the heat off the rest of the work. However in being an engineer I find it hard to do such things!
Peter M
I saw a similar "duck" idea on The Daily WTF. There was a loop that did nothing for 10000000 or so iterations. It was there so when the coder wasn't able to produce anything that management would understand, they could remove a 0 from the iteration number and tell management that they found a place in the code that they optimized by an order of magnitude.
Dinah
@Dinah, that's called the ["speed up loop"](http://thedailywtf.com/Articles/The-Speedup-Loop.aspx).
Alex
The only problem here is if management sees the "Duck" and says it looks fine.
MiffTheFox
@MiffTheFox or worse ""that looks great. Just one thing - get rid of the queen."
Robert
@MiffTheFox: I did this once. I put in placeholder voiceovers in a multimedia title, with the stupidest Monty-Python-esque voiceovers I could manage, so it would be obvious they needed replacing with the real thing. The clients loved them, and got me to go into a sound studio to record more.
whybird
@MiffTheFox: That is, of course, the danger. It's a fine line to tread between the duck being good enough that you're not *obviously* screwing with the Powers That Be, and good enough that there's a danger they'll keep the stupid thing.
kyoryu
Another note: this isn't unique to programming. When I used to work construction, many guys would leave obvious mistakes in their work so that when inspection time came, the inspector would feel satisfied with himself and leave them with something easy to fix. The rationale was that no matter how perfect everything was done, the inspector had to find *something* before they'd sign off.
TM
brilliant! Great for those occasions when dealing with people that genuinely don't feel they've been helpful unless they've suggested a change. Especially when their suggestions are mostly bad. Nits to pick for the purpose of protecting the software, lol.
Arnshea
An old colleague of mine from the army used to do that. Officers are worse than managers; and they can't leave anything untouched. He used to add spelling errors all over the place to keep them all occupied...
Kobi
Funny, I reverse-engineered old Interplay games on 3DO once, and the ISO was full of "IAMADUCK" string, repeated for padding. I think it's something 3DO's iso generator does, I'm not sure if it's on other 3DO games or only on Interplay's.
gilm
Reminds me of the Admiral's Pipe: http://blogs.msdn.com/brada/archive/2005/05/12/417064.aspx
Ed Brannin
What's the term used for an imperfection deliberately introduced into a middle-eastern carpet/rug?
Andrew Grimm
Also known as a "red herring". A bait to throw the hound off the trail.
Tormod
That's great! So was Battle Chess.
Mike Pateras
The duck is also previously known as "The gorilla hand" - http://everything2.com/title/the+gorilla+hand
Anthony
This was a very common practice for some designers I've worked with: almost universally, clients who worked in marketing/advertising [usually incorrectly] considered themselves designers. Leaving one glaring note (bad font, border color, etc.) usually allowed those people to pat themselves on the back without actually delaying the project.
Chris Adams
+8  A: 

In our DOS app in 1981 we coined the phrase interstitial programming to mean pre-processing while waiting for the user to make a choice. Interstitial is a medical term meaning between closely spaced. We would guess which F-keys the user was most likely to select in any given circumstances and preprocess some of the responses.

Jerry Rubin
Sounds like branch prediction.
JimN
It doesn't mean closely spaced, it comes from interstices or 'places in-between'.
Pete Kirkham
In (computer) chess, this is referred to as Pondering. I've used it in this context in the past :)
Thorarin
+151  A: 

I've started Loch Ness Monster bug for anything not reproducible / only sighted by one person. I'm hearing a lot of people in the office say it now..

russau
Is that related to the legendary Bugfoot?
Iceman
Lol - I have a user like that, and she's kind of a monster. Works out pretty well imho.
tsilb
I'm going to create a "bug" and remove it just so I can say that
KThompson
Oh, we had a QA guy called Steve. He opened bugs only he has seen and cannot be reproduced. We used the "It's a Steve bug" with a hand gesture for drunk *hic*
gilm
"WHAT YOU WANT, BUG?" "Oh, bout tree fiddy."
Will
Wouldn't "Nessiebug" sound better?
peterchen
+39  A: 

Most of mine can't be shared in polite company, but I started using the term

Swiss army software

about 15 years ago to describe projects suffering from feature creep.

Bruce McGee
LOL - Me too, but I used it as a metaphor when telling users why I wasn't going to add their latest "great" idea as a feature. A swiss army knife is adequate as a corkscrew, it's a poor screwdriver, nearly useless as a saw, and let's face it, it's not even a good knife. The scisors are handy though...
Chris Thornton
I use the same name for describing a handy, personal app or lib I frequently use to make buggy software actually work or at least debug. Or would that be considered McGuivering?
bob-the-destroyer
Definitely MacGyvering
Bruce McGee
+8  A: 

User error - replace and retry.

Started using this when I had to help tech support track down issues. Make sure they aren't on speaker phone when you use it.

Bruce McGee
+1  A: 

Not mine, but still a very funny Easter egg. EProgrammerNotFound exception in Delphi.

Bruce McGee
+154  A: 

Workaroundability (by co-worker)
That's the feeling when already hacked approach still can or can't be hacked further.

Fear Driven Development
When project management adds more pressure (fires someone or something).
alt text

Arnis L.
The important part of this game is the part where you define the term.
Dolph
@Dolph fixed that issue. :)
Arnis L.
+ for FDD - this also comes around when mgmt informs you that the viability of your job is directly linked to the success of a failing project
bedwyr
Prayer Driven Development is closely related to FDD, by the way.
Erik van Brakel
+ for FDD: I once had a boss threaten to fire every one of my coworkers if I didn't meet a deadline that he pulled out of the air without regard to the state of the 15 new features he added the week before. I hacked together a working build then quit the next Monday.
jessecurry
@JesseC That is terrible!
Mark C
+11  A: 

I.D. 10-T error

i kept hearing this at a review meeting a month ago. its kinda funny - i did not realize what it meant til a peer told me to write it down (just take out the all periods and dashes.)

it's self-explanatory i guess. :)

javacruiser
I was trying to sound it out like an idiot to no avail. Then after spelling it out like you said I realized I just made one!
John K
The ID10T is common jargon in the military, usually when somebody new to the military shows up, their first day is going around trying to figure out where to get the ID10T form to fill out...
Redbeard 0x0A
Thanks for heads up Redbeard... ;P
Nick Bedford
Yeah I heard this alot when I was in the Army.
John Isaacks
Clearly, you didn't invent it (which is what the question asks.)
whybird
Sounds like a chair-keyboard interface failure, to me.
Will
An old helpdesk app I used years ago had a nifty resolution option for a ticket: 10 USER ERROR. Seriously. We used it, too. There's also PEBCAK. Problem Exists Between Chair And Keyboard. This one works out loud a bit better than ID 10 T.
staticsan
+18  A: 

wibni - wouldn't it be nice if. A "nice to have" feature only more fun to say.

rebugging - The opposite of debugging. The act of adding a feature. Normal development adds features, adding features adds bugs hence rebugging

charlieb
wow, I've never heard anyone else use wibni. I heard it first at Campbell Software in the mid 90's
Mike Two
It's in the Jargon File.
Tim Pietzcker
Same logic, initial coding is known as bugging
johnc
I've heard the former but usually with the f added too. Separate changes into enhancements, bugs and wibnifs.
Wysawyg
+220  A: 

Heisenbug - can't take credit for this, but it is awesome!

A computer bug that disappears or alters its characteristics when an attempt is made to study it.

alt text

Jacob
I've seen (or not) a few (or many) of those.
Jeff Davis
Almost always cased by stack corruption errors (and that is most often because of a bad pointer initialization or `free()` on something that is not a pointer.).
Hogan
I once had to hunt a memory corruption bug that disappeared when -- and only when -- I ran under valgrind. This term would have been very handy.
Beta
These have plagued me with .NET remoting not playing nicely after being interrupted by hibernation in the real world but doing just fine with VMs going up and down.
Dinah
Everyone who took C filesystems class at my school ran into this over and over, when forgetting to put \n on a printf statement. Then adding another printf statement later in the code to debug, which has a \n, and flushes the buffer, causing the appearance that a ton of code suddenly started working, when it really had been before but not printing.
Nick Lewis
Like the nasty race-conditions that seems to evaporate when you turn the logging on...
daramarak
I once had a bug of this variety due to SQL Server's query optimization: in the SELECT portion of the query, there was an operation being performed that was illegal for some of the rows in a given table. These rows weren't supposed to be returned from the query, but after much frustrating searching I realized that the optimizer must've been pre-processing the SELECT portion of the query for likely results before finding out for sure whether a given row was actually going to be output... and hence crashing on these bad rows when it thought they should be a part of the result. Yikes.
EdgarVerona
Anyone who has dabbled in lock-free or low-lock programming has found a whole new world just teeming with Heisenbugs.
Eloff
I've had Heisenbugs man times with Javascript, mainly when the bug involves `focus` and `blur` events...
Francisco
I had one function returning bool missing the return statement, but the last value used was the one that should have been returned. The code did run fine under the debugger, but failed when not run outside the debugger. Of course, missing return statment is UB, but it was very misleading.
piotr
i hated these! it happen for me in c/c++.
acidzombie24
Hah, I like this one.
Rei Miyasaka
Had a system bug like this. Had to reboot after each run. HP-1000 system. The worst software I've ever seen.
Dave
I had them in a C++ assert, when I accidentially put a neccessary `i++` inside it.
FUZxxl
+44  A: 

Code Slush

for the date after which no changes will be accepted, except, of course, all the changes that management will ask for at the last minute. Like Code Freeze but accepting of the fact that some changes will still get in.

Memo to developers, Code Slush is March 31 so get your fixes in.

David Zimmerman
I've used this one at a previous job. Code checkins were still possible, but only for serious bug fixes and they'd get a heightened level of scrutiny.
Mark Ransom
Used /consistently/ at Corel when I was there (late 90s). After beta and before code freeze...variable-level bug bar triage.
Jedidja
+1  A: 

Rear End

The part of the program that comes before the back-end. For 4-tier process, store, access/logic, display architectures.

Robert Davis
Fail. Rear == Back.
Jeff Davis
Sounds like a Rear Echelon -- -- (American military slang).
Paul Nathan
@jeff: I disagree. A rear end is a back side, not a back end. That would be a rear side, obviously.
Kaz Dragon
+31  A: 

cut and waste code

When someone uses cut and paste code they found online (usually from a blog) in a production product, the result is usually a lot of wasted time trying to track down an obscure bug from a line or variable that undoubtedly made sense in the original context but not in our code.

Typical conversation:
"What did you do today?"
"I spent all day debugging cut and waste code."

Dinah
Cut and paste followed by obscenities, haha. Did this two days ago.
rlb.usa
+113  A: 

Hooker Code - Code that is problematic and causes application instability (application "goes down" often).

Example:

Did the site go down again? Yeah, Jim must still have some hooker code in there.

NullPointerException
fracking Jimmy!
Eric Johnson
Goes down often ! Excellent funny sir!
Mark
a.k.a. Yo Momma Code
kibibu
And they say programming is male-dominated.
dclowd9901
+1 for making me laugh
Bloodsplatter
-1 for slut-shaming.
Zack
+1 for not giving into the PC morons.
Anonymous Type
+1 for use of muppet image.
Adam
+2  A: 

AEG - Ausschalten, Einschalten, Gehen, which is German for Switch off, Switch On, Go.

Usage: "I've justen driven 2 hours for a stupid AEG".

Loy
AEG is producer of electrical equipment, see (http://en.wikipedia.org/wiki/AEG). I have heard it as Ausschalten, Einschalten, Geht nicht which is switch off, switch on, doesn't work.
bromfiets
This wasn't explained well enough. I have no idea what it means.
JimN
I think it means that a tech support person drives 2 hours to a customer to solve a problem. On arrival he or she switches the allegedly faulty device off, back on, and leaves because it's working again.
bromfiets
Sorry, but what Bromfiets explained is exactly what I meant.
Loy
I only know AEG as "auspacken, einschalten, geht nicht", which means "unwrap, switch on, doesn't work", i.e. DOA "dead on arrival"
Ozan
Or as "auspacken, einschalten, Gutschrift", which means "unwrap, switch on, refund".
Filburt
Please keep still and only watchen astaunished the blinkenlights.
Andrew Grimm
+111  A: 

Ninja Comments - I did not coin this term but I am sure every one agrees

explanation : Ninja comments (or no comments)

-Edited to put some real comments as my Ninja comments were not enough

schar
What does it mean? :O
Jeff Davis
The code I inherited has Ninja Comments. (a geeky way of saying no comments)
schar
Oh. I thought maybe they were sharp and rebellious.
Jeff Davis
You have a high respect for Ninjas :-) . I just think they are invisible.
schar
I like this one. I like it a lot.
Paul Nathan
When I saw "Ninja Comments", I would have thought of hidden or buried comments, rather than non-existent ones. Maybe class doc information at the end of a classfile?
RMorrisey
`//` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `
TokenMacGuy
@TokenMacGuy exactly
schar
How about Zen comments?
Myster
There are 21 ninjas hiding in the following image: Can you spot them?
thSoft
NINJA Is Not Just Air: http://www.thinkgeek.com/homeoffice/supplies/7076/
JBRWilkinson
+16  A: 

Impediphile - Someone who codes in such a manner as to constantly cause impediments to others work. Coined by someone at my office, not me.

Seth
Ohhhh, nice. But could also mean one who loves impediments.
Charlie Flowers
@Charlie Indeed. A better term would be "impedigen".
CPerkins
+8  A: 

De-demoscene. Refactoring code written by someone who thinks it's hilarious to have obscure or one-letter variable names throughout his code, even in public interfaces.

knight666
I like that java lets mu use '$', '_', and just about any unicode character as an identifier. `$(_,$,_(),ſ(ſ))` FTW
KitsuneYMG
It's fun trying to write down a set of rules for exactly when you *should* use single-letter, meaningless identifiers (the obvious example is of course loop indices, but there are a few other places where "meaningful" names just get in the way, but good luck trying to articulate what they all have in common)
Zack
+69  A: 

Try, Catch, Forget - An empty catch block, no tracing, not even a comment. No attempt to resolve the error and of course the catch block is not at all specific on the exception type.

Michael
Unfortunately there are people who think this is error handling and how it is supposed to be done.
AaronLS
Yep, I spend a lot of time fixing and finding these problems.
Michael
To be fair, some APIs encourage this by throwing bullshit exceptions.
wds
That can be true, I just log those or be very specific about the exception type I am catching.
Michael
I like to wrap main in a Try,Catch,Forget block. I find it fixes most bugs.
Joel
@wds especially the ones where a RETURN CODE would be great, thanks. Like VBA, I'm looking at you!
Nick Bedford
ON ERROR RESUME NEXT
Wedge
Another name for this mechanism is : swallow-all.You can see this here and there, especially in some demo code where the exception is just swallowed, and ignored on purpose.
Michael Mao
I haven't really written any production code, but I've used that "paradigm."
Wayne Werner
It is useful for when you want to do something only if it's possible. Consider if you only want to log certain error messages, keep them in a dictionary `logged_errors{type: [errors]}`, then you `try: logged_errors[type_of_error].append(error)` `except KeyError: pass`.
Wallacoloo
+5  A: 

I did not coin this one but have had some fun with it:

FM as in f***ing magic

FM is a name given to processes during early analysis and design where we know what must go in and what is supposed to come out but, as yet, have no idea of how the process is supposed to make such a transformation.

Once we had a trainer come into our shop to give a workshop on a particular design methodology. The trainer must have overheard us refering to FM quite a bit and decided to use it in the workshop as an example of a process that we might be working on. It really cracked us up - the trainer had no idea what it stood for.

NealB
We learned this one in electronics school because it's how an FM radio works, specifically the discriminator circuit. Yeah, I know its really frequency modulation.
Bratch
Hah, did I work with you? I remember hiding it from another co-worker who wasn't f-bomb friendly by calling it the 'Functional Manager'.
Brian King
+3  A: 

SQL.

Some people pronounce it "es-que-ell", for others it's "sea-quell". I like SQUEAL.

mmacaulay
It was originally called SEQUEL, the Structured English Query Language.
Kragen Javier Sitaker
SQL Server Express Edition (SQLEE) - squeely.
Bratch
+14  A: 

GUI-Licious: Software designed to feature a plentiful (and sometimes unnecessary) amount of graphics in order to subsitute form for function in an user experience. "I added 20 modal dialog boxes because I felt like it would make it look more like a real Microsoft program.

Black Magic Hacks: To use a seemingly inapplicable algorithm or otherwise out of the box method to design a solution that uniquely and effectively solves a problem. "I used the postfix-infix algorithm to create hierarchal XML parser! It was total black magic hacks

Dropping Algorithmic Bombs: To design a program using arcane or esoteric algorithms to great effect. I dropped serious algorithmic bombs when I used A Star to calculate Nash Equilibrium

Total Hack Job: A quickly-written program that substituted quality for time to market/speed in delivery, performance, etc. I needed to submit a diff super-quickly, so I wrote a total hack job that's probably going to have race conditions up the wazoo.

Andy Manoske
I've heard all of these before... but they are good ones.
Hogan
Instead of Black Magic Hacks, I preffer Hax, or Haxes, as it's pretty close to hex (which is like a curse), and close enough to hack.
bug-a-lot
I use "Black Magic" to refer to anything touch Boost.MPL/Spirit/Statechart
KitsuneYMG
+14  A: 

Agent. I didn't actually invent it, Carl Grundstrom did. We were discussing what to call the little programs that were part of "Security Toolkit/UNIX" version 2.0, that would rattle around a UNIX system (remember UNIX?) and decide how securely it was configured. I said something about the program being a spy, and Carl jumped to Secret Agent, then Agent. This was early 1992, and I haven't seen any earlier references to agent-based computing, which is really common NOW.

Wexxor
+1 There's a nice piece of history.
John K
@Wexxor I thought this was something coined in AI programming, but I don't know for sure that it predates 1992.
AaronLS
I found a reference to *R. Milner. Processes: A Mathematical Model of Computing Agents. Colloquium in Mathematical logic, Bristol, England, North-Holland, 1973.* in a Carl Hewitt's 1977 paper on the actor model, in which he describes actors as a kind of software agent. So it was in use as to describe the theoretical concept much earlier. Earlier than that you really have to go to a university library and do a paper search.
Pete Kirkham
I just read in CACM that Robin Milner died in March.
Pete Kirkham
+5  A: 

Thankie or thanky. What you say to thank somebody who tried to, but didn't, help you. It's a polite alternative to "thanks for nothing".

Nerd 1: "Do you know where the foo class is checked in?"

Nerd 2: "I think it's under the bar directory."

Nerd 1: "No, I already checked there."

Nerd 2: "Then I don't know where it is."

Nerd 1: "Thanky."

landon9720
kthxbye........
Bratch
I want to use this now. Too bad I'm the one that keeps getting asked things. Maybe I should start replying to 'OK thanks anyway' to 'Welcy' , meaning 'Your welcome, but you wasted my time, when you could have looked it up yourself, you insensitive clod'.
glasnt
+1  A: 

procramming [proh-cram-ming] The process of preparing to clear a lab examination/internal by a student from Computer/Information Science Engineering by mugging up all the programs in the syllabus.

Yes. There is a university which lists programs in the syllabus, and procramming happens for real.

raghava
+2  A: 

These are not terms I coined and I'm a Network Engineer, but these are a few terms I enjoy almost daily.

JFFIO - pronounced Jiffy-O - acronym for 'Just F**cking Figure It Out'

Example: Engineer 1: I don't know what the previous engineer was trying to do here. It's working but I don't understand how. Engineer 2: I'm kind of busy right now, JFFIO.

Rodeo - to describe a network port or device that is bouncing up and down. Example: The link was solid, not taking any errors, and passing about 400 megs of traffic, then the splicers closed up the splice case and the link went all rodeo.

Bob Villa
+44  A: 

Object Oriented Pasta - Used to describe spaghetti code wrapped in classes to make it look like an object. Not mine, but a commonly used term at my office.

Festive - A bug causes a window or the entire screen to produce a visually stunning result.

PalmCoaster
OO Pasta is also referred to as "ravioli code" (http://c2.com/cgi-bin/wiki?RavioliCode)
Roger Lipscombe
Would that make the developer responsible for it a "Chef Boyardee"?
PalmCoaster
possibly also 'spaghetti and meatballs code', or maybe 'spaghetti with singletons' ?
JustJeff
@Roger Ravioli code is supposed to be a good thing - spaghetti ain't.
Konerak
"Ravioli Code" made me giggle helplessly.
DevSolar
On the "festive" side, a bug in a RayTracer I wrote resulted in it rendering spheres as penises.
ZoFreX
Messing with only slightly complex CSS often results in 'festive' results.
staticsan
*Festive* - we had one longer-living bug that was named "Picasso". Some years later, we surprised the new guys with "Picasso is back".
peterchen
+2  A: 

Functuality - Used when function != or match reality.

Was first used about 8-10 years ago when a PM stormed into the dev room enraged and complaining. Like all great myths, no one recalls exactly what was said, but it was something to the effect, "The functuality of this product sucks!". After the we humble devs quit laughing, it took on the meaning above.

To this day, I'm not sure if it was on purpose (33% sure) or the result of babbling (66% sure).

Edit:

ANSI bit-masking - The usage of a database, unique table and VCHAR field instead of an enumeration or bit fields.

True story, about 10 years ago we hired a programmer who was (admittedly) far more DBA than developer. During a code review, we found some code that referenced a DB and grabbed a string value from a table. After retrieving said data, a for loop was applied to determine if the character at position n, was either '_' or 'X'. Based on that finding certain logic was applied. When shown a bit-field in code the reply was "oh, didn't you know you could do that." To this day, it's battle cry when using sarcasm to find the most convoluted way to do something.

Edit 2:

SYFT - pronounced "sift". Stands for Synchronize Your F**k-off Time. Used in response management's attempts & desires to fill an iteration with meetings everyday instead of attempting to group them in a logical fashion at the iteration bookends. I've heard cough that some shops have meetings or other non development tasks nearly daily over an entire two week iteration instead of attempting to as many as possible to one day.

DevSolo
+14  A: 

Bucket Variable: a capacious variable, usually with a complex internal structure, that is used to hold everything. It makes argument lists much easier to write. It is passed around from function to function, sometimes by value even when it isn't modified, sometimes by reference even when the modifications shouldn't be saved. The things in it can be completely unrelated, used by different functions but accessible to all. And of course there are no safeguards to protect any of the fields, it's just all mixed up togezer in a bucket.

Beta
AKA the God variable....
RCIX
We call them gift baskets.
Warren P
Qt's QVariant is an excellent example of this.
iconiK
+65  A: 

Mortgage Code

Code purposely so terrible that only you can maintain it, forcing your employer to keep you; thus providing job security ( so you can pay your mortgage).

Someone did a web application in Mortgage Code : every page was returned as HTML built entirely by SQL queries.

rlb.usa
I didn't coin .
rlb.usa
More like Mortuary Code - you'll be stuck with the same crappy app for all time, **or** be victim to a drive-by shooting by the developer who had to take over after you left.
DevSolar
@jdk You're really on an image rampage aren't ya, buddy : P
rlb.usa
@rlb.usa: Indeed, inspired by this MSDN Blog post on the subject - http://blogs.msdn.com/cdndevs/archive/2010/05/09/new-programming-jargon.aspx
John K
@rlb.usa: Feel free to remove the image by rolling back the change or replace it, if you want; I'm just plopping in one-offs (to spice my question up to the level of the aforementioned blog post referencing it) and not insistent that anybody keep a pic.
John K
See http://www.userfriendly.org/cartoons/archives/10may/uf013911.gif
Marcus Lindblom
I used to call this Job Security.
ridecar2
I've heard this as Mortgage Driven Development
Jonny Cundall
+103  A: 

Rubberducking

Sometimes, you just have to talk a problem out. I used to go to my boss and talk about something and he'd listen and then I'd just answer my own question and walk out without him saying a thing.

I read about someone that put a rubber duck on their monitor so they could talk to it, so rubberducking is talking your way through a problem.

Databasically

"Hey, I'll put all of our customers into a Word document and then we can X." "No, we should do that database-ically so that we can keep that list up to date."

Yes, I named my company that.

wesgarrison
I think that you might have read the "rubberducking" thingy in "The Pragmatic Programmer" => http://www.pragprog.com/the-pragmatic-programmer . That's where I think I read it anyways :P
hdx
Yes! That's where it was. Thanks for the reminder.
wesgarrison
Great term! I've only actually submitted a handful of questions here. Far more often, I will get stumped, start writing a question, and figure out the answer myself as I'm trying to explain what the problem is. So, Stack Overflow is my Rubber Duckie!
mbmcavoy
Yep, typing it up makes you think of the stuff that other people would need to know and then one goes "oh, I could do this." and then you don't need to actually ask the question.
wesgarrison
@mbmcavoy I use SO the same way, sometimes don't have an answer for myself until I have submitted then the next second I do.
PeteT
http://compsci.ca/blog/rubber-ducks-help-best-with-computer-science/
Gary Willoughby
I think they actually considered calling SO "rubberduckie" but the domain name wasn't available.
wesgarrison
Hah, I had a coworker who used a plush bear besides his monitor.
Marcelo MD
+1 for rubberducking!
Damovisa
Rubberducking is from the Jargon files innit? +1
Florian Doyon
+1 for rubberducking I do it ALL the time lol
James
Bristol University has a teddy bear on a seat outside their helpdesk room, which is visible through the windows. It's mandatory to first state your problem to the bear before entering and asking a question. Not only does it force people to think enough to phrase the question well, but apparently a lot of them walk away with the answer without consulting anyone other than the stuffed bear.
ZoFreX
@ZoFreX that is Allan Turing's bear! that he talked to just like the OP talked to his duck. If you ever gaze upon this bear you must bow in honor of its limitless powers of reasoning and induction.
Rook
@mbmcavoy: I do that too! Sometimes I will even submit the question if I've nearly finished writing it. Most of the time someone replies before I even have a chance to type my own answer!
DisgruntledGoat
Round my place we call ask someone to "be my teddybear" in this context. Snuggling is optional.
Ben
We had a teddybear in my high school programming class that we were supposed to consult for code problems...
advs89
+1 for rubberducking ... i do that all the time but to all the little toys on my computer screen coming from my "kinder surprise" collection :) http://en.wikipedia.org/wiki/Kinder_Surprise
ChrisR
+5  A: 

Ajaxification
Using ajax to make something "cooler", fast and/or better. Not super original I'm sure. It's just quicker than saying "You should re-write that using ajax, no more giant page reloads". We (TeamBizStream) all know what we are talking about when saying it.

JQuerification
Along the same lines of Ajaxification.

These can both be used in the past tense as well. "I just ajaxified the !@#$ out of that code, it is rocking now"

mschmidt42
A: 

Kuzmich - code written just to get around a bug in a very specific situation enabled by the key in the settings.

KindDragon
+11  A: 

Flux Capacitate

When a piece of jargon is used to confuse someone who really has no business asking a particular question.

John McCollum
Kind of like incapacitate through confusion?
John K
Something like, "I'm sorry, you can't have that feature because the server's left reticulator won't be able to handle it." :)
John McCollum
And of course, the inspiration for this term: http://www.imdb.com/title/tt0088763/
John McCollum
+147  A: 

Baklava code

Code with too many layers.

alt text

John D. Cook
Most of these answers gave me a 'meh' response, but after this, I find myself giggling uncontrollably. Thanks!
Dean J
also known as "lasagna code" to keep with a common pasta-based theme...
Brian Postow
What @Dean J said...
MDRoz
baklava is made of phyllo dough
Big Endian
yummmiiiii... it makes it more tempting.
Andrei Rinea
I think "lasagna code" would refer to code with the right number of layers and Baklava would be too many layers.
Slapout
I am definitely going to use this one!
Johann Philipp Strathausen
Nice, I actually come from a country where this is a national dish!
Secko
I love real Baklava, just not Baklava code. :)
John D. Cook
+2  A: 

Implemications - the implications of an implementation. A true "Bushism".

Ben Mabey
+32  A: 

NP Tricky. Describes an algorithm whose complexity is too hard for a mere mortal to figure out.

NP Hilarious. Describes an algorithm whose complexity is "a joke", literally (as in BogoSort) or metaphorically.

Stephen C
I like "NP Hilarious" as an equivalent to "NP Complete": http://www.urbandictionary.com/define.php?term=Mentally%20Hilarious
Kevin L.
@Kevin L. Nice one .... but a better definition of "NP Hilarious" would be were some clown has coded an exponential algorithm for some problem that has an obvious polynomial time solution.
Stephen C
@Kevin L. Bogosort would be an excellent example of an "NP Hilarious" algorithm ;-)
Stephen C
@Stephen C Excellent example. I was not aware of Bogosort, nor had I ever seen O(∞) on Wikipedia. Awesome. http://en.wikipedia.org/wiki/Bogosort
Kevin L.
same here :) +1, bdw where did you learn about Bogosort?
Gollum
I like to use O(scary) for NP Hilarious :)
Juliet
I love how short the Python code for bogosort on Wikipedia is in comparison to the other languages used.
Wallacoloo
@Wallacoloo - Perl 6 is even shorter. And in "bogolang" I can write the program with just one character :-)
Stephen C
+88  A: 

Mad Girlfriend Bug

For when you see something strange happening, but it will just tell you everything is fine.

Jeduan Cornejo
When I write a bunch of code that I don't expect to work right away, I actually hope to have that one little bug; not having it makes me uneasy. Is that what a Mad Girlfriend Bug refers to?
Joey Adams
I am DEFINITELY using this one. But just not at work.
acidzombie24
+8  A: 

I coined the term "deceptive idleness", which my friend Sitaram Iyer used in his MS thesis on anticipatory scheduling. The paper became quite popular, so the term now gets a fair number of google hits

Martin DeMello
+1 for clever yet unambiguous wording
Jens Roland
Also, because I'm pretty sure my ex-girlfriend had that feature ;)
Jens Roland
jens: i won't say anything because i'm pretty sure i do too :)
Martin DeMello
+17  A: 

JamesBond Interface: contract defined very well, documented... but there's no real life implementation for it..

Sr7
I haven't got the punchline yet.
Andrew Grimm
couldn't find a smaller picture?
BradC
+20  A: 

Google Code

5-10 lines of code you found after three hours of Googling that you don't want to touch for fear of it breaking due to the underlying API being illogical and needlessly complex to work with.

Nick Bedford
+5  A: 

C*nts Socks and Sandals is my nickname for CSS.

Nailer
+1 for making me laugh so much :-D
James Morris
+11  A: 

IEssues for IE issues :P

hdx
tIEssues? for those issues?
Thqr
I usually just use a randomly selected expletive
RMorrisey
@jdk: Not enough pins in that picture. Or flames and the screaming of lost souls tormented by demons. IE merits all that and more, especially for its death-grip on managers' goolies.
Donal Fellows
Hopefully this will go away in IE 9 :)
Andrei Rinea
Should have gone in IE2 :) But I'm too all about thinking positively :P
hdx
+4  A: 

Paste-o

A typo-style bug caused by sloppy copy and pasting. Especially prevalent in boilerplate comment blocks, where that style is used.

Dan
+63  A: 

XMHell : When your project contains only 92 classes but has 243 Spring xml configuration files and every object relationship is mapped through a DI framework.

Props to Daniel for this one.

alt text

Florian Doyon
Hmm, sounds like Magento!
Harold1983-
MAGENTO? HULK SMASH.
eyelidlessness
+35  A: 

Bang It

Not really sure if I'm the first to use this, but I got into the habit of describing the process of negating a logical expression as "banging" it. This refers to the "!" symbol, used in some languages to denote logical negation, and the word "bang", a synonym for the exclamation mark symbol.

e.g.

Dev1: What's wrong with my expression? It's doing the exact opposite of what I want.

Dev2: You need to bang it.

Chris S
Hence my username, since the forum didn't allow my "sig" as a name.
dash-tom-bang
+4  A: 

Dejunkify - To clean up someone else's crappy code.

Brian Showalter
We call it **Declunkify**.
rlb.usa
+184  A: 

A Higgs-Bugson is a hypothetical bug predicted to exist based on a small number of possibly related event log entries and vague anecdotal reports from users, but it is difficult (if not impossible) to reproduce on a dev machine because you don't really know if it's there, and if it is there what is causing it.

(see Higgs-Boson)

runrunraygun
The Higgs-Bugson sometimes results in domain generalization, with actual physical objects flying around, clearly demonstrating the concepts of inertia, but without no solid theory as to why.
Schedler
It has been speculated that to actually witness this phenomenon physicists have to smash your fist against your keyboard at almost the speed of light.
runrunraygun
But does it travel backwards in time?
shoosh
That would explain why it takes a month to track down... :)
runrunraygun
+1 my fav so far
Aiden Bell
Can it create black holes?
Andrew Grimm
Predicted to be between lines 115 and 150
xenon
To find these, you need a **Large Hadron Debugger.**
Timwi
I have a few of these running around on one of my projects. Not fun :(
Matchu
@Aiden Mine, too, but I may be partial (physics and math student). Also, is this bug responsible for other bugs changing their flavors in mid-execution?
Mark C
+6  A: 

God (Code) File

An extremely oversized file that "does it all".

rlb.usa
Heard it from a friend.
rlb.usa
swiss army code?
MikeJ
Anti-pattern - "God Object" see http://en.wikipedia.org/wiki/God_object
crowne
In one app where each of 100 or so classes made use of the same 3 or 4 classes for some functionality, we called those classes the Pantheon. We declared the app polytheistic and started to refer to the classes as the DB god, the XML parser god, the god of logging and the god of date formatting.
sal
+4  A: 

Code Monkey

An insulting term to describe a poor programmer, usually who does not grasp basic or common programming concepts, and sometimes whose best coding capabilities can be described as "GoogleCut&Paste".

alt text

rlb.usa
Heard it from a friend.
rlb.usa
We used a similar term for otherwise skilled engineers who were tasked with excruciating data entry.We use a big horrible "database" application. I quote the term because it was so unstable that the owners do not allow any programmatic access. Data entry is manual, and only a few people know how to get any information out of it.I had all of our group's data in a MS Access database of my own design. I spent two days writing a script that translated the data to the new format, about 1 second to run it, and then four engineers typed for two months. "SLATE Monkeys".
mbmcavoy
You coined this programming jargon too, and then you heard it from a friend ... your friend sang a song using jargon you invented?
Windows programmer
For those who haven't heard it, here's the song: http://www.youtube.com/watch?v=qYodWEKCuGg
splicer
We've used this for the other side of things - experienced developers who should rightfully spend their time doing high-level development but end up having to do more rudimentary entry-level crap because we either can't pay an intern or the experienced guy wore the wrong team's shirt to a football game.
EAMann
<a href="http://codewright.blogspot.com/2005/12/codewright-and-code-monkey.html">The CodeWright and the Code Monkey</a>
Kelly French
A: 

Magic Number

A seemingly unusual and unexplained value that is used in a program and "makes it work".

rlb.usa
You invented that new programming jargon? OK, you're 88 years old so maybe you were really productive in your youth. Have I read some of your textbooks?
Windows programmer
^oops. Heard it from someone else.
rlb.usa
I used "black magic constant" for this.
Joshua
+11  A: 

Tabify

To make a data-entryist happy (by adding Tab-Indexes to a form).

rlb.usa
tab index, anyone?
Andrei Rinea
A: 

Parmissions

Not a term of my own, but rather an inside joke of a class I took. My professor would stumble words quite a bit, and there was a section on setting security permissions on disk partitions. The class got a laugh out of it, and anything from then on dealing with "partition permissions" was replaced with "parmissions."

Corey
+4  A: 

Marketing Bytes - Bytes as measured in multiples of 1000.

Also applicable: Marketing Terabytes, etc.

tsilb
This used to be known as StorageBytes, but that has since been reduced to multiples of 908... http://xkcd.com/394/
AviD
+139  A: 

Common Law Feature: A bug in the application that has existed so long that it is now part of the expected functionality, and user support is required to actually fix it.

Scott
Perl has Many, Many of these. In fact, it's policy that most unintentional bugs be kept as features.
Robert P
Isn't this why a lot of Windows programs don't work in wine?
Brendan Long
@Robert: Perl was made by a linguist; unfortunately, linguists are of the mindset that language evolves naturally and gains quirks along the way. Let that sink in.
Jon Purdy
@Brendan One of the reasons
KitsuneYMG
@Jon: That may be true, but that's not why they keep the bug-features - it's so they don't break existing tools unintentionally. (Not that they don't fix them either, eventually., see the `:=` vs `: =` change in 5.12.)
Robert P
That reminds me of Damien Katz' description of his early career, working on Lotus Notes. http://damienkatz.net/2005/01/formula-engine-rewrite.html
GalacticCowboy
Does Excel still have a 29th Feb 1900?
Stroboskop
@Stroboskop It does, as well as a 0th January 1900.
jleedev
I hereby declare that to be my birthday!
Stroboskop
+7  A: 

Sextuple-u (or, for those of puritan or mixed greek-latin descent, hextuple-u)

Not so much a term as a pronunciation of "www". Arguably not programming jargon, as it's useful beyond web development.

outis
A: 

Encryptified

Because it's more fun than saying "encrypted". From a fellow intern back in the college days.

Kevin L.
+4  A: 

Politics Driven Design - A design decision with no technical merit that suddenly shows up in the code only to cause an interruption in production as soon as it is promoted. Root cause analysis usually reveals user story sessions held behind closed doors between the weakest programmer on the team and management obtained a stamp of approval for the design. Management usually claims innocence and blames the campaign promises of "everything will be easier from now on" and FUD like "if you don't allow this, the sky will fall" from the weakest programmer.

Nathan
I call this **design by conflict** development.
sal
+7  A: 

Not specifically programming jargon: Braino--like a typo except it involved a mental process going astray rather than a finger going astray.

Loren Pechtel
I use that one as 'Thinko'
sum1stolemyname
@sum1stolemyname +1, I use "thinko" also, because type and think are verbs. So the "-o" construction feels more consistent than "braino", brain being a noun and all.
CPerkins
+58  A: 

Hope Driven Development - a software development technique in which an application is developed in a long unplanned development cycle, with minimal "Steve Irwin-style testing", all with the hope that everything will work as intended when released.

Steve Irwin-Style Testing - testing that consists of poking around in an application hoping that you will not have a "Crikey!" moment.

Robert
@jdk: nice addition!
Robert
+1 for the reference to Steve Irwin, AFAIK no programmer has ever died as a result of poking about in code...
Jazza
Brilliant. I have been on one of these projects.
Warren P
This is what we employ at our firm. No technical specification, just engineers running around asking for specifications and no management.
Bogi
+1  A: 

Proctalgia - I didn't coin it, but it's a synonymous of "Pain in the ass", and we use it a lot. It's also needed to explain the following term.

Vegetable replacement - We had a java singleton class named xxxCustomerBean, and since testing with singletons is a proctalgia (see above), we have a test-initialization class, where we take the singleton instance, create a new compatible object or proxy, and substitute the original one through reflection: after a "getField()" on the original instance, we "enter the customer bean field to replace the bean". Since then, using reflection to test around singletons has become "vegetable replacement".

G B
+109  A: 

Protoduction - A prototype that ends up in production.

Heard this from a tech at the Fermi lab. He said he didn't coin the term but had heard it used a number of times at Fermi.

Chris Pebble
that would be most of the web :P
George Profenza
the project I've been working on for the last year started as a prototype. One that the devs told the management was impractical and advised against putting into productions. needless to say it's been deployed and we're still building on top of the wonky foundations!
Zeus
Seriously, is there a prototype that doesn't go into production?
Jim Leonardo
Basically, a protoduct... that noun should be used more often.
Marcus Lindblom
@Jim: sure, but far fewer then there are products that don't go into production
beetstra
The only way to avoid this is by sabotaging or poisoning your prototypes to make them completely impossible to migrate into production.
Wedge
+1 for the pic. Why can't I be **that** guy?
Evan Plaice
We call this type of code "Demonsployable"
samkass
+1  A: 

FK Hard

Not entirely mine, and probably not the first time it's been used.
Came up while discussing a nasty problem with friends over beers on a Friday night (can't remember who said it...).

You know it's not NP-Complete, but you know it's gonna hurt.

seanb
+28  A: 

Copy-Pasta

It's the main ingredient for making spaghetti code. A favorite of a co-worker.

Use:

In a code review: So what I did was copy-pasta the loop from Foo into Bar, so they can both Fizz.

To which you should reply: What if later I change Fizz to Buzz and now Foo Fizzes and Bar Buzzes?

Jeff Meatball Yang
+1 for the code-review dialog
pkaeding
Hilarious!!! Love this one! +1
gmcalab
+2  A: 

Who the hell wrote that line of code?

I used to place that comment every time I came across a buggy code while maintaining our legacy application.

Bastardization nth generation of development teams modifying the code w/o a proper understanding of what the code does and making it very difficult to understand for the n-m generation developers.

Vishal Seth
Reminds me of a comment a programmer left who was cleaning up a pogram writte by a non-programmer. After he determined that a large block of code was not used anywhere he move it to the bottom of the file and noted "I have no idea what any of this does below here"
AaronLS
+4  A: 

Un-[name of co-worker]

To refactor copy-and-pasted code into a subroutine.

dan04
We have a colleague whose login name is generally read as "deactivator". Saying "activating the code" means cleaning up the mess left by the deactivator.
Dummy00001
A: 

Went to/ Is in the woods - the action of a program crashing or locking up, usually by trying to dereference a dangling pointer or through a data race in a parallel application. (Originally in German , "Ist im Wald", but it translates quite fine)

sum1stolemyname
I've long adopted "is in the weeds" for this situation.
Paul McGuire
In bavarian dialect "Woods"/"Wald" is pronounced like `void`
Filburt
A: 

SMG - Subject Matter Guru
Alternative to SME, Subject Matter Expert. Pronounced "smug".

Funny story, I once had a Dev Manager who said "If I see the word 'guru' on a resume, I throw it in the trash." lol

john marquez
Bummer if your name is Guru-Murthy.
Pete Kirkham
+14  A: 

headlessCamels and ProudCamels for verbally differentiating between the two different types of camelCase (or CamelCase)

Jay Paroline
(in case you're curious) I'm fairly certain ThisOne is PascalCase.
AlexeyMK
I thought it was UpperCamelCase and lowerCamelCase?
Brendan Long
@AlexeyMK: PascalCase is specific but camelCase/CamelCase isn't, so it only solves half the problem.@Brendan: That works but it's far more boring. ;)
Jay Paroline
I always found it amusing that Perl, the language that loves its camels, dislikes camelCase in favor of under_lines.
Robert P
@Robert P: interestingly, I've always heard the term snake_case to describe that naming convention.
Juliet
Damn, now all I can see are camels...
John Gietzen
There is always "COBOL CASE" to describe all uppercase code.
Joe Zitzelberger
+10  A: 

Doubleton

When it turns out a singleton is just not enough.

WishCow
I see one of these coming. In fact the original rule that made it a singleton is about to come in handy when I think about *why* the singleton rule was written.
Joshua
more than three and you get a cattle market.
Pete Kirkham
+2  A: 

Quantum bug - the bug that fails to occur when trying to observe it (ie tracing through code a line at a time).

Leonard De candia
Also known as a Heisenbug
Blorgbeard
+1  A: 

H2IK Sequence

I first heard it on the TV show "Defying Gravity", but I adopted it.

When faced with a situation or problem that doesn't make sense, you run an "H2IK Sequence".

It means "Hell If I Know" and boils down to starting at the beginning and working the problem methodically to figure out what's wrong.

J Wynia
+23  A: 

Extraface An interface that is added for no reason or is never used. In Java, Serializable is often an Extraface.

Intraface or Inyerface An interface that is added to every class in a system, usually as a way of adding constants. Inyerface is used when the use of caps to define constants leads to a source file that looks like it's yelling at you.

Abstruse Base Class An Abstract base class with one or more code smells.

Combination Lock API An object with an overly complex interface which fails silently when you deviate slightly from the API.

Obfuscated Oriented Programming When code says one thing but the comment says something else. Usually points to cut-copy-paste.

//get account from audit
Broker b = audit.getOriginBroker(order.getBrokerID());

//reset form
Form f = new Form(id,map);

Bottle Rocket When an application launches, displays something then leaves a trail of error messages before crashing. As in, "I added the new client jar in dev and the app goes bottle rocket when hitting the CRM system"

sal
+1 for Combination Lock API
RMorrisey
Inyerface! Love it!
Warren P
+95  A: 

Smurf Naming Convention

When almost every class has the same prefix. IE, when a user clicks on the button, a SmurfAccountView passes a SmurfAccountDTO to the SmurfAccountController. The SmurfID is used to fetch a SmurfOrderHistory which is passed to the SmurfHistoryMatch before forwarding to either SmurfHistoryReviewView or SmurfHistoryReportingView. If a SmurfErrorEvent occurs it is logged by SmurfErrorLogger to ${app}/smurf/log/smurf/smurflog.log

sal
Can we use a namespace, people?!
Jon Purdy
But this is waaaay better... it's a 'namespariable' better than either a regular variable or namespace.
vfilby
@Jon Purdy: You can, if your language supports namespaces. Further reading: [Objective C](http://en.wikipedia.org/wiki/Objective-C).
Robert P
It's even worse when the 'namespariable' is utterly irrelevant to the current context - e.g. NS* APIs on iPhone.... for which there's no explanation in the docs, yet 'UI*' and 'AddressBook*' make sense.
JBRWilkinson
@Robert @JBRWilkinson this can be forgivable in languages without namespaces, it is totally unforgivable in languages with. There is no reason to do this in Java or C# where use of namespace is a requirement for anything non trivial.
sal
@sal : Agreed. :)
Robert P
What can I say, it seamed like a good idea at the time, I was wrong :P
Crippledsmurf
It's even funier, when the second part of the variable name conveys no information: http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered/195187#195187
back2dos
NameSmurf or SmurfSpace?
Thorbjørn Ravn Andersen
I maintain code that uses both namespaces _and_ smurf naming convention. Both the project name and company name has changed several times in history, so now you have all combinations and different abbreviations. I need to change profession :)
wigy
@JBRWilkinson "NS" stands for NextStep which is where Mac OS X has its roots. Which does not change the utter irrelevance...
Simon
+4  A: 

Funhouse mirror effect When a bunch of classes reflect the same data from a common set of data in such a way that they are more than 80% identical but no two classes fully look alike or are sub or super sets of each other.

IE, the Customer, Account and Portfolio classes are 80% identical, but are used by different apps or different parts of the same app. They are used in conjunction with the Order, Trade and Holding classes which share only a common set of Ids

sal
multiple inheritance much?
SF.
+2  A: 

Genericization pronounced "generisization". Other forms: "genericize"

Because Generalization already has meaning in OOP, we coined Genericization and Genericize to mean refactoring code to use generics (ie. in C# or Java).

Ycros
+40  A: 

RIT's Society of Software Engineers has a name for this diagram I created a while back:

The Rob Busack Waterfall Model.

http://yfrog.com/a5waterfallp

Named after the Rob Busack Memorial Rapid Development Weekend, a yearly event where in one single, caffeine-fueled weekend, an unnecessarily large number of developers congregate for the purpose of failing to complete an overly ambitious programming challenge.

BernzSed
**an unnecessarily large number of developers congregate for the purpose of failing to complete an overly ambitious programming challenge.** < my office then?
runrunraygun
+51  A: 

Floater: The case in the bug tracking system that seems to always be sitting near the top of the queue but never gets claimed. It just floats there while developers work around it.

labratmatt
lol we have a few of these... seems almost every one left is a floater.. sigh
WalterJ89
+13  A: 
superoptimizer
+7  A: 

Interociter: A fictional feature added to a specification in order to provoke questions and reveal ignorance. The inclusion of an interociter in a spec will determine:

  1. Whether the reviewers have actually read the spec.
  2. Whether any of the reviewers will admit ignorance about a technology they've never heard of.
  3. Whether any of the reviewers will offer an opinion on the inclusion of the interociter based on their prior experience.
Logan
And a way to chat with Dr. Meacham from Metaluna! http://en.wikipedia.org/wiki/Interocitor
vfilby
Reminds me of http://www.snopes.com/music/artists/vanhalen.asp
finnw
+30  A: 

Perl -grade obfuscation

The highest level of obfuscation possible. Better than passing code through a 1-way hash function.

"No one will reverse engineer our code - it's written in Perl."

Emil Koutanov
See also: Line noise
RMorrisey
See also: `TECO`
grawity
Hm, apparently you haven't seen J so far ;-) (well, and some esoteric languages). In fact, Perl hasn't been at the top of the obfuscation and golfing ladder for quite some time now :-)
Joey
Gee. It looks just like APL.
Dan Menes
Well, I'll have to remember this one. If DotFuscator is insufficient, Perl will do it.
Andrei Rinea
Perl is slightly more readable than MALBOLGE.
Warren P
+6  A: 

Lethal Dependency Injection

Too much Spring XML wiring to configure a handful of classes.

Emil Koutanov
+9  A: 

Prefactoring -- When you say to a co-worker (or when a co-worker says to you), "Hey, you know that code you were gonna write this afternoon? Yeah, uhm ... why don't you let me take care of that instead? Don't you have some errands you need to run?"

Charlie Flowers
+15  A: 

Barebacking

When you submit code, without proper testing, to get pushed with someone else's build.

Trevor
Wait one second... Is that 2 guys? Wouldn't that be called brokebacking?
Evan Plaice
+3  A: 

Line noise: The syntax of the Perl programming language, or almost any program written in Perl. (I think one of my co-workers coined this.)

Siesta: The point at around 1:00 - 2:00 in the afternoon, when your PC suddenly becomes unresponsive for 10-30 minutes. May be a surprise clean build triggered by eclipse, quirky windows behavior from network latency, or simply a CPU-intensive background process. More broadly, any time the computer is unresponsive to user input, because it's taking a nap.

Used by myself and my cubemates.

Traished: Inexplicably hosed, for no logical reason. Unable to compile, or produce an intelligible error output. Non-reproducible compiler behavior.

Not mine; came from summer camp, when learning to program. One of my classmates got an error from his Pascal compiler, saying:

This error should never occur. If it does, the file variable has somehow been traished.

The typo was included in the compiler error message. He discovered, after much trial and error and consulting with the lab instructor, that he was missing the period which is required after END to terminate a pascal program. Once he got it to compile, he was no longer able to reproduce the compiler error.

RMorrisey
@RMorrisey: It might be a good idea to combine all your answers into one.
Potatoswatter
Done! I think that's all of them
RMorrisey
+6  A: 

Experimental programming - Arranging tokens with little or no understanding what they really mean, and testing if the resulting code works well or not. This is repeated until the code works.

Sometimes this is really bad, like in this question.

Sometimes this can be a valid technique, provided the testing is done well. Once case I use it is when doing a vector cross product, as I never remember what is the orientation of the result. I try it one way, if it does not work, then try the second one.

If the tests are automated and fully cover the required functionality, I think this is a valid special case of test driven development - with TDD you do not need to care what the code is and where it came from, as long as it passes.

Suma
+30  A: 

Disaster Driven Development - When Your PMs and salesmen promised that You will build "space shuttle" in one month.

Rafal Ziolkowski
Should this be "disaster" or am I missing some subtlety?
Chris Farmer
Of course it should. Thanks, fixed, case closed :)
Rafal Ziolkowski
*sigh* I am going through this right now .. but I would suggest a slight change to be " .. promised that *you* will build .."
Peter M
Affirmative. BTW, I have conversation with brilliant (in terms of income) salesman recently and he said: "You have to bitching, that's the way it works"
Rafal Ziolkowski
@Rafal do you mean "You have to be bitching"?
Andrew Grimm
@Andrew - My mistake, You are right :)
Rafal Ziolkowski
I've been here, done this.
Warren P
+16  A: 

Clicking Administrators (originally Administrateur Cliqueurs in French)

That's for all those system administrators and IT people that have always evolved in a Windows environment, growing from managing their own home computer to managing an enterprise network, and don't have a clue about the actual technical changes they make when clicking here or there.

They usually apply the management methodology named DTIW, Don't Touch, It Works! (originally TPCM, Touche Pas, Ça Marche !) (I would probably need a better translation in English here, it sounds really great in French …)

Didier Trosset
If it ain't broke don't fix it. Though that doesn't exactly mean "don't touch".
Windows programmer
Yes, that sounds much better. But it goes even further than this with some administrators refusing to change anything, even refusing to apply the security updates!
Didier Trosset
@Windows programmer, with some people it *should* mean don't touch. :-)
Kristo
+47  A: 

SOGO When you look for answers on Google and your Stack Overflow questions come up as first place within 5 minutes.

Thqr
This has happened with surprising frequency.
Sam152
Done that. :/ What's worse is why your Question is unanswered. After 6 months. :-/ Double boo.
Chris Kaminski
@Chris: At least then you get the tumbleweed badge B-) (But yeah, been there done that, got the badge, decided it wasn't worth it B-)
Brian Postow
How about finding your college's asked the same question, to no avail :<
glasnt
Especially when it is something you have to solve within the day...
Thqr
Within a day? That usually happens today within <5 minutes when i continue to google in the vain hope of sudden enlightenment.
Georg Fritzsche
A: 

Flock the Mocks / Flock Mocking - Using alot of mocks in a single test using a automated mocking framework like Moq or RhinoMocks and therefor create a test which is barely readable.

(Mocks as derived from Mockingbirds that flock in a single Unit Test)

Bas
+37  A: 

Bob the cardboard cut-out programmer.

This is a real life-sized cardboard cut-out figure that can be placed in the corner of the office, whenever one of his non-cardboard peers has a problem they can walk up to him and discuss the problem and half of the time this discussion will help solve the problem.

The conversation usually goes something like this:

I can't figure out why my class won't ... Oh, OK don't worry I've just figured it out - thanks!

crowne
AKA 'Dumb Donkey' - explain a problem to someone; they'll sit in silence and contribute nothing to the discussion while you eventually figure it out yourself.
Steve Folly
I've heard this being done with a rubber ducky, a teddy bear and a bobble head.
sal
I know this as the wooden indian effect, and I must have learned it a *long* time ago.
Beta
rubberducking??
Midhat
@Midhat: I'd say that this is slightly different from rubberducking. In my last workplace, the cardboard programmer described the situation where you call a colleague over to discuss a bug and *just* as they stand behind you, you spot the solution yourself. So, in other words, if you'd simply relpaced the real person with the cardboard cut-out, the effect would have been the same.
Jazza
Cardboard programmers are stealing our jobs as rubberduckies.
Florian Doyon
+5  A: 

Rape And Paste Error

Like a cut-and-paste error but the consequences are much worse.

A great name because it's also a recursive acronym, like PHP and GNU, and we like them.

Steve Folly
+507  A: 

You know the style of brackets where the opening brace goes on the end of the current line, e.g. this?

if (a == b) {
    printf("hello");
}

We used to refer to this style of brackets as "Egyptian brackets". Why? Compare the position of the brackets with the hands in this picture:

alt text

(This style of brackets is used in Kernighan and Ritchie's book The C Programming Language, so it's known by many as K&R style.)

Computronium
+1 for making me laugh
sal
Walk like an Egyptian.
eyelidlessness
This is brilliant.
Gordon Christie
F**! My code used to look pretty, now I keep seeing Egyptians!
Aiden Bell
That's why I put brackets on their own line.
Josh K
"All the coders in their cubes say way-oh-way-oh..."
Kyralessa
Code like an egyptian.http://www.youtube.com/watch?v=BWP-AsG5DRk
James P.
Noooo, I always use this style. Now I hate it! But funny!
dierre
For some strange reasons I was looking at legs, though you said hands.
Guru
I might add "Tie-Fighter else" to this one... }else{
Vincent Robert
@eyelidlessness, James: here's a KT Tunstall cover http://www.youtube.com/watch?v=48Pafixt83A
bobobobo
I never used to like this kind of brace before but now with the Egyptian analogy I just love it. No doubt coding is indeed an art. What a revelation after so many years of coding.
naivnomore
Actually i like and use "egyptian bracket" for small code block(loop, if,etc.) so that pair of bracket that in 1 same column will be reduced(enhanced readablity) but I use one column brackets for function def,class def. Funny jargon though +1
mhd
Typical Liberals, always playing the race card.
George
Man you made me laugh so hard!!
iamserious
+17  A: 

Showdea

For an idea that you came up with in the shower!

alexganose
weird, all my ideas come to me in the shower...
dotjoe
I definitely would have to pronounce this one "shau-dair", like the French waiter and Freddie Quimby in that Simpsons episode.
Tesserex
@dotjoe : Me too, also morning poops can yield good ideas too!
Andrei Rinea
+5  A: 

Björn Borg - To completely remove old code and rewrite from scratch, without being able to use the old code as reference. We came up with this expression in the demoscene in the mid-90s when we had to rework parts of our demos and were sure that the existing code would trip us up rather than help us. We also argued that rewriting the effects made you learn them properly rather than relying on cut'n'paste for the more advanced stuff (mathematics, pointer voodoo etc).

There might have been a reference to cocaine use and staying up all night (the latter being a natural consequence of the Björn Borg principle). Before you do a Björn Borg you have to actually shout "Björn Borg!", also for reasons I can't quite remember. Maybe as a warning/invitation to veto.

kb
+1 because he is from sweden =)
Viktor Sehr
+1  A: 

Gurkensalat

German for "cucumber salad". Any kind of coded or crypted text.

Holli
+9  A: 

Trynally - a Try..Finally block:

try
{
   ...
}
finally
{
   ...
}

Invented by @ohadh

Dror Helper
I've used this term too +1
sal
try anally =))))))))
Andrei Rinea
+18  A: 

Over oriented programming - using OOP to do evil. five layers of inheritance where only one (or none) will suffice.

Dror Helper
See the previous "Baklava code". I like your term.
rursw1
+17  A: 

Eraser Stains - Code that has been written, then re-factored multiple times leaving swaths of vestigial code or design. Like erasing a sheet of paper so many times, the pencil marks are no longer the problem - the large greasy stain is.

Coderoshi
Not quite the same thing, but before doing a commit, I use `git diff` or `git add -p` to ensure that any debugging code doesn't make it into the commit.
Andrew Grimm
+4  A: 

The infamous AhTeJodesException (something like OhYouAreFuckedException, in Spanish), the first use among my friends was in a computer science assignment as a joke, but now we use it for everyday situations when you're screwed no matter what you do.

fortran
+1  A: 

Joott - pronounced "JOOT". Acronym for "Just One Of Those Things" used to describe an observation of a system's behaviour that cannot be explained or is deemend insignificant and is therefore shrugged off.

I didn't invent this term. I picked it up from colleagues about a decade ago when working with multidisciplinary groups of engineers, software developers and technicians on large system integrations. There'd be so many loose ends during early days of integration that classifying an issue as a Joott was a way to put it off or forget it.

I'd like to think that once the big issues got resolved, what were Jootts in the early days of itegration did get looked at in the final days prior to shipping. Or maybe they just became the latent defects that second and third line support engineers would have to deal with months later ;)

Canoehead
+105  A: 

Hydra Code

Code that cannot be fixed. One fix causes two new bugs.
It should be rewritten.

Nick D
https://developer.mozilla.org/en/Dehydra
Pete Kirkham
@Pete, thanks for the link. Very interesting. I was curious why the name Dehydra, and from https://developer.mozilla.org/En/Dehydra/Dehydra_Frequently_Asked_Questions "Initially Dehydra was written as an easy way to look for patterns in Control Flow Graphs (CFGs). Images of those graphs reminded me of the multiheaded Hydra monster. De-hydra can be thought of as a decapitating tool for slaying CFGs."
Nick D
... so there is a weapon to kill *specific* types of Hydra beasts ;)
Nick D
I call that kind of code "perfect" because it can't be improved.
xan
Rewriting being the heart striking
Andrei Rinea
+1  A: 

Squid

An inheritance hierarchy with a single root class (the head) with inordinately long chains of classes below it (the tentacles). This can occur due to long chains of interfaces, mixins, or components, especially for a project that doesn't need that level of abstraction. Or, you know, in the Java standard library.

Jon Purdy
+2  A: 

Offshored Code

It meets the requirements, but was done by twenty people typing as quickly as possible without chatting with one another first, and because of that, is write-only code.

Normally, it wouldn't be on this list, but I used it (often) to describe the trainwreck that a few domestic developers wrote.

Dean J
+74  A: 

MAXIT - Talk to Max about the problem. I had a real life manager named Max, when we had code we could not figure out, we would talk to Max. He would just ask us to tell him about it, describe what it is supposed to do and then walk through what it IS doing - most of the time (all?) we would figure it out from that. Max actually died a few years ago. I still talk to Max.

Mark Schultheiss
+1 for the last sentence.
Erik Forbes
This is one of my favorites here
Victor Farazdagi
A form of Rubberducking.
Andrew Grimm
A: 

ROM (Request/Response Object Model) Used for Web Application. Coined By zigmoyd.net An Adapter Applied on HTTP request Parameters to access them safely in an Object Oriented Way

A: 

BāngKshetrā a Special type of Distributed Blackboard Implemented for Self Communicating Adaptive Website.

Bāng Partial/Complete Solution Container.

BāngKnetrā Observer on the Blackboard

These are inspired by the Blackboard System. It is being implemented in Web Application in a generalized way.

+5  A: 

Enchancement - A fantastical feature or function of a program that would often require re-invention of the technology chosen or rewrite a programming language to support. Is usually given after the first review with a client or management team, massively increasing scope creep for this one feature that has a 50/50 chance of working but is suddenly absolutely mandatory because the customer thinks they saw it somewhere. (Usually from the TV or movies)

Examples: -Make that video completely interactive so that I can take it and drag it from my desktop to my PDA, and it should just work, like in the movies. -Re-write that to natively support pdf files.

boombots
This usually results in masses of "patch" code to make sure all the existing functions route around the new enhancement.
Nick Bedford
+34  A: 

Scare the bug when you call another developer to help you spot some trivial and obvious bug you spent way longer than reasonable trying to find.

Often mere presence of the other person allows you to spot the bug, i.e. as you begin to explain the piece of code (without the other person ever getting to say anything of value) - "the code got scared of two people at once working on it and revealed itself without a fight."

A request of Could you come over and scare the bug for me, please? is the traditional interrupt request of this kind of assistance.

SF.
Often referred to as the "rubber ducky method", wherein you avoid bringing in another programmer into it by explaining the bug to a rubber ducky sitting on your desk (or any other trinket) this revealing the bug to yourself by the act of explaining it as you would to another coder.
Neil N
But nicely and creatively worded, especially in the request form. +1.
DevSolar
See also "cardboard cut-out programmer"
Jazza
See also "rubberducking".
Ates Goral
A: 

Siamese an ugly method of attaching a section of code that is halfway flexible, API-like, OS-independent, allowing for generic replacements etc, and halfway grown-in, dehermetizing private variables, calling internal methods and generally binding the section in a very monolithic way (...you wanted to make it right, but halfway through you decided sharing a global variable instead of opening a socket will save you good 300 lines of code, and so the program can't compiled as a separate module any more).

SF.
+42  A: 

Barnacle method A function implemented as a method of some class for lack of a better place.

If you don't have a "generic toolbox" class and don't tolerate functions outside a class or a namespace, you sometimes attach simple, generic, stateless functions like "dec2hex", "crc16file" or "JSONtimestamp" to a specialized class because that class often uses them or they somewhat resemble its functionality, but you often call them from other classes (which don't need the "host" class for any other purpose).

SF.
I hate these things! Or rather, hate when I need them.
Nick Bedford
I think they're called utility methods.
Andrew Grimm
@Andrew: a classic utility method is usually attached to a utility class. But finding no atoi() (int->string conversion) in stdlib, and implementing it as a method of a class that generates a screen of specific info about output device instead is a classing example of barnaclization.
SF.
In a non-obligatory-oop (object Pascal) or semi-oop (C++) language, the idea that this should have been in a class would be ludicrous to some people, and an article of faith to others. This term is a rather good example of where developers differ on acceptable practices. I would use this term. "This is a barnacle, start a new utility class, now."
Warren P
Ha. All "utility functions" in C# and Java have to be implemented as barnacle methods on static classes.
fuzzyman
Heh, what comes to mind with "barnacle" is something a former coworker told me about the development of the project I was joining, that it had been more "programming by accretion" than anything else. Ugh.
dash-tom-bang
+4  A: 

[variable/function/feature/API] has a Schizophrenia - when it tries to be two contradictory things at once (usually due to a design error - you refactored half of the project with new meaning of the piece in mind, while keeping the other working)

Examples:

  • In soft-typed languages when the variable can appear as two different types - say, an index in a table of values and a reference to a function returning a similar value.
  • an API that tries to protect users from shooting themselves in the foot while aiming at maximum freedom for the user.
  • a variable that holds a value that only coincidentally works in two places, e.g. a database index and file line number.
  • a variable that is written to with two different formats of the same data, e.g. an array of 1-byte integers, or an ASCII string containing the values as CSV text.
  • a flag that does two remotely similar things at once, e.g. "isStopped" which is set both when the system finalizes a total emergency stop and when it is momentarily idle and ready to change work mode.
  • a "unit" difference, say x and y in px but height and width in mm.
  • a GUI API that can't make its mind about using x,y,w,h and x1,x2,y1,y2
  • a function that can return an error code, value of which lies within legal valid return values.

SF.
+5  A: 

Code in Front

In ASP.Net "the code behind" refers to the .cs file.

Well, the .aspx page is called the "code in front"

Mike Fielden
Sounds like classic ASP :)
Andrei Rinea
+4  A: 

Super pipelines and Ziggurats.

These are n-tier pseudo-architectures. Super pipelines are methods that call methods that call method, etc, and the intervening methods don't actually do anything except call the next method. Ziggurates are classes that inherit from classes that inherit from classes that inherit from classes and the middle classes don't actually do anything.

I think this comes from developers who've been told to create 3 layer code and put all their code into the UI anyhow, but have stubs for the other 2 layers.

http://suburbandestiny.com/Tech/?p=576

MatthewMartin
A: 

I believe "banana banana banana" may have its origins in Douglas Adams's groundbreaking puzzle adventure game, "Starship Titanic". A certain non-player character (Deskbot if memory serves), when unable or unwilling to comprehend player queries, would respond once with the wisecrack "I'm just gonna say "banana" until you start making sense!" ... subsequent player queries it couldn't handle would be met with the response: "Banana. Baaaanana... Banana!"

jon w
this should be a comment
sal
Maybe a Futurama reference?
mgroves
+13  A: 

Defactoring - Cleaning up code by deleting loads of unnecessary garbage.

mjterave
+6  A: 

RBAR (Adjective) [pronounced ru-bar] - Describes one who works with realtional databases but really has no clue how to do so propelry and so every action they take is RBAR'd which is short for 'Row by Agonizing Row'.

Credits for RBAR go to DB guru Jeff Moden

+4  A: 

Unicodification

The process of making code or a product Unicode-capable.

We coined this term when we converted Delphi and the VCL framework to be fully Unicode capable.

The verb is "Unicodify".

Nick Hodges
+34  A: 

Reticulating Splines - Used to describe development that still needs to be done to non-programmers who probably don't care about the specifics of what still has to be done (beyond the time estimate) or know what you are talking about. Lifted from the SimCity 2000 game load screen, which displayed nonsense phrases with a progress bar while the game loaded.

Skells
pinkgothic
The load screens of "World of Goo" have some really fun examples of this.
Warren P
I remember that screen!
RMorrisey
Peggle does this as well.
Mitch Lindgren
+3  A: 

Like a bought one - Not coined by me, but by my professor:

"The act of writing code, no matter how big or small, and it executing perfectly the first time - like a bought one".

lynt
There is a deeply rooted belief among the programmers: if the program after major changes compiles at first try without a single warning, and the program seems to work correctly at the first try, Be Afraid, Be Very Afraid. It's a sure tell-tale sign you made some very obscure error and the code has some very dangerous but extremely hard to find bug in it.
SF.
+5  A: 

Excepticons

With all of the LOLSPEKA around these days, a lot of emails have a tendency to go back and forth in this geek-tongue of sorts. Alas, "excepticons" were born, and have been plaguing developers at my company (and now a couple of others) ever since. I even have some non-dev friends that have completely erased "error" from their vocabulary.

Not sure if this is what the spirit of the thread was, but I thought I would ante up those 2¢. ;)

Lance May
Another reason to ram exceptions down everyone else's throat here in the land of 1996 edition C++!
Zack
+68  A: 

Blogware

Code that looks great in a blog post, but doesn't work well in a full application.

kingryan
Checked exceptions?
Robert Fraser
+1  A: 

20/20 rule

When ever someone initializes an array incorrectly. Came about after a C programmer initialized a pointer array to spaces (ascii hex 20) then set that memory location Hex (2020) to a string which destroyed code. This code destroyed was in another programmers module. Since then we talk about the 20/20 rule

dymaxion
I like how it plays on the expression "hindsight is 20/20"
John K
+5  A: 

Bukazoid documentation pattern for when people try to cut corners when documenting the code:

/**
 * Bukazoid manager is a manager to manage bukazoids.
 */
public class BukazoidManager extends SomeOtherClass {
...
}

This is especially annoying when you are trying to grasp someone else's code (why is the class here? What functionality does it cover? Why does it extend SomeOtherClass? Is it thread safe?, etc.) ...and all you find are some meaningless words.

mindas
Also used to shut StyleCop up when it insists that the most obvious things (such as "Id") be documented.
Robert Fraser
I've certainly seen this style of doco but why "Bukazoid"?
andyjdavis
"Bukazoid" is just some funny obscure name that you have never heard of. So is your next class you will be looking at and trying to understand.
mindas
A: 

Harv Features - I wish I coined this but it was somebody else at the company I was working for in 2008. During its start-up stages when the company's founder and CTO, Harvard Young, had free rein over their social network software he would often be enthusiastic in responding to client requests for small customization changes here and there. These changes would quite often be useless during a build-out for a different client, or at the worst, a hindrance to development or implementation work. We ended his practice with the implementation of strict software roadmaps, revision and quality control policies, but not before giving these oddballs the affectionate term "Harv features".

Freeman
+4  A: 

Hackfactoring The process of taking code and refactoring it without consequence to make it do what management demands that the code do.

Stephen Furlani
+6  A: 

Kludge Hammer

When you attempt to rewrite/repair a segment of messy, hack code. It's akin to needing a sledge hammer to knock out poorly built walls/structures in a house. Used when there is nothing else you can do but tear it all out and start over.

*"Have you looked at that new module from Tom?"

"Yeah, we're going to have to take a kludge hammer to it to fix it."*

jasonk
+16  A: 

FrAgile Development: The process of taking an existing framework that performs its required task very well and is well tested. Then throwing it out the window and rolling your own implementation. This process is repeated until the software has become such a kludge that someone suggests using the original framework in the first place.

It's a vicious cycle widely observed at Rapid Development Weekends at RIT's Society of Software Engineers.

Sean Madden
Yeah, like writing your own JSON parser.
Matt Olenik
+6  A: 

Field Trip Fix The solution to dealing with an issue that is frustrating you to the point of madness. The cure for which is taking a field trip to a local restaurant for a mental break.

jasonk
Not to be confused with fixes made during a 'field trip' to a customer's site.
Pete Kirkham
+2  A: 

Copy-Paste Inheritance: this is both a code reuse pattern and anti-pattern.

It can both have a positive and a negative connotation, even to the same person. It depends wether the pattern is helping, or working against you.

doekman
+29  A: 

Boss Build

At a previous company, we generally built two versions of any product that ran on the Boss's computer. One "real" version which was shipped to customers, and one "boss build" which reflected the endless list of font, color, size, and placement tweaks that came every several days from the corner office.

tylerl
Was the boss aware of this separate build, or did he believe everyone else was getting the same build?
Erik Forbes
He was aware that we enabled "extra" functionality for him that most users didn't get to see.
tylerl
This is similar to the "former boss switch" noted in another answer.
Warren P
On one particular project, we had to add a feature mid-course, where a specific user got his own approval step in the workflow, a hard-coded access role, and a screen named after him. Suggestions to establish an access role for that kind of user were vetoed.
RMorrisey
+88  A: 

Jenga Code

When the whole thing collapses when you alter a block of code.

Sumit
great :D. Perhaps a classic
acidzombie24
Maybe it shouldn't collapse, but it definitely shouldn't _work_.
Matt Joiner
+17  A: 

fuXOR, pronounced fuckzor

AND, OR, XAND, XOR.... fuXOR!

Used to describe broken logic statements, such as if( x == 1 && x == 2 )...

ben lucchesi
+1 clear and concise. nice.
John K
... when they're in C++ with overloaded operators and actually work.
Robert Fraser
There's no such thing as "XAND".
Michael Madsen
Haha, XAND - A and B, but not both ;)
DisgruntledGoat
Loving XAND. I have this mental picture of some poor maintenance programmer reading through pages of increasingly WTF-inducing code, finally seeing an expression containing XAND... and realising that his efforts are in vain because the badness is just too strong.
j_random_hacker
Most Languages have a XAND function. it is usually called FALSE and you can leave off the arguments...
Matthew Scouten
+62  A: 

can-has

alias of apt-get

sudo can-has php5
Harold1983-
Do people who use this eat cheezburgers? :-)
JBRWilkinson
Is there a `cheezburger` package?
Donal Fellows
this is perhaps the greatest reason to use unix evar
KitsuneYMG
-1 not-programming-related
finnw
to adopt this: `alias can-has='sudo apt-get install'`.
Trey
lol, I think i'll put this in my next build.
WalterJ89
this one is packed full of awesome. I've gotta do this!
thomasrutter
+21  A: 

Hi-driven development - When you debug your program by writing alert('Hi') statements in a trial-and-error fashion

ThiagoAlves
I used to do this but prefixing with the word 'Chinchilla' - In the understanding that removing them meant lots of searching for 'Chinchilla' which was unlikely to be partial in a term rather than 'Hi' which could be.Unfortunately during a phase where I was distracted with training idiots, I nearly let a Chinchilla into the wild. The chinchillas were hastily replaced with Log4Net.
Wysawyg
Otherwise known as release build bugs :P
Nick Bedford
Like printf debugging?
Andrew Grimm
Step 1. Get a book. Step 2. Write hello world. Step 3. Conquer the world.
Warren P
Yeah, kinda like printf debugging, but without printing any useful information, only 'Hi' (or something similar). This ensures you will have a lot of fun and challenge while debugging your code! You feel like a detective solving a murder only having a few clues. :)
ThiagoAlves
Funny. Me and my friends always use an improved version of that: alert('xxx') where xxx is the Bulgarian slang for penis.
Hristo Deshev
+6  A: 

"It Compiled"

A defense you supply in jest when someone points out an obvious mistake in your code.

It's reference to a former employee who was the sort of programmer that people talk about for decades after. This programmer submitted for final review some extensive changes to a core application, which due to some serious bugs he had introduced, failed to even launch.

When confronted about the results of his testing prior to submitting his code, he looked confused for a second, and then responded, "well, it compiled." Apparently the struggle he underwent with the compiler to get his code to even build was so extensive that he assumed that he had fixed all of his bugs when it finally actually compiled.

tylerl
+11  A: 

'Outsourcing it'

These days, this term is used at my office to describe the act of taking some freakishly elusive bug that's been pestering you for hours and just posting it to StackOverflow, going home, sleeping off the frustration, and getting back to work the next day to find a perfect solution from the internets.

Jens Roland
I thought that's called **crowdsourcing**.
deceze
It is. Like most other phenomena in this thread, you can call it by many names. We wound up jokingly calling it outsourcing, which is why I mentioned it.
Jens Roland
yep crowdsourcing it is. Although it might get tagged with "homework".
Andrei Rinea
+19  A: 

It's not a bug, it's undercoded.

TofuBeer
Don't you mean undertested or underspecified?
Andrew Grimm
In my case it is usually just not finished yet... // TODO: ...
TofuBeer
Actually, most bugs are OVERcoded...
AviD
+13  A: 

TDDD: Technical Debt-Driven Development

teepark
hahahahahaha +1
John K
:(((((((((((((( TeamNet
Andrei Rinea
I'd do plus 2 if i could.
Charlie Flowers
+6  A: 

Crumment
From Comment, and Crummy, "of little value; inferior; contemptible". A comment that adds no value or hasn't been updated to reflect the code.

"Jimmy's last commit is a solid piece of well-crummented code."

Mathias
+30  A: 

Fragile - To use Agile methodologies and have people totally screwing it up.

Project Manager: Let's use Agile methodologies!

Developer: Ok sure, I will spike. I'll do the minimum of what takes to achieve this piece of business functionality

Project Manager: Excellent work developer!

Developer: We can refactor later when we build later parts of the system. It's not important to that now.

Project Manager: Good. We shouldn't do more than we need right now.

And later on in the project...

Developer: We need to do that refactoring because the code is unmaintainable

... silence follows ...

Project Manager: Deploy lame excuse machine, choose one or more

  1. Say "We can do it a little later"
  2. Say "But it works why change it?"
  3. Say "This is way more important, do it later"
  4. Say "We don't have time to do this 'refactoring'"
  5. Say "I promise we will do it later"

Resulting in...

Developer suffers development with increasingly incoherent & spaghettified code AND no one cares about the pain he/she suffers.

Then ..

Outsider / CTO: Man, this agile stuff stinks! I'll never use that! Waterfall RULES!

alt text

JavaRocky
+1 great dialogue
John K
+1 for describing how uninformed management uses agile so well :)
Ryan Hoffman
+8  A: 

Rocket Surgery As in 'It's not rocket surgery'. We have so many non-tech people telling us it's not 'brain surgery' or it's not 'rocket science' we had to come up with our own term for simple.

John Rutter
Is that MacGruber style rocket surgery?
John K
When we were creating simulations of the AMRAAM missile, the 'rocket science' parts were the easy bits - the laws of physics don't change as often as the user's gui requirements.
Pete Kirkham
+44  A: 

Natural Selection - The act of replacing someone else's code with your own.

Javamann
Oh look, daddy, that lion is giving the cow a hug!
GalacticCowboy
Is the lion attempting interspecies breeding?
Blessed Geek
umm, dudes, thats a steak. He's eating a steak, properly rare the way it should be. I have a friend likes it that way... (is that a yak steak...?)
AviD
@AviD does it need shaving?
Andrew Grimm
Has anyone here ever eaten yak? Whats it like??
AviD
I think I had buffalo once while I was in a state near Arizona. I think it tasted like beef (not chicken http://tvtropes.org/pmwiki/pmwiki.php/Main/TastesLikeChicken )
Andrew Grimm
+2  A: 

Robocop Build

Ex: "That'll be in qRPSd v 2.Robocop" or "let me compile that with the --robocop flag quick"

Etymology: A small project I'm doing needs to have an initial version released by August. We then want to improve it by August 2011 to include features which are simply not feasible now. Feature request e-mails were always suffixed with "if you don't finish this by next August, robocop is going to break your legs!" and other Robocop related threats.

Robbie
+2  A: 

Scum Churning Queue

I pattern whereby items on a queue that fail get placed at the bottom so as not to block other items.

LukeRazor
+5  A: 

Call Stack Carnage when you accidentally (or purposefully) corrupt the stack. Also when you use extreme amounts of tiny event notification messages and attempt to read the call stack with an attached debugger.

Chris O
+40  A: 

Click it Harder - Developer response to QA testing the developer's software when the button doesn't function, or doesn't function completely.

Vaneshia: PJack. The save button doesn't save.

PJack: What? No way. Works on my machine... show me.

<Vaneshia.click>fail</Vaneshia.click>

Vaneshia: See.

PJack: Ohh, you've got to click it harder.

Jack
The sad part is there are GUI toolboxes (GTK+ being a notorious one) where clicking a widget lightly, on a slow machine, makes it focus (so the computer noticed the click!) but not actually activate/click. You need to click harder (longer) for it to work. What's worse, if you tap on a touchpad, you can't tap "longer" because it won't register at all. So you must use the "mouse keys" instead... argh.
SF.
I love the messed-up intuition at work here, very funny!
j_random_hacker
+1 for the image...
staticsan
I was involved with some development for a device with a touch screen.. and this was actually something you may have needed to occasionally do to make things work.
Jani Hartikainen
As I termed it: *Push with authority.*
Thanatos
On LabView, in early versions, button up/down handling was polled, and this problem was possible if you clicked and released too fast. You had to click slowly, with feeling.
Warren P
A: 

Amira : Term used to describe an amazing chick that is better than all of the guys on her programming team but that doesn't make them feel bad about it.

Example: "- Who is the new chick? -- That's Sophe, and she's really good. - An Amira huh. -- Totally"

Nice job injecting the lame misogynistic perspective while trying to cover yourself with the "but that doesn't make them feel bad about it" clause.
Chris Farmer
+10  A: 

You're not holding the mouse right

When someone shows me a problem they are having and I don't have an answer for them, I just say "You're not holding the mouse right".

Brian Fenske
AKA: "Click harder!" or, "Pensive click detected"
slf
I once had the misfortune of trying to teach a user who couldn't hold the mouse right. I gave up, after two or three attempts to convince him to click the left mouse button, instead of the right button.
RMorrisey
A: 

A**hole Features

Features that are thought of during release planning that add little to no actual value to the software.

John Rasch
+35  A: 

Pro-gasm

When you love your own code so much you have a programming ... well, ... you know what.

alt text

Revenant
This happens so long as you don't love it too soon before you know that it's awesome and experience the pain of "premature evaluation".
Corpsekicker
@Corpsekicker The best comment yet here on this question! LOL!!
JavaRocky
@Corpsekicker so good.
Thqr
hahaha! I lolled at both Progasm and Corpsekicker!!
iamserious
+1  A: 

LTTL

An abbreviation of the term 'a Little To The Left', came about when a micro-manager kept on shoulder surfing while we were developing a web application. He would constantly come around and ask us to move text a little to the left/right/up/down etc, while we were conecentrating on functionality. The term stuck and has taken flight.

It usually refers to something irrelevant to the current development cycle:

"Darryl came up with another LTTL: he wants the orange background changed to puce to see if it 'pops' more. Just get the report working first.."

Brian Silberbauer
+6  A: 

OutOfLinebreaksException: Linebreaks for Loader.php exhausted. die() has been disabled for your convenience.

This is a very specific one, so I imagine no one can actually relate, but it was gleeful amounts of utter, raw despair for me, hence sharing:

The Story

The PHP Parser is a robust creature that rarely hiccups.

Except when it does.

This is a once-in-a-lifetime occurrence. Apparently I have two lives, because I've observed it getting its knickers in a twist twice now. Let me tell you about the second time.

PHP usually ignores indentation whitespace and blank lines between code blocks - but somehow, when we were updating Zend 1.9.7 to 1.10.3, half our PHP Unit tests broke. I made a copy of the offending file (Loader.php in Zend's autoloading sublibrary), placed the old code in, commented the new code out and was about to sequentially comment back in to find the core of the error when I noticed it was still happening.

  • I did a diff.

The only difference was in comments. I didn't even want to believe it, so I asked two other people to look at the diff and find the programmatic difference for me. They confirmed a lack thereof. I still felt my sanity slowly leaving me.

  • I checked the file with a hex editor.

No broken UTF-8 characters. Well-formed through-out.

  • I took out the comments.

Suddenly it worked again. Cue first manic, despair-driven cackling!

To cut a long story short, I 'narrowed it down' to the amount of linebreaks in the file (without the help of die() which didn't quite want to work in that file anymore). The old file would break just the same if you put more that ~two more linebreaks into it.

To cut to the chase: To this day we don't know what caused it. Suhosin patch? No. xdebug? No. Suhosin extension? No. PHP core? Apparently no, except that's the only thing left to 'explain' it. (Same PHP version on Ubuntu/Kubuntu/CentOS was showing the error, but it wasn't doing it on OpenSUSE; we're not sure if it was the OS or their respective package doing it.)

Our project internal wiki documented the mess and this is (paraphrased) the 'Solution' section:

Depending on your definition of 'solution':

  • There is none
  • Zend 1.10.4

So we had the Exception on our Whiteboard for a while. Much amusement ensued.

The term

Whenever a parser of an interpreted language hiccups, for whatever reason, and elements of the source file that should not matter suddenly do, despite well-formed syntax and no broken characters, any observed changes in logic are to be considered the result of an OutOfLinebreaksException.

(Even if it has nothing to do with linebreaks in that particular parser-tripping-over-itself case.)

pinkgothic
JavaScript seems to suffer a lot from this...
Martinho Fernandes
"gleeful amounts of despair"??
AviD
@AviD: You know. When things are so bad you can't help but cry tears of laughter. >.>
pinkgothic
heh, yes - +1 for the hysterical narrative - we've all been there (even if not in PHP...)
AviD
This has happened to me with javadoc comments in the Eclipse IDE. Removing the comment fixed the build.
RMorrisey
+4  A: 

Con Coverage

Tests that run through your code and adds to your code coverage, but has no actual value other than making your code coverage percentage look good.

gautema
+1  A: 

Quantum bug. Its a heisenbug but I didn't think of that play on words ;)

Goz
+20  A: 

Affair

If you invoke a private method in C++ from a class with friend status.

wwwrun
C++: Where friends have access to your private members.
Chris
HA +1 for woods pic
StingyJack
"only friends can touch my privates"
Andrei Rinea
+17  A: 

Claustrocodeia

The fear of coding on a dinky monitor that has no screen real estate.

gmcalab
I felt this on my 14.1" laptop, years ago
Vlagged
Someone I know was tryng to use visual studio on a netbook, now that's some claustrocodeia!
gmcalab
+3  A: 

worning: it works but with warnings :)

pancake
+2  A: 

Non Breaking Change

In version control, a changeset that is strongly supposed to not break the build, e.g. fixing a typo in a comment.

If the build actually gets broken, you can skip through changes marked as "NBC" to quickly find the most recent actual (possibly-breaking) change, which is likely the culprit.

mafutrct
... or you could use continuous integration to tell you exactly which commit that broke the build, even if it was supposed to be non-breaking change.
Lasse V. Karlsen
I would look at the "non-breaking" changes *first*. The committer clearly thought the code was so obviously right that they didn't need to test it before committing. That's probably your culprit right there.
finnw
+13  A: 

Darwin programming -- keep evolving the code randomly (or deterministically) until it does-the-right-thing. Very efficient for example when hesitating between + or - inside a formula.

kabado
This can be highly effective when having to use undocumented, poorly documented or just plain illogical external APIs.
Nick Bedford
Of course, Darwinian evolution is neither random (hello, creationists) nor deterministic. ;-)
Konrad Rudolph
I remember creating some of the very best demo effects that way when I was in the Amiga demoscene. Did you know overlaying a white layer using XOR filter on top of a plasma background fills it with the same plasma flowing backwards?
SF.
+27  A: 

Carpet Logging

The act of completely raping a piece of source code with debug log calls, until pretty much every single line of the code is followed by a call of the form log.debug("After my_killer_function_call, var1=....");

This is done in lieu of using a debugger to step through the code, typically by l33t certification-prodigies who think that only noobs use debuggers.

Il-Bhima
Maybe they think only people writing single-threaded code use debuggers. Some heisenbugs are not effected by logging but will not appear with a debugger attached.
Pete Kirkham
Granted some occasions may warrant it, but its not something that should be done consistently, and THEN have the code checked into source control with all the logging included. Then again, I have implemented lots of concurrent algorithms and rarely have I had to do this.
Il-Bhima
eh. I have a long section of code with every single line prefixed with _DB, which is`#define _DB printf("F: %s, Ln: %d\r\n",__FILE__,__LINE__);`
SF.
@Pete - This has actually happened to me... http://stackoverflow.com/questions/424531/sqlclient-calls-causing-thread-was-being-aborted-at-sninativemethodwrapper-snipa
StingyJack
Sometimes it's the best answer. When you have something that fails on the 500th pass through the loop due to something that went wrong before it's easier to run off a big logfile and look it over--that way when you find where it blew up you can look backwards and see how it got there.
Loren Pechtel
I hated this, when working with javascript in a greasemonkey script (firebug support would be nice) i needed to put a few alerts to figure out where my error was. I loved the trick i was taught with try/catch. An error in try will be caught and you can get some kind of hint of what happened.
acidzombie24
..or for bugs that occur only with one customer, in a central piece of code that, if broken in any way, would make hundreds of customers storm your office wiht pitchforks.
peterchen
How about "vacuuming the code" for someone who has to clean the carpet up after it's been bombed?
Warren P
Oh, I've done this for mobile software when I'm just doing maintenance. Set up an emulator (which won't replicate this phone's quirks) or just log more? The latter usually wins.
Paul Marshall
The point everyone seems to have missed is this: what do you do with the logging code after you finish? Do you remove a lot of it, leaving just enough to provide a trace of live code? Or do you commit the code, with logs and all into source control, so that they eventually make it onto a production system?
Il-Bhima
Debuggers are not available for doing post-mortem analysis. We do that kind of logging, because issues cannot be reproduced.
Thorbjørn Ravn Andersen
@Thorbjorn: No!
Il-Bhima
Yes. We then disable debug level code in the log system when production has proven to be stable.
Thorbjørn Ravn Andersen
+9  A: 

SpongeBob developer

A developer that happily hacks away without a care in the world what happens to the codebase often to the sound of "la la la".
alt text

Roger Alsing
I laughed at that one for real!
Jake Petroules
+2  A: 

Ping Pong Development Methodology - Whack it hard until it doesn't bounce back.

Needs a more complete description. I don't get it :(
andyjdavis
Also known as "using your end-users as QA"... quickly hack something, see if it runs in production, if it fails, hack some more, rinse, repeat...
A: 

I haven't seen it here yet, and I'm sure that many people think that they coined this, but I independently came up with "to play captain obvious" as a dubugging technique. In CS 1, when you have a missing semicolon, or whatever, if you haven't found it in 20 minutes, you're not going to find it. But your friend, looking at the code for 30 seconds will see it immediately.

In college I actually had a friend make a super-hero style cape, and sometimes (usually really late at night) when asked to play captain obvious we'd duck behind the desk, put on the cape and fly to the rescue (With the help of rolly chairs)

Brian Postow
+3  A: 

The term Ghost Bug. Referring to a bug that cannot be reproduced in controllable conditions, a bug that seams to have appeared but no one is sure about it. A bug that requires voodoo for fixing. A bug that drives a developer to think that a mutex should be used in a single threaded app.

Mircea Nistor
Seen this, turned out to be caused by Application.DoEvents() and Control.BeginInvoke().
Joshua
Serves you right for using modal dialogs :-)
finnw
Only it wasn't modal dialogs.
Joshua
+3  A: 

Automagical - A term used by a want-to-be developer to describe an automated function they don't really understand. Most often used by PMs who think they're really a developer.

EAMann
Or someone is just jealous all the other programmers manage to use 'automagically' at all the right times...
vfilby
Occasionally, you'll come across a real guru who'll use the term about some code. If they do, beware! Either the guru knows what is going on and wishes they didn't, or the guru doesn't have a clue due to the extreme gnarly-ness of the offending function. Either way, be scared. Be very scared.
Donal Fellows
... or the guru knows exactly what is going on, and just doesn't want to spend time explaining all the little details that you don't need to know about. Example: *If you call the Get<T> method, the DI container will* automagically *return the correct instance of that interface*
Martinho Fernandes
I've usually heard automagically used when talking about having the computer perform a task instead of the user. For example "when I select a form these fields should be filled in automagically instead of me having to type it all in."Automatically is particularly appropriate when its a piece of functionality where the computer doing it is likely to impress the user leading the less technical to believe something magical has occurred.
andyjdavis
+7  A: 

Error Message Blindness For those compiler and linker errors that colleagues can't handle until you read the error message out loud to them. Related to Popup Message Blindness.

Kaz Dragon
I have that! especially when the program gives 1200 (not an exaggeration) warnings that aren't actually a problem...
Brian Postow
To some people this seems to be an incurable disease.
Martinho Fernandes
Could referee to "Errant error, nothing bad happened" :)
Rafal Ziolkowski
+14  A: 

Binary Comment Debugging (BCD) - recursively commenting half of the suspect code until the bug disappears. A method usually used in late night coding sessions close to a deadline. Only works on obvious bugs and is usually used when the mind is on autopilot.

Mircea Nistor
I call this "bisection debugging".
detly
Could also be called "binary chop debugging"
finnw
Debugging by bisection is really useful in writing LaTeX code.
bjarkef
Like Binary Chop
peterchen
+4  A: 

Faith based programming

When "Jimmy", instead of using a more.. "scientific" approach to problem solving, just randomly delete, comment or rename a variable/line of code and prays for it for compile/runs.

This is sad, but true :(

Good programmer expected ( not mine originally )

When "Jimmy" says: It gives me an error!!

I ask? What does the error says? "Good programmer expected?

OscarRyz
Related: General Programmer Fault.
Potatoswatter
+7  A: 

Faith-Based Programming - when you're writing code and you know it's going to take an act of God for it to work, or you're using a technique that "nobody quite knows how it works, but it does" (often related to stochastic algorithms).

vicatcu
+4  A: 

Sheng Long: Whenever we catch a SQL Injection, PHP Injection or anything like that, the user gets and alert message with the classic message from Street Fighter 2: "You must defeat Sheng Long to stand a chance!". Now, whenever we want add security layers or refer to something that happens after these filters, we call is "post Sheng-Long code".

Screw the developers I have power: We use it whenever a client asks us to do something ridiculous, but he has power inside of the company to request anything. Based on the animation Yu-Gi-Oh The Abridged Series.

Gabriel
Upvoted for the Abridged Series reference :P
Macha
+3  A: 

Orzo Code

Code which is incomprehensible because it is too modular. Typical signs include functions with very similar names that do nothing but wrap each other, classes which do not remotely correspond to types of objects, and objects which exist only to have a single pointer-member of a subclassable type with a pure virtual function.

dspeyer
A: 

Doctorowing - Devoting an undue amount of time to creating an overly-complicated multistep routine using free or open-source methods to save money when a $20 app would fix it once and for all. Named lovingly after open-source proponent Cory Doctorow.

also

Apple-Bias - Creating a script or using an app that doesn't produce the intended result. Giving it 30 seconds of thought before scraping the whole thing because it didn't "just work."

nurtured futility
+14  A: 

Turducken

Term to describe insane nesting of data in various formats, usually stored inside a relational database. Hence creating an abomination resembling the stuffing of a chicken inside of a duck inside of a turkey.

Example:

A database text-column containing a list of pipe-delimited name/value pairs with the values being PHP objects as serialized strings.

SELECT options FROM filterfield WHERE id = 123;

yields

foo=bar|options=a:4:{i:0;a:2:{s:5:"title";s:13:"Kids + Family";s:7:"options";s:128:"Amusement Parks...

Another example is how several wordpress plugins store their configuration options as serialized PHP array in the "wp_options" table.

Saftschleck
Cartoon - http://castercomm.files.wordpress.com/2008/11/573-turducken.jpg
John K
Like config data submitted as JSON, then converted to XML, to be stored in a single database field?
RMorrisey
+2  A: 

Slacker

Ironic reference to a hard working programmer, coined by the late great Tim Browse. Working on Starship Titanic it was not unusual to work 15-18 hour days for 6 or 7 days each week, with all nighters to punctuate the deathmarch. We began referring to ourselves as "Slackers" for not working the full 24/7.

Jason Williams
+77  A: 

Baseball Exception Handling This is a pattern wherein when application logic is implemented via a deeply nested set of try/catch/throw blocks. Specific application logic is implemented in catch blocks and correct program behavior depends on exceptions being thrown at the right time. In the canonical example, the throwing and catching happens within a single, very long, method.

Example:

try
{
    // 10-1000 lines of code
    if (someCondition)
         throw new SomeConditionException();

    // 10-1000 lines of code
    if (someOtherCondition)
         throw new SomeOtherConditionException();

}
catch (SomeConditionException)
{
    // 10-1000 lines of code, preferably with nested baseball exception handling
}
catch (SomeOtherConditionException)
{
    // 10-1000 lines of code, preferably with nested baseball exception handling
}

Advanced Baseball Exception Handling The same as Baseball Exception Handling but with the addition of added state held in the Exception class so that the catch block can logically branch based on where the throw was. This is useful when a single Exception type is used but catch logic needs to know where in the process it was thrown from.

try
{
    // 10-1000 lines of code
    if (someCondition)
         throw new SomeConditionException("early in the process");

    // 10-1000 lines of code
    if (someCondition)
         throw new SomeConditionException("late in the process");

}
catch (SomeConditionException e)
{
    // execute shared logic

    if (e.State == "early in the process")
         // execute early in the process logic

    if (e.State == "late in the process")
         // execute late in the process logic
}

dkackman
Oh that I could give this +2.
detly
If your code ever gets to the point you have to do something like this, you're doing something very wrong.
Ubersoldat
+1 as I've seen this. Maybe once too many. I suggest calling outsourced code like this "Cricket Exception Handling"
sal
AKA "using exceptions for control flow" - a terrible approach to software design, given how slow it is to throw an exception.
Finbarr
@sal +1 Yes, I agree, "cricket" is far more appropriate for this.
Evgeny
@Finbarr: I'm not sure the problem is speed (and exceptions are not slow in every language)
Martinho Fernandes
Another name for this: Exceptional Event Handling - for those exceptions that are soooo special they are considered events.
Kelly French
This is why I'm very wary of how exceptions in most languages that support them: they are a fancy way of doing `ON ERROR GOTO` (for those that remember GW_BASIC). Ironically, they can be used very elegantly, but the actual mechanism is very heavy in most languages.
staticsan
+1 to jdk for the added imagery
dkackman
This is the scariest thing i have ever heard.
acidzombie24
+14  A: 

Hillbilly Namespaces: using the same prefix on all functions/variables/table names for a particular module rather than putting it in its own namespace. Used when the environment doesn't have namespace support, or when the programmer doesn't or didn't know how to use them.

Flock of Geese Code: A series of deeply nested conditionals where exceptions, return statements, or even gotos would be more appropriate.

Frank Schmitt
+1 for the mental image of bracketed code aligned with formation of flock of geese. Neat.
John K
I've heard the terms "Smurf Naming" and "Batman Programming" for Hillbilly Namespaces.
sal
Whereas Hillbilly inheritance would be where one class inherits from two classes which inherit from the same class.
Andrew Grimm
+6  A: 

We have three types of employee at our web dev company:

  • Pokey — graphic designer
  • Gumby — web developer
  • Blockhead — programmer

"We need to make a gumby-friendy API for this feature"

"Ask pokey to create an icon for that button"

blockhead as in "I am Inwiiincible!" ?
Zeus
A: 

Humphrey Appleby

From the series Yes Minister/Prime Minister to describe a person who has a roundabout or exaggerated way of describing things that have gone wrong or have been implemented. For example:

When I say I am overstretched, I was of course talking in a sense of total cumulative loading taken globally, rather than in respect of certain individual and essentially anomalous responsibilities that, logically speaking, are not consonant or harmonious with the broad spectrum of intermeshing and inseparable function, and could indeed be said to place an excessive and supererogative burden on the office, where considered in relation to the comparatively exiguous advantages of their overall centralisation.

Kartik
+2  A: 

Divtastic

Not mine, but coined internally. Stems from a contractor building a Javascript gallery switcher with a ridiculously amount of div elements. Essentially tag/element soup.

sime
+3  A: 

Battling : My friends and I refer to programming as Battling. "I was up late battling that program last night" Or "I really had to battle with this error I was getting"

Drok
+46  A: 

The future is not implemented yet

Derived from a misspelled comment that originally meant "the feature is not implemented yet". Now used in various other scenarios, whenever a feature is not yet implemented.

Olli
I used that in my blogging engine when I didn't support delaying posts yet. It was an error that showed up when the DateTime was beyond today.
Arda Xi
+3  A: 

Emser Code/Method/Function/StoredProcedure - "Emser" is a part of an application that contains code that is so complicated (even when the task is easy) that you need a few hours to figure out what the code is doing. The better choice is to rewrite the whole function/method/stored procedure. This attribute can also be given to developers if it is known that they mostly write Emser code - in fact, this attribute is named after a developer.

A typical conversation goes like:

I have to look what the code does...oh my god it's an Emser function, we better rewrite it, that should me much faster than finding the bug; if this is even possible!

Other comments that you are able to hear when reviewing Emser code:

WTF, Oh my god, Why is it doing that?, That's completely against our programming guidelines,...

Mike
+1  A: 
daramarak
+1  A: 

Blown Stack Ok this is kind of a reverse one since it's legitimate programming jargon applied to meatspace.

When something of an extreme nature interrupts your technical conversation or train of thought in such a way that you totally forget what you were saying/doing.

example:
[some technical discussion with a coworker 1]
[coworker 2 interjects with some grossness just found on 4Chan]
[spontaneous vomiting event from you and coworker 1]
CW1: What were you saying?
Me: Can't remember, that [gross pic] just totally blew my stack

geocoin
+16  A: 

Company Whore

a module or a piece of code, every programmer of the company had it's fingers on.

Hinek
How many sex-related answers have been given to this question?
Andrew Grimm
:)))))))))) I need to use this.
Andrei Rinea
WTF!! this is awesome!
iamserious
It was coined by my team leader, some years ago, when he broke the news to be, that I would be working for 4 week directly at our customer to fix some things in a module in their cms: "auf dem jeder schon mal drauf war" (german) ...
Hinek
+1  A: 

X-Coffee Report/Process - The X-Coffee Report/Process is a report or process created by a developer at some point in the company that is so slow and takes so long that you can measure the time it takes from initialization to completion in the number of cups of coffee you can retrieve, bring back to your cubicle, and drink to completion. Replace "X" with the number of coffee cups you think you could drink during the amount of time it takes to run, and select Report or Process based on whatever it is that you're kvetching about taking too long to finish.

Usage example: "Yeah, I heard there's a problem with our settlement reports. I sat there all afternoon waiting for it to process: it was a three coffee report."

EdgarVerona
+7  A: 

Firm copy, n: a scanned hardcopy, like a raster image of a text. It's impossible to edit or parse programmatically, but is still better than a hardcopy in terms of weight, volume, storage, etc. For images, "firmcopy" may refer to reduced-resolution soft copy of the actual image.

It's analogous to "firmware" as something in the middle between hardware and software. Google seems to know nothing about it yet. I hope it catches :)

Duck: a physical unit (typically, voltage) corresponding to 1 LSB in raw integer data sent to a DAC (or ADC) for further conversion to voltage.

Example - "5V corresponds to 4096 ducks", "Atmospheric presure is 2200 ducks with this sensor", etc

Kinetic hazard: The opposite of "potential hazard"

Perversion: a manual version control system for large data and 3rd party files, that cannot be stored in Subversion.

More here: http://bugpwr.blogspot.com/

Pavel Radzivilovsky
A: 

Spaguetti code

When you look at others works for hours and don't understand anything because is too mess up.

Giancarlo Corzo
And you coined this one yourself? Hardly.
DevSolar
I know I heard the term "spaghetti code" sometime in the late 1970s.
DarenW
Also failed to mention why "Spaghetti code": because of a completely unstructured control flow (usually using lots of 'goto') that makes any flow chart look like a heap of spaghetti.
DevSolar
+4  A: 
Finbarr
A: 

Stolen source

After Windows NT 4.0 and Windows 2000 source code was leaked, I use to say that Windows is a stolen source operating system.

Victor M. Alvarez
+7  A: 

Wrong Finger Error

What gets written in a bug report for our touch-screen software when manual testing cannot reproduce a problem and the developers are too tired to care anymore:

Tester: Module X doesn't work properly.

Developer: Show me the steps you're doing to test it.

Tester: I touch this, then that, then...oh wait, it works now.

Developer: Which finger did you use to touch the screen?

Tester: Index finger on my right hand.

Developer: There you go - you must've used the wrong finger earlier.

Tester: Oh.. right..

JBRWilkinson
+7  A: 

Spectagular Expression

A cleverly done, very useful regex

Midhat
+5  A: 

Dollarscore/Anglesign

In PHP, reading code is a pain with the $_s and the =>. A team I was on referred to the former as a "dollarscore" and the latter as an "anglesign". Handy!

mattbasta
PHP we're looking at YOU!
Nick Bedford
The latter is called a hashrocket in ruby.
Andrew Grimm
As of C# Lambda expressions, which use `=>` as operator, Microsoft propose: read as "goes to". Ref: http://msdn.microsoft.com/en-us/library/bb397687.aspx
moonground.de
@Andrew, I don't know why but hashrocket sounds rude...
AviD
A: 

Gurjeet Code

We had this software engineer who was fond of writing code by copy, paste, and modify, and would maintain all copies. He also used strings as enums. Then he left.

Now everytime we run into copy paste and modify we call it Gurjeet code in annoyance.

Joshua
[...] Then he left. Muhahaha
Dercsár
+6  A: 

TLA. It stands for Three Letter Acronym. It's from a coworker who used to work at Digital where they had lots of TLA's. Two letters is too short and four is too long. Examples: TCP, WCF, WPF, TDD, BDD, JVM, need I go on?

SteveDog
The term **TLA** dates back to at least the 70s.See http://catb.org/jargon/html/T/TLA.html
Loadmaster
Don't forget the ETLA (E == Extended…)
Donal Fellows
Did -you- really coin this?
SF.
Gee, I can't find CLR, DLR, CLI, CTS, CLS, CIL and VES acronyms!
Stringer Bell
+1  A: 

Greaser hack, or in my own native language (swedish) "Raggarhack" - A piece of very badly written software.

Clean
jdk: Thanx for the edit!
Clean
+16  A: 

Encraption - Really insecure encryption, which gives management the illusion that the code is securing sensitive data, but in reality isn't.

For example, management has a requirement that user IDs and passwords (eg, for database access) must be encrypted within the server configuration files. However, the data files containing potentially sensitive info (eg, SSNs, driver license numbers, bank account numbers, etc.) are stored in unencrypted plaintext form on the server.

Obviously, if network security were ever compromised and the server was hacked into, the hackers wouldn't bother trying to decrypt the user-IDs and passwords, because they have instant access to the real data in the clear.

Loadmaster
I also know "encraption" as the "too many cooks spoil the broth" phenomenon that can be observed quite too often - An initially acceptable concept is "encrapted" by all the people giving their two cents and finally ends up being a pile of c**p.
alexander.biskop
@alexander.bishop: Funny how you obfuscated only the final crap :)
John K
There's also the method of encrypting the data using a reversible encryption, along with the key used for the encryption.
Eran Harel
+2  A: 

Optimize the correctness right out of the code - Excessive application of optimizing code by hand which eventually results in broken code.

We all know programmers who spend far too much of their time trying to optimize methods by hand (eg, re-using variables to save stack space, moving too much code out of inner loops, etc.) rather than spending time getting the code to just plain work properly. It's a fact that at least 80% of code does not need optimizing, since it's run only once or less than 10% of the total CPU time of the program. Overly aggressive hand optimization also obfuscates the source code, making it unmaintainable.

Loadmaster
A: 

Palimpsest

Any part of a program that isn't used anymore, but got left behind, on purpose or accidentally, as a memory of an earlier time. For example, an API method that nobody uses anymore, but has to be kept for backwards compatibility. Or a function that, after refactoring, isn't actually called anywhere, but whose definition you forgot to delete.

Outside of programming, it refers to a text that was erased and overwritten with something else in order to reuse the parchment, but the original text can still be just made out.

Dan Menes
And thanks to optimisations they don't bloat the binary!
Nick Bedford
We call those "Wilted Celery" as in, "I saw some wilted celery in the fridge but I left it there in case someone else wanted it..."
Brian Postow
+4  A: 

Brute force programming

When a (generally clueless) "programmer" tries every sequence possible and imaginable of instructions and blocks of code in order to get a working program that does (or seems to do) what have been asked. After a few hundred iterations, they manage to get more or less a working solution and call it finished.

I teach some Computer Science classes, and this term is specially applicable to those undergrad students who managed to get into a CS course, but really do not have aptitude to be computer scientists at all. They lack the abstraction skills to understand how a program is written.

It is an allusion to brute force attacks, used to break encryption by trying every possible sequence of bits in the key.

Juliano
In french, we say "Bête et méchante" which rougly translate to Stupid and Evil :)
David Brunelle
a.k.a. "bigger hammer"
harpo
A: 

Twenty-thousand-foot fire drill

I didn't invent it--it was a popular term at my last place of work. Refers to a really big project that is really far behind schedule and has a deliverable due tomorrow.

It is a conflation of two phrases that one of our partners liked to use: "Just give me the twenty-thousand foot overview," (meaning give me the big picture, but spare the details), and "We're in a fire drill" (meaning we're on charrette to meet a deadline).

Dan Menes
+6  A: 

Bob

This one's kind of narrow, because it is specific to interpreted scripting languages that don't have decent debuggers in which you can set breakpoints. Specifically, it came up at my last job where we used Stata a lot. I got in the habit of deliberately inserting a syntax error into my code wherever I needed a breakpoint. Usually, I just added the word "bob," which was quick to type, and unlikely to be recognized as a command name. It can be used as a verb, as in "bob that function after you load the data--I want to have a look at it before we do anything to it."

The practice caught on, and soon everyone was using "bob" to add breakpoints. Unfortunately, they weren't always as conscientious as I was about removing the "bob"s when they were done debugging. This gave rise to

Scraping Dan off the ceiling

Which had to be done every time I tried to run the build and it broke because someone on my team had left behind an errant "bob." Also known as "reaping what you sow."

Dan Menes
I know someone who used to call his temporary variables `bob`. Even worse: `int bob = 0xBADF00D;`
Nick Bedford
@Nick Bedford: Ouch.
Dan Menes
@Nick Bedoford: Now that you mention it, there's an entire variable naming convention based on bob: bobTheString, bobTheIterator, bobTheFileSystemObject, etc.
Dan Menes
@Dan: Is there bobTheBuilder?
Andrew Grimm
@Andrew: Good one. Believe it or not, I didn't see that one coming. Is bobTheAbstractFactoryClass close enough?
Dan Menes
+1  A: 

This is a follow up to the earlier Higgs-Bugson one.

Grand Programmed Theory (GPT) states that all project forces within the field of computer programming can be combined into one set of equations dictating any and all possible behavior. Those factors, the electromagnitized servers, weak programmer forces, and strong end user forces and the various effects of these force interactions consist of the GPT. Since the critical Higgs-Bugson particle’s existence has yet to be confirmed, the GPT still remains incomplete.

Joshgenti
+4  A: 

I'm covered in chicken blood

alt text

Stephen M. Redd
This one only works when used without explaination...
Stephen M. Redd
I get it. ... the sad downvoters don't.
Jeff Meatball Yang
I don't get it.
Fábio Batista
maintenance programmers do...
Stephen M. Redd
Think voodoo and ritual sacrifices.
Tim Pietzcker
+4  A: 

M.O.A.V. - Mother of all Views

In a database, this is the view that consolidates data across most or all of the database through numerous joins to other views, subviews, and tables. It is often used for reporting purposes or to transform data into a reporting structure. If you were ever to encounter the 260 table query limit, it would likely be through executing a query against this.

Technobabble
+6  A: 

TIN Loop - a situation that arises when a programmer makes an attempt to fix a bug by guessing what the cause might be, declares the bug fixed without verifying, and tells the user to "try it now." ("TIN" is short for Try It Now.) Invariably, the user will encounter the bug again and report it to the programmer, who will proceed with the next half-assed guess of a fix, thus repeating the same scenario.

A more specific version of the term is the n-order TIN Loop, where n is the number of "try it now" iterations.

MDRoz
+3  A: 

Developer Fairies and Infrastructure Ogres

Terms coined by Sahil Malik and often referenced on the .NET Rocks! podcast to represent the contention that often exists between the IT and development perspectives of implementing a solution. Developer Fairies simply want to leverage the best technology to solve a problem, while the Infrastructure Ogres are often more concerned with security, reliability, and performance.

Technobabble
+1 for mentioning .NET Rocks http://www.dotnetrocks.com/
John K
+6  A: 

Programmer DNA.

(Do. Not. Assume.)

Look it up in the docs. Write Asserts. Ask your coworkers. If there is as much as a spec of doubt, check it.

It's something that should be in the "DNA" of every programmer, ingrained so deep that they can't sleep well if they based even a line of code on an unchecked assumption.

Those assumptions can lead to horrible mutations, you know...

DevSolar
+7  A: 

ManHunt. The process of finding the person responsible for bad code.

MicroCheese
+15  A: 

notwork - n. a network in a non-working state

Can't claim original credit but it's stuck around with us for years.

Matt
Reminds me of "Packet Over Air" from pre-wireless times.
Andrew Grimm
Reminds me of my ISP :))
Andrei Rinea
+30  A: 

Automanually

The term is used to refer to a batch job or application that should be scheduled or triggered automatically, but due to unspecified reasons (typically, bugs), requires manual intervention every time. (Note: This is not the same as automagically.)

"The data is stale because the synchronization job is scheduled to happen automanually and I've been on vacation."

MDRoz
Love it! Been there many times.
j_random_hacker
+1 I was handed such a piece of code lately, and through it back in the face of the developer who wrote it as soon as they came back from their vacation. Grrrr
Eran Harel
+2  A: 

Code Reuse - Not used in the normal sense of the term, but instead used to refer to parts of our old codebase that seemed to be constructed exclusively by use of copy / paste.

andypaxo
A developer who used to be in my group actually believed code reuse meant copy-and-paste--the code is being reused, right?? :)
Marc Eaddy
A: 

Productionize - The act of stabilizing a system after the users have accepted it.

This is a common term used by executives where I work.

Usage:

"Just deliver the system, we can productionize it after they've accepted it"

Also used for project names as in:

ERP System Productionization

Chuck Richmond
+5  A: 

ship in a bottle - an API that is so over-simplified that it is painfully complex to use.

To see an example of this, take some well-written polymorphic code, remove all the derived classes, and put a state bag in the base class that holds all information that used to live in the derived classes. For extra points, store the state bag as an XML string.

For an extreme, but made-up example of this in hardware, imagine a remote control with only one button that requires you to enter commands in Morse code.

Neil Whitaker
Sounds like you have some collected garbage objects.
Jeff Meatball Yang
+1  A: 

Collected Garbage Objects

Those classes that you first wrote when you prototyped the application, only to realize they were flawed in one regard or another. Maybe you still use some parts of them, or have moved them to one of those sad "deprecated" namespaces.

You know you should get rid of them, but sometimes, it's hard to let go...

Jeff Meatball Yang
A: 

"Blind Coding" - Someone tells you the spec for the communication between your client app and the server app, and give you a piece of code has example that has little or nothing to do with the spec presented.

And you just go in there and code until you get it right.

netcrash
+18  A: 
Hélène Martin
Nice one!!!!!!!
Andrei Rinea
+19  A: 

Classtrophobia

When someone chooses not to use the obvious object oriented approach when it is available.

Farthingworth
+2  A: 

Sucking Mud

Coined by my old boss, Rick Cline. Now retired, he started his programming career in 1959. Here's the entry I submitted to the Jargon File (aka The Hacker's Dictionary) in 1994.

(Applied Data Research) Crashed or wedged. Usually said of a machine that provides some service to a network, such as a file server. This Dallas regionalism derives from the East Texas oilfield lament, "Shut 'er down, Ma, she's a-suckin' mud". Often used as a query. "We are going to reconfigure the network, are you ready to suck mud?"

http://dictionary.reference.com/browse/sucking+mud

Mark Harrison
+1  A: 

"Sorry, Sir" Bug

A bug caused by an externally developed API, tool or system that means you can't actually correct an issue. Even work-arounds haven't worked. You just have to live with it.

Nick Bedford
+3  A: 

Bit Bucket: Dates at least from the 1960's at IBM. It's the place where bits go when removed from memory.

Tyranny Of Print Width: Coined by me, and never in wide use. It's the reason you can't squeeze the additional column on the report.

SeaDrive
Never in "wide" use, eh? ;)
harpo
I've encountered the tyranny of print width when working with SSRS reports +1
Jazza
+1  A: 

Horror-ble.

The program you made in Win32 a while back. You'd rather rewrite in C# than subject another programmer to its horror.

typedef struct tagHORROR { int unused; } HORROR;
Nick Bedford
+20  A: 

Mosquito Bites - The annoyance of small software bugs that are frustrating but do not cause critical/catastrophic errors in the usage of the application. They are typically ignored until the agitation becomes painfully annoying.

jasonk
I was hoping this would have something to do with bytes. :)
Cam
AKA "dying of a thousand paper-cuts"
slf
+2  A: 

Hudson Moment - A moment of panic/distress that occurs during the realization that a project has become woefully doomed to a horrible fate. It typically involves a wild verbal rant and complete loss of morale. This moment usually ends when a nearby coworker suggests a way out of it and somebody else says, "Knock it off Hudson!"

Taken from the scene in the movie "Aliens" where Private Hudson freaks out and starts yelling:

Ripley: How long after we're declared overdue can we expect a rescue?

Hicks: [pause] Seventeen days.

Hudson: Seventeen days? Hey man, I don't wanna rain on your parade, but we're not gonna last seventeen hours! Those things are gonna come in here just like they did before. And they're gonna come in here...
Ripley: Hudson!
Hudson: ...and they're gonna come in here AND THEY'RE GONNA GET US!

Ripley: Hudson! This little girl survived longer than that with no weapons and no training. [to Newt]

Ripley: Right? [Newt apes a salute]

Hudson: Why don't you put her in charge?

Ripley: You better just start dealing with it, Hudson! Listen to me! Hudson, just deal with it, because we need you and I'm sick of your bull@%$#.

jasonk
Where I come from the response to something like this is always: *Game over, man! GAME OVER!*
Syntactic
+2  A: 

Ninja call:

A function call that doesn't call on the function you thought it was supposed to call on, giving either segfault or garbage data back.

Maister
+2  A: 

Pixie Dust - a "tool" used by developers to "magically" fix certain issues via abnormal/illogical/unexplained means. (coined by the leader of our support team) When an issue completely baffles the development team we are "out of pixie dust".

jasonk
+11  A: 

Committing hairy query

An act of self immolation caused by many nested sub-selects, unions and joins.

Actually I just use the term when I let other people on my dev team know the SQL is getting deep.

schemathings
+4  A: 

Doomed loop. A smelly device for a clean flow control.

VB

    Do 'omed

        '' lots of stuff with arbitrary exit points

        Exit Do
    Loop

CS

        do//omed loop
        {
            //lots of stuff with arbitrary exit points

        } while (false);

Sky Sanders
It's also used in C to make macros less nasty.
Donal Fellows
+4  A: 

Revelation

Discovering or finally actually using an API or technology, like LINQ, which everyone else has been using for years.

You consequently spend three days rewriting all those for loops and feeling stupid for never getting around to it beforehand.

I'm guilty of this.

Nick Bedford
"I was so disappointed when I realized AJAX was just this thing I'd been doing for years already" -- my web designer SO
Zack
wtf is LINQ????
Matt Joiner
+18  A: 

Ravioli Code – The object-oriented equivalent of spaghetti code, where it's all in nice small self-contained packets, yet is still impossible to grapple with and covered in sauce (i.e., where finding out how anything actually happens requires understanding virtually every method of every class in the whole damn program).

alt text

Donal Fellows
We used to call this "spaghetti with meatballs" code.
MDRoz
I attended a class in APL in which the instructor advocated that each function encapsulate one decision, and only one decision.
SeaDrive
@SeaDrive: Feels like a bit of an indictment of APL that that sort of thing is encouraged. ;-) I believe a function (or method or whatever) should do something that it is possible to clearly describe without a program.
Donal Fellows
+1  A: 

#inclide

On a not-so-small C project, making a stupid and difficult to spot typo (or other dumb error) in a header file included in just about every compilation unit. Depending on your compiler settings, the results range from a single error message to hundreds. Depending on sleep levels, prevailing sanity, etc, time to fix can range from seconds to intervals best measured in multiples of the time it typically takes you to find your keys when you're already running late for something.

(For added word play, pronounce it to rhyme with "elide," because that's what your vision centres will do to the mistake when you look for it.)

detly
I'm reminded of when a fat-finger typo removed a critical parenthesis (or maybe added one?) from a *very* common macro in a large C project. Not one file in the `make -k clean build` run would successfully compile and the errors were legion, sometimes hundreds per file. OK, I found it rapidly but the first thought on seeing the build log was definitely “WTF!” Added bonus points if the compiler produces so much output per file that your terminal no longer contains the first location of the error…
Donal Fellows
+6  A: 

Right-Tap or Right-Touch - the theoretical gesture a user does on a touch screen device that mimics a mouse right-click.

I know some UX people that love right-click context menus, and want something similar on the iPad.

Kevin Hakanson
because tap-hold is obviously 'context menu' to all of us... thanks Apple. "tap." no dice. "taaaaaaaap." Ah, yes, i really meant it...
Jeff Meatball Yang
tap, long-tap, two-fingers tap, three-fingers tap, double-tap, double-two-fingers-tap, tap-then-hold, three-fingers-tap-then-hold... *sigh*. And that's still without dragging, rotating, pinching, and tapping while holding...
SF.
+1  A: 

Gorilla-patching

The mother of all monkey-patches. From a Ruby background; this just came up when a colleague was finding where was a method defined in the object hierarchy. As he couldn't find it quickly, he jokingly suggested to monkey patch everything into the Object class itself.

Chubas
The term "monkey patch" was derived from "guerrilla patch", which sounded like "gorilla patch". Everything that's old is new again...
Andrew Grimm
Yeah, we weren't aware at the moment of the comment. Perhaps 'King Kong patching' would fit...
Chubas
A: 

Device Specific Issue

Issues that spring up in a mobile/WAP site, where the site renders perfectly fine on one handheld device and renders shabbily on another handheld device

dkris
Sorry folks. This deserved a -1 for not adding an image :) I am new on SO and will catch up soon.
dkris
A: 

Cheezing - Problems. As in when an application gives problems, its cheezing. Alternatively, if an application produces something that is problematic, that output is referred to as 'cheez'.

Eg:
Admin: The application ended inexplicably, and there's nothing in the log file.
Developer: That's a lot of cheez.

Irwin
"There must be dozens of them. We're going to get CHEESED." (*Like creamed, but it goes on for a lot longer.*) ~ Night Watch, Terry Pratchett
detly
I can has problem's solution?
Windows programmer
A: 

The if...then...else...but statement

When coding in VBScript, there are times when you think you've got if and else parts covered:

if RECORDSET( "Title" ) = "" then
    Response.Write "Untitled Document"
else
    Response.Write RECORDSET( "Title" )
end if

but may be not.

A NULL title will cause the else clause to execute, nothing will be written to response.

Salman A
+2  A: 

Parkinson's Disease: I once worked on a team that had some code that had been written by a guy with the last name of Parkinson. This guy's code was so bad that the following conversation was often heard around the office.

Coder 1: Whatcha doing?

Coder 2: Trying to heal Parkinson's Disease in Module A.

Brian McCord
+7  A: 

Electron Heaven

Where you unsaved code goes when your IDE or PC crashes.

shooksm
No Silicon Heaven? Then where do all the calculators go?
Andrew Grimm
Just fantastic!
Fábio Batista
A: 

Gold Plating -- Joel Splosky in Make Better Software - Schedules

It means adding features that are unimportant (as little as to be useless).

iconiK
+28  A: 

Search And Destroy -- A multi-file search/replace that goes horribly awry.

alt text

roufamatic
Rafal Ziolkowski
#-o, OMG had this one too :((
Andrei Rinea
You hit save? Oh no. You WERE using version control right? Oh NOOOOOO.
Warren P
@Rafal: na ah, search and destroy is purrrfect!
iamserious
+30  A: 

Scar Tissue - Any code that is commented out but still included in the checked-in version. This definition only gives a name, it does not pass judgment on the value of the code in question, i.e. whether its acceptable to check in scar tissue.

public class JDBCDBServlet extends HttpServlet {
    private String      className = "JDBCDBServlet: " ;
    private JDBConnectionPool   connPool ;
    //static JDBCConnectionManager connMgr;

   public void init(ServletConfig config) {

    int maxConns = Integer.parseInt(config.getInitParameter("MAX_CONNECTIONS")) ;
    connPool = new JDBConnectionPool(maxConns) ;
    //connMgr = new JDBCConnectionManager(driverListStr, maxConns) ;
    JDBCConnectionManager.initialize();
    }

It was one of the first topics I blogged about. See "The Scars We Bear". I remember coming up with this term in college back in the early 90's.

Kelly French
I like this one! Especially since I'm often making a "Frankenstein's monster surgery" analogy with my software projects, as in "the patient is still on the table".
DarenW
I like to think of it as phlegm because, in C# all comments have that nasty avovado green color. When I'm looking through some nice clean code and come across a large section of commented-out code it looks like someone coughed up some crap in the source and didn't bother to clean it out.
Evan Plaice
+6  A: 

Ivory Tower Programmer This is a term for academic programmers who are tucked away in their posh, lush computer science departments. They work on the fastest hardware, don't have to be concerned with end-users, speak with a LISP, and pontificate frequently on the meaning or semantics of a program.

Joel Rodgers
+1 just for "speak with a LISP". I actually had an AI professor in college who actually spoke with a slight lisp, and had the misfortune to have been named Shlomo.
Syntactic
Actually, this type is much more referred to than it actually exists.
Dercsár
+1  A: 

Using names of team members as past-tense verbs as in "I've been 'Hughed'" or "I've been 'Douged'" when you spend hours looking for the source of a problem and then realize who implemented it.

Bruce
+9  A: 

Macaroni Code

You know what spaghetti code is. Sometimes in badly written OO code, there are so many short methods of only a few lines, but only a convoluted path of execution challenging to follow, weaving in and out of various classes. It's like with spaghetti except the pieces are much shorter.

Rice Code

If all the pieces are very short, e.g. almost all the real action is in one-liner methods inside a messy OO hierarchy. (It's not pasta, but still is starch.)

DarenW
+5  A: 

turd files are the (often hidden) files that a version control system "drops" around your file system.

Example usage: "Oh, I usually fix that by deleting my turd files and then doing an svn update".

Portman
Even better when this term is visible to end users: http://forums.macosxhints.com/archive/index.php/t-77306.html
Joey Adams
+9  A: 

I go to ask smart guy - when You go to bathroom to re-think some idea...

Rafal Ziolkowski
I've never understood why you seem to get better thoughts on the toilet seat. Or why do you immediately have to go to the toilet when you've just got a great idea.
Indrek
I think it has something to do with fact that when You go to toilet, then you relax yourself and stop looping through your current problem. Then suddenly you realize: "Oh, how stupid I was by doing it this way..."
Rafal Ziolkowski
we used to call this the "Inspiration Booth"
Chris Ballard
+9  A: 

Basil - We were banned from saying 'Fail' in the workplace as it was demotivational, and against company policies... And one employee in particular (who made it onto the Fail board exclusively when we were allowed that) complained to the manager.

So, unbeknown to our boss, we changed the word from Fail to Bail, and then because we already used Bail when we wanted to 'Bail out' of somewhere, it was changed to Basil.

This went through a few of our sub-companies, and also through companies who ex-employees joined and now we refer to a 'Fail' as a 'Basil'...

To this day our boss is unaware as to what a 'Basil' is... but still 'Fail' is banned...

JD
You should watch Fawlty Towers.
detly
How do you pronounce it? BAY-zil? BAA-zil?
Syntactic
@detly exactly what I was thinking, esp. if they use @Syntactic's second pronunciation.
dash-tom-bang
The second one... As per Fawlty Towers :)
JD
+7  A: 

Confuckuration

When you have a framework or software which actually can do a lot but won't do anything if you don't set up everything properly in thousands of lines of deeply nested XML code (often in one single file, in .NET projects the App.config file).

Deeply nested Config File
Usually you're just able to validate the XML syntax/format but not the configuration logic behind (interrelations etc.) so having a typo in one of dozens cross-referencing configuration items (string keys which might contain whole namespaces) will cause the software just to "not do the expected", but without failure.

moonground.de
+7  A: 

The Perkov Method - this is a programming style reliant on both in-line pseudocode comments (in its truest form, this will be 4 times more detailed than the actual implementation would be) and on the assumption that someone else will review this code and implement the functionality in their spare time.

Example: implementation of Hello World in the normal style:

class Program 
{ 
    static int Main(string[] args) 
    {         
        Console.WriteLine("Hello World"); 
    } 
}

Example: implementation of Hello World using the Perkov Method:

class Program 
{ 
    static int Main(string[] args) 
    {   
        // at this point the program really should be outputting text to the 
        // console. we must take into account 78 character maximum line length
        // and ensure that we use Environment.NewLine for line endings. 
        // ideally should provide multi-region language support and UTF-8 / 
        // UTF-16 encoding. 
    } 
}

This excerpt taken from our team wiki. The culprit knows who he/she is...

Chris Ballard
+2  A: 

EBCK error An Error Between the Chair and the Keyboard. I use it for human errors

p.revington
But there's already an official term for this: PEBCAK error ("Problem exists between keyboard and chair")...
Tim Pietzcker
As an alternative, `PICNIC` (Problem In Chair, Not In Computer)
Duroth
I prefer ID10T errors (ID - Ten - T, when said out, Idiot when written)
Macha
+1  A: 

Bug-date - when a critical bug-fix release isn't enough, you have to include lots of new updates and features; probably because your bug fixes just don't seem enough for the end user.

petert
This is to make the customer to extend the support contract, isn't it? "We have all the old bugs fixed. But wait! There are new ones!"
SF.
+10  A: 

Fairy Magic - The type of work applied to a task that's long, grueling and just complicated enough that writing an algortihm to do it automatically would take longer than doing the task itself. Refers sarcastically to nonprogrammers' assumptions that everything done on a computer is done by the computer rather than the person using it. Etymologically derived from a large 'Fairy Magic-Powered' windmill in The Legend Of Zelda which only spins due to slave labor.

"Wow, all 11000 rows of the the database are clean! How'd you do that?"

"Fairy magic."

bucketmouse
We use "pixie dust"
Jonathan
...Which *Zelda*?
detly
+5  A: 

Futility Classes or Services.

Utility classes or services that are so full of bugs or useless features that you'll never get anything useful out of them.

John H.
+10  A: 

Barfcode

== Code that looks like someone opened Notepad, barfed into it and hit save.

I like to use this term to describe code with messed up formatting (or no formatting whatsoever). Also applies to code which does not follow any kind of naming/capitalization convention (not even an uncommon/discouraged one) - capitalization appears to be completely random.

alexander.biskop
In case of HTML code, its mostly "working" but always invalid and malformed (according to Web Standards) see: Tag Soup @ http://en.wikipedia.org/wiki/Tag_soup
moonground.de
I really like this one! +1 ;)
Andrei Rinea
+4  A: 

Productional

It's used when something is deployed to production and is being used. Example: Our new feature, Whizbang, is now productional. Or even, the Death Star is fully productional!

Tony R
+2  A: 
DanDan
+2  A: 
Quassnoi
A: 

double equal syndrome

When you either use '==' incorrectly, or when you don't use it at all when you should

Matt S.
+27  A: 

Pixies are the opposite of gremlins. While gremlins cause unexplained bugs, pixies cause unexplained fixes. They usually appear when fixing a totally unrelated bug or implementing some other function and, voila: the bug is fixed!

Duracell
+14  A: 

Blamestorming

  • the inevitable round the table shitstorm activity that happens during the post mortem of a fubar project.
El Bauldo
+1  A: 

Dualton. Like singleton, except.. there's two.

(My head seems to have evicted the reason for why this was needed; I do recall it was horrible.)

volley
Usually called doubleton...
Marcus Lindblom
@Marcus In our case we had some freak inverse case of "kärt barn har många namn" (roughly "Success has many parents and failure is an orphan"); apart from dualton and doubleton we also called it biton, etc. Hmm do you happen to know of any cases where it's actually a usable construct?
volley
Using two threads and different objects in Thread Local Storage that are accessed globally and created lazily is sort of a doubleton. :) But I'd be very careful about calling a doubleton a "usable construct", just to avoid baiting trolls. :)
Marcus Lindblom
I found a useful case. The database access master control object is usually a singleton but might become a doubleton under obscure circumstances (yea, we're merging databases through the application layer because it can talk to two databases behind two different firewalls).
Joshua
+1  A: 

Not exactly programming jargon, but it can help to communicate.

Haribo Look-And-Feel: specifically for the default Win XP theme (the one with the Teletubbies Background (you know, green grass and blue sky...)). But can be used for other "soft looking" UI experiences as well.

Haribo Goldbären

scherand
More common term is "Fisher-Price" after the kids toy producer (may be more of a UK thing).
ireddick
A: 

bug flipper - from joel on software

Karl
+6  A: 

LDD - Layout Driven Development

The developers are given PDFs which show how a page should look like. There is no text describing any functionalities. In the extreme form of LDD the developers are forced to copy-paste graphics contained in the layouts into the actual end product, doesn't matter if they are in scale or not.

I don't remember who invented this acronym in my previous company, but it became quite commonly used.

ponzao
A: 

Bogon Field: The field that follows a marketing person/member of senior management team around and permeates all demos making them go awry.

Joe Drumgoole
+1  A: 

Bogon: a subatomic particle of software destruction generated by "non essential personnel" (e.g. management, marketing). As bogon fields are often lacking in development groups (apart from a small field generated by the development manager) these bugs are notoriously difficult to detect until demonstration time.

Joe Drumgoole
if you really coined this term, then my deep respect. If you just saw it in the jargon file, shame on you.
SF.
+7  A: 

Code clam (or 'kodmussla' in Swedish)

Refers to a developer who refuses to commit (or push his commits) to the shared code server regularly. (The reference is apt since the clam is usually kept shut, and doesn't open unless some pressure is applied.)

Such practice usually ends in merge hell (for said devloper, then testing for everyone else, since he or she isn't up-to-date with the latest behaviour and likely introduces new bugs with their mammoth commit). Unless, of course, they've been pulling/updating/merging on their local computer.

We almost decided to buy a fuzzy toy clam and award it on a regular basis to the last week's (or last month's) Code Clam Developer.

Marcus Lindblom
+1  A: 

De-emulate

Coined yesterday. We resetted our system by going from non-emulated mode, to emulated mode, back to non-emulated mode.

(This had to do with motor control...)

Marcus Lindblom
+1  A: 

Bake Cookie - Set/nd client a cookie

Theofanis Pantelides
+5  A: 

Left Than Conditions

An enhancement in readability of composite conditions; only use less than to logically order expected values from the left to right in expected ascending values.

Example:

if (0 < x && x < y && y < z.length) {
    doStuff();
}
Martin
And what would the name be for the code `if(0 < x < y < z.length){...}` ? Beginning C coders write this and then get very surprised why it doesn't work like they expected.
SF.
STD terms like, Bug, Hack, Gubb-C (Swedish term) would apply fine, I'll think more about it.. :)
Martin
+3  A: 

Hot Dog Stand code/project

When things are so amazingly stupid or pointless you feel like you're running a hot dog stand. Came out of a project that wouldn't spend the 10k on a new server (old one was literally failing before our eyes) but asked we replace some network cables to increase process times. "Big pile of ain't gonna make a damn bit of difference, coming right up".

jeriley
+1  A: 

Yesterday I tried to fix 1 bug and added 3 more bugs, god knows how many more undiscovered.So I just come up with. ReBug which explains itself.

THEn
+4  A: 

Squishy

invented by me (circa 1999 while working at EA)

A term used to define

  • the uncertain completeness or efficiency of a piece of code
  • the incomplete design of a feature
  • the (in)accuracy of an estimate
  • or to express a general lack of certitude in what you're describing

eg:
Mgr: When will feature X be completed?
me: well, the specification is still squishy, but I expect in about a week.
or
me: I think I know how to solve the problem but it still seems a bit squishy.

I started using it for lack of a better word at the time, soon the whole team was using it. Its use eventually faded but I still recall it with fondness.

jello
+3  A: 

Instead of Rubberducking, I coined the term Plant.

-Do you need a plant to correct this bug?

-Well yes, I do, thanks!

When a programmer is stuck with a problem, he sometimes need to talk about it, so I would go to his desk and do the plant, not really talking but leaving him the chance to explain what is his problem and explain how the code works. It usually comes with a realization part, he just stops, and then says Ok, thank you!, at which point I say No problem, and return to my desk. It could be a theoretical nuclear problem and I could help correcting it, since there's no real interaction, meaning you could very well explain the bug to a plant there would be no difference.

Sakamura
I actually had a "plant friend" at one point at a past workplace where I sat alone and the office administrator thought I needed something to interact with - my plant was named Nigel and he gambled (because there were always a pair of dice beside him - although the dice on the desk predated Nigel).
John K
Aaaand I'm sure the plant always won with the dices :)Yeah, my coworker and I had a big plant near our desks. We jokingly said we could use that instead of annoying the other one. The term itself came from that. I miss that coworker, he's a nice chap.
Sakamura
+3  A: 

foodoo

The arcane process by which demo apps using dummy data perform superbly in all areas. This magic somehow disappears and performance suffers as real code is written and hooked up to real databases, etc. [Back formation from "voodoo" (black magic) plus "foo" (standard exemplar variable name)]

Sample usage: "I don't know, guys, the final release seems to have lost all the foodoo."

Robusto
+11  A: 

Highlander - when a solution requires a singleton of some kind, such as a single running process, or a single instance of a global... There can be only one!

I first used it in http://www.stonehenge.com/merlyn/WebTechniques/col54.html, and it got spread from there. I've even heard it quoted back at me by someone who didn't know I started it. :)

Randal Schwartz
+3  A: 

g11n ("globalization", also pronounced gee-leven)

Globalization

The opposite of i18n and l10n. Opting to use language-neutral elements like a more obvious design or text-less graphics, instead of adding more content that requires translation.

"If we use some g11n here, we can greatly reduce the l10n work and make it more accessible."

deceze
+4  A: 

Inequality Debugging

When you have a program and an if statement isn't working so you switch the less than sign with a greater sign (or vica versa) in the if statement and your program starts working as expected. Usually happens with extremely long if statements.

alt text

thyrgle
DevSolar
A: 

chlode - Code that is intentionally made needlessly complex in order to make some developer appear more capable or irreplaceable.

black ops - The project(s) you take on or create, right before leaving a big company, as a last ditch effort to convince yourself it is worth staying. Out of frustration, you cast off the established development processes, work in the background, or even use some new technology you've been interested in.

Christopher Zacharias
+4  A: 

fishbones

Stray files that choke processing scripts that try to ingest them, usually because the script is coded to process somedir/*, when it should really be processing somedir/$yyyy$mm$dd in loops.

core, nohup.out and .bash_history are examples.

mataap
+12  A: 

Coffee Coder

An inexperienced programmer who was taught Java in college and doesn't know anything about pointers or memory management. They stay up all night coding Java and think Java is just great; the only way to save them is to teach them C++.

Jake Petroules
Very well said.
John K
The only problem they've got is that they're using a compiled language!
Andrew Grimm
Pointers. Blah. Too low level, teach 'em Haskell instead.
Juliet
c++ rules. truly.
iamserious
A: 

AJAXPP (ajax-app)

A web application that relies heavily upon AJAX for it's frontend appeal.

Like-Jacking

Similar to click-jacking but applicable to individuals misusing and abusing the Facebook "Like" button functionality with the new Open Graph API to trick users into liking the wrong page.

cballou
Oh yes Like-Jacking - I 'Like' it.
John K
+4  A: 

One that was in common use at a former employer.

Using the force - Identifying the source of a problem through intuition.

"How you figure out what was causing that?"

"I used the force."

"The force is strong with this one"

This particularly applies to obscure or hard to track down bugs. Concurrency issues, heisenbugs, that kind of thing. If the cause of an error leaps into your head while not actively debugging it or the cause of the bug is so obscure as to make it virtually impossible to debug then you are using the force.

andyjdavis
Also known as psychic debugging.
Joshua
+1  A: 

Copy @ Waste when ever you copy something from somewhere and paste it into your code but by doing that stuff the result up.

Not sure where I first saw or heard it but it's clearly something everyone did.

Eg. copy some java code from a simple example paste it into your code and o wonder it did not handle any exception and as it was a simple example only ;)

Andy
+2  A: 

Benedict security

Refers to "security", measures some clients request based on the complicated and made-up jargon they heard on a movie, thinking it will actually make some improvement on their application.

On "Ocean's Eleven", Terry Benedict's Casino's security system changes its password every 24 hours, so in case it gets hacked, by the next day it'll be useless.

If your web app's admin password gets hacked (not using social-engineering) there are other problems in your server besides a weak password

madarve
+16  A: 

Build Potato

When your code check-in breaks the build, you receive a build potato. It stays with you until someone else's code check-in breaks the build.

alt text

P.S: This is not a term coined by me. It's a jargon we use at work.

dkris
I don't understand why someone would vote this one down?
dkris
...and you become the repository maintainer on top of your current work, until this gets passed on. That was a good way to keep the ungrateful and disliked work distributed fairly between employees and keep broken check-ins low.
SF.
...reminds me of the I-broke-the-build-shirt oder -cap, which of course you have to wear until someone else breaks the build and isn't washed!
Hinek
one place i worked at had a jar of pickles for representing utterly stupid-ass mistakes (not *just* breaking the nightly build)
geocoin
may be the guy who down voted this had a build potato with him!
iamserious
We have the Pointy Hat for that, some ugly witch's halloween hat with green hair around. Pity it isn't really enforced anymore.
+2  A: 

Confusing Me with Facts

A term I use when somebody comes to me with a close set of facts about (a system / a bug / an issue) that absolutely defies logical explanation. In such cases, I counter claim that this person is trying to confuse me with facts, and then I proceed to find that little snag that unties the logical knot...

Dror Harari
+1  A: 

Not quite "jargon," but whenever somehow makes a change and forgets to commit it, we often laugh about how "well, we men are afraid of commitment."

baddox
+1  A: 

Goose Chase

Or Wild-Goose Chase is usually related to investigating a very tricky bug with the following conditions:

  • There are not enough clues and the area of the potential buggy code might be huge.
  • It doesn't make any sense what could go wrong.
  • The only approach might be just browse through lots of code to find a problem.
Boris Lipschitz
+4  A: 

Frankensteined *to frankenstein*

Code or a feature written for one purpose that has been repurposed for an originally unintended use (one that it probably wasn't designed for), and thus has taken on a life of its own.

Usage: "That code that Jimmy wrote to print out schedules has been frankensteined to do payroll"

Tim Marman
I'm having a bit of this right now. Ongoing modifications to "processes" means changing and adding different conditions all over the shop, and then remembering to adjust other code that is directly affected by these changes. Ugh.
Nick Bedford
+4  A: 

Typewanking.

The excessive use of complicated features of one's type system to ensure the static safety of mostly irrelevant issues.

Manuel Simoni
In my opinion, this applies to any use of `static_cast`, `dynamic_cast`, etc., especially cases where C-style casts would suffice. I know someone *will* criticize me for saying this, but you have to admit that `static_cast<int>(...)` is really ugly.
Joey Adams
.NET Framework allows for heaps of this.
Nick Bedford
It's ugly - especially if you have to combine a `const_cast` with it. OTOH it explicitely states what you mean, which is good, as casting in C++ is more complicated than in C. For consistency it doesn't make much sense to allow C-style casts for "easy cases" and require the others for "the rest".
peterchen
but at least static_cast is searchable... (int) isn't... (well not well anyway!)but yeah, my butt is less ugly than static_cast etc.
geocoin
+1  A: 

This is my boss's... but he calls code that is left in the program but will never be executed (whether because of conditionals or being commented out, or in a function that is never called, or whatever) "Wilted Celery" as in: "I saw some wilted celery in the fridge, but I didn't throw it out because I thought someone else might want it."

Brian Postow
+2  A: 

Does jargonology used within just three programmers, and I was not the one coining them, qualify?

Colleagues were commenting on frequency of inheritance classes, to inherit projects from people who were quiting. Then they were getting bug-bitten and had too many bugbites due to the applications. They would call me over as they believed a third pair of eyes would help spot errors. They would explain how a segment of code works to help me spot their errors. Miraculously, as they explained, they would spot the bugs themselves and solved them. So, they believed I was an effective bugicide as bugs evaporate with my mere presence. I protested that I did not do anything, but merely listened. And finally we settled on calling me a software therapist. They tried to advertise me to other programmers to have software therapy sessions with me because not only was I familiar with client side and server side, I was also effective with bug side code.

Those were the days when we used Cobol and CODASYL (network database), migrating to C/C++, Oracle and Sybase = deCobolize and SQLization. Today, the programming world has turned a full circle and with hadoop, we would have called it deSQLization (but we don't work together anymore) - back to network data relationships.

Blessed Geek
+2  A: 

Specification Debt

A play on 'technical debt', referring to the cost of 'coding to assumptions' in software requirements, without taking the time to ask for confirmation.

You can save time in the short term by coding right off the bat, but you'll pay for it in super-high interest later.

I find that it's a good phrase to use to communicate to stakeholders the importance of getting the reqs right first time.

Adam
+1  A: 

PHP Tourettes

I coined this term as an excuse to why I was screaming profanities at my computer screen when an error cropped up.

Ashley Broadley
+1  A: 

KOP (Kick Oriented Programming) - I coined this term mainly because when I'm too lazy to develop something (for being tired, sleepy or something), but I still want to do something, I invoke Chuck Norris name, and I get this programming paradigm in my spirit. So, you should use this term, to denote a code in which it was made using only your intuition, and nothing more. Sometimes you would like to develop it using random logic formation, but this is allowed only for Jedi programmers.

Jedi Programmer - This is the guy who when our team is at the deadline to the final attack, and we don't believe we're going to live after that, he comes, and by using not-known-by-most-ppl skills, he carries the project to final product. And everyone promises him, a pizza party @ Pizza Planet, he feels so happy.


Wilhelm
At Microsoft, Jedi Programmers are called "Heroes."
Marc Eaddy
and everyone knows that "Heroes" do not exist... ;-)
Matthieu BROUILLARD
+1 Jedi Programmer FTW ;-)
alexander.biskop
+1  A: 

Summer of George Working on a project that the architectural decisions are so counter intuitive that we continuously say "summer of george"

Gary
some further explanation.. I took a little poetic license with this one.. basically we decided that in order to get along with the decisions on this project we had to do the opposite of what we thought.. And was reminded of the Seinfield espisode: http://en.wikipedia.org/wiki/The_Opposite But saying "The Opposite" didn't have a good ring so instead we said "Summer of George": http://en.wikipedia.org/wiki/The_Summer_of_George which is really something all together different but has a nice ring.. :-)
Gary
+1  A: 

Mangler

Instead of saying Manager, instead say Mangler

Example

  • Did you restart the State Mangler Service?
  • Who's the Project Mangler?
Ryu
+1  A: 

MIBB or Make it Big Boy --> The act of using complicated sounding names for classes and/or methods that otherwise accomplish very trivial tasks. For example:

public static void ThirdRockFromTheSunGreeter(){ System.Console.WriteLine("Hello, World!"); }

IClusterFuck --> The practice of creating an interface with no underlying meaning or concept and with a bunch of unrelated methods.

peter banner
A: 

The Smarts

What your boss/colleagues ask for when developing a tool for them. They're not programmers. In fact, you're the only one in the entire center.

It ain't smarts, it's just a lot of if statements.

Nick Bedford
The part of the program you consider very clever is never the one the users consider very clever.
zaratustra
+3  A: 

macrobator (n.) (māk'rō'bey-ter) - 1. A C programmer who creates a new language using the preprocessor. 2. A C++ programmer who uses #define for anything other than include guards. 3. A fisherman who buys his worms from Kevin Bacon.

entoliferator (n.) - 1. A programmer who efficiently multiplies bugs in a program using cut and paste. 2. Someone who leaves food crumbs all over the house. 3. Robert A. Heinlein.

pastafibrolator (n.) - 1. A programmer who fouls up a well structured program with global variables. 2. A toddler eating spaghetti. 3. Ron Popiel's latest invention.

literomagnon (n.) - 1. A programmer that codes with numerals instead of labels. 2. A librarian with a protruding suborbital ridge. 3. The web-browsing GEICO caveman.

autopathosite (n.) - 1. A programmer that attempts to curry favor with management by fixing problems in their own shoddy code. 2. A person that tries to gain notoriety by capitalizing on their character flaws. 3. See Rod Blagojevich, Natalie Suleman, and Richard Heene.

Amardeep
I have a hard time believing you managed to coin all these terms AND get other people to say them.
Joey Adams
I'm sorry they don't appear to meet your minimum standards of lexical ubiquity. Their original purpose, which was both to evoke humor and to pejoratively describe a couple of very specific "Jimmy" team members, was apropos.
Amardeep
+1 for macrobator
Evan Plaice
+1  A: 

Architectural M*sterbation

Code that has no real world value, other than to entertain the ego of the developer that wrote it.

Adam
I think that's called "esoteric"!?
Hinek
+1  A: 

see http://origin.arstechnica.com/news.media/death-spiral.gif

The Death Spriral - when attempting to resolve a bug. You start with, break statements, then printf(s), then some other tool e.g. wire-shark, logic analyzer, scope, other programmers. Each new tool adds complexity and seems to take you further away from the problem. The solution, pull-up, go home solve it with a clear head.

From Wikipedia: a spiral is a curve which emanates from a central point, getting progressively farther away as it revolves around the point.

TimR
+3  A: 

Glocal variable

A global variable disguised as a local variable.

To avoid the embarrassment of using global variables one can always make them local and put them in a singleton or something...

BaBu
I believe many programming languages call these "static" variables :-)
Joey Adams
+1  A: 

OBAP - One Big-Assed Program. Pronounced as you would expect: O-Bap.

A big, overly complicated monolithic program that is not well structured or broken down into smaller components.

aaaa bbbb
+3  A: 

Un-Variable: A term used to describe a variable that is declared, but never variable, never used, or not actually hooked up to any logic.

Example 1: A variable used once... and only once

Example 2: superImportantHandler is declared, but never used; making it not too superImportant and leaving its handling abilities questionable.

Example 3: You see "turnOnImportantThing = 0" so you assume that flipping it to 1 will have some effect, but it takes you 15 minutes to figure out that its not actually hooked up to anything.

vince
A lot of IDEs and their plugins will flat out tell you when things are declared and never used or "not actually hooked up to anything." Know your tools!
mikeschuld
+2  A: 

I always name my almost unreachable coding goals as "White Whales" (from the famous book Moby-Dick). The book is about a skipper who struggles all his life to catch a white whale, and he eventually does (sort of).

Wow, imagine if I could write something as great as that one day. :)

alt text

Fredrik Johansson
+9  A: 

Troolian Logic

Using a Boolean to intentionally represent 3 values; True, False, null

private void someMethod(Boolean someBoolean)
{
  if (someBoolean == null)
    doThis();
  else if (someBoolean)
    doThat();
  else
    doOther();
}
Boris 007
If I had a $0.01 for every time I had a spec writer try to squeeze this one past me...
Joe Zitzelberger
There's only one appropriate third value for booleans, and that is `FileNotFound`. http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
gustafc