I'm interested in stories (factual, preferably on well-known systems) about funny or interesting ways in which certain design or implementation decisions constrained the software as it was experienced by users.

For example, in the funny comment threads someone mentioned that in the original Doom game, doors opened vertically because the maps were static so walls couldn't move horizontally. Those sort of things.


A friend's father worked for Shell Oil Co in the 1970s. He wrote a routine that returned dates on which customers could be expected to not pay their bills: Saturdays, Sundays, Federal holidays, etc. In it he put a comment that basically said (and I'm paraphrasing): "This routine will not work after 1999. By then I'll be retired and I won't care."

Sometime in 1999, he (my friend's father) got a phone call from a programmer working on the routine. The programmer asked him, "Mr. Ball, what does this comment mean?"

His reply (and I'm really paraphrasing here), "Look punk, I'm retired, and I don't care. What was it about that comment that you didn't understand?"

14 accepted

Here on StackOverflow, we decided to only use one database table (aptly named EL_GORDO), so just about every new feature is a complete pain to code.


Every KB entry on MSDN which states "This behavior is by design"


According to the prof in an OS Design class I took long ago:

NOS was a multi-user OS with potentially dozens (hundreds?) of simultaneous users. Anticipating the difference in response times during peak load, vs. minimal load times, they addressed how to meet the users' expectations for responsiveness:

In lower-load times they added a delay to the OS response, so users would not expect faster responses during peak load times.


I remember having an interesting problem with Windows XP last year where somehow Subversion had created a file on the disk with a path that was too long for Windows to be able to delete it.


Not a well known system (except to those of us who worked on it), but there once was a mission critical system that passed all of its date/times around as strings (without a timezone element). Every 6 months it had to be taken offline for an hour while the country transitioned to/from daylight savings time. If it stayed up during that period, everything went mental. It was never fixed because other "features" meant that to do so would be surprisingly non-trivial.


I figure I'll contribute one thing that happened to me years ago... In the mid-late nineties We were working with a fairly early version of Rationale rose for Windows that assumed 8.3 DOS filenames rather than Windows NT full names.

When you used the "generate C++ code" option, some algorithm in Rose was supposed to take your class names, figure out an appropriate 8 letter name, and output the files. Unfortunately, that algorithm wasn't smart enough to check if multiple classes would be hashed into the same filename, which meant we always ended up with fewer classes than we intended to... We had to change our class names (we had hundreds if not thousands since we were representing a very complex domain) to fit this hashing.


We discovered on January 1st that all the DateTimePicker controls in a business critical application had their MaxDate property set to 31/12/2008.....


Not a well known system, but I once worked for an insurance company that built a policy system that would not allow more than 4 cars per policy. The company had to issue a second policy if someone wanted to insure more than 4 cars. In the 70s when it was written it was only occasionally a problem. By the 90s when I worked there it was a problem almost daily.

Of course there is the whole Y2K issue. 2 digit years. Who knew the software would still be around when it became a problem.


The drive-through ording system at my local Wendy's forces employees to enter combo meals in a specific order. Whenever I order the number six (spicy chicken), then politely ask for a side salad instead of fries, the operator gets all iritated and asks "What drink?", and after that she asks, "What was that side you wanted?".

The system should allow her to enter the combo in any order. If there is something missing from the order, it should indicate that, but it should allow the user to fill in those details at any time before completing the order.


WinXP on a FAT32 filesystem : trying to keep some files separate from other users:)


If you drop a .sln onto VS2005, it tells you you cannot drop it there, and that you have to Open it.


Gosh-darned real mode memory segmentation in x86 because they didn't have enough pins on the CPU.


I go to a music festival every year, and it came out that the entire ticketing system had to be rebuilt for their headline act that year. Essentially, each act is allowed a certain number of guest passes for the day they are performing. The ticketing machine had an inbuilt constant that the maximum number of guest passes per band was 3.

last year though, they wanted a much larger headline band, which they tried to get. It turned out this band wanted 50 (yes, fifty) guest passes, and wouldn't perform without them. Thus the entire ticketing system had to be rewritten. This is why i'm glad i'm not the developer of that application.


The entire DOS operating system.


Where I go to school, the class registration system has some features that suggest the developers may have run themselves into a corner in a few spots.

First, the system being "offline" on Sunday is indicated by

Sunday 12:00am - 12:00am

But the worst, is that every summer the system purges students who don't meet prereqs, and there is no manual override for this. If you've been allowed around formal prereqs, the only option is to wait until after the purge.


Here's the most famous saying that was never said: "640K is Enough For Anyone" by Bill Gates.