views:

52

answers:

4

Out of idle curiosity, does anybody know of a term for replicating bugs in a new implementation of an old system so as to maintain backwards compatibility with old clients that rely on the buggy functionality? I'd be particularly interested if it included a connotation of having to reverse engineer the incorrect behavior so as to properly replicate what was not to spec.

+3  A: 

Perhaps bug-for-bug-compatible.

Simon Nickerson
+4  A: 

I think this is covered by "backwards compatibility".

A good example from Joel Spolsky's famous "API Wars" post about the development of Windows 3.1:

The most impressive things to read on Raymond's weblog are the stories of the incredible efforts the Windows team has made over the years to support backwards compatibility.

[...]

I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.

Pekka
great story !!!
Peter Tillemans
@Peter yeah, isn't it. Reading some of Joel's posts has taught me a *lot* of respect for Microsoft and their developers, and makes me think some (not all) of the criticism they've had to take over the years has been unfair.
Pekka
I smell a security hole
BlueRaja - Danny Pflughoeft
@BlueRaja heh, good point!
Pekka
I'll mark this one for the fun story; it puts my own relatively minor compatibility annoyances in perspective.
Dan Bryant
+4  A: 

I always call that "crapwards compatibility".

Jason Williams
That's a nice one. :)
Pekka
+2  A: 

I would settle for 'bug-compatible' : it is too difficult to get all bugs right.

Peter Tillemans
Sounds reasonable: I could settle for that, too.
Pekka