5

Is there a term for the above? When building a new system developers are sometimes instructed (that is a different issue) to "keep things as they are", regardless of how inefficient or unusable they are, albeit in the name of usability, training or something along those lines.

Is there a term for this? And if there is, is there any decent literature on addressing this type of problem?

14
  • 2
    backward compatibility?
    – Hellion
    Commented Oct 14, 2014 at 22:59
  • 3
    Backwards compatibility is a more general-purpose term for "anything that must be preserved to prevent previous versions from breaking" - that could include what the OP refers to, but it also includes things like renaming a public API function and many other things. The OP is specifically referring to backwards compatibility in the name of usability, such as an awkward UI setup that is to remain preserved so as not to force users to relearn the UI. I could see a need for a term for that specifically.
    – Jack
    Commented Oct 14, 2014 at 23:10
  • Adding "features" that most definitely are not bugs Commented Oct 14, 2014 at 23:16
  • 7
    I nominate Retrograde (as opposed to upgrade, downgrade, etc.), and no, that's not an official name, but the pun in it is too good for it not to be the official name.
    – rolfl
    Commented Oct 14, 2014 at 23:37
  • 1
    @JoshJohnson: Not all good questions are a good fit for the Q&A format of Stack Exchange. In particular, question about topics covered by entire books are likely to be too broad and questions that spark lively discussions are also not suitable for this format. Commented Oct 15, 2014 at 6:15

5 Answers 5

12

You're very close in your title. I believe the term you're looking for is Quirk Parity by Kent Beck:

"quirk parity" -- the part of a rewrite where you finally match the irrational behavior of the old system

This arises from the Common Law Feature

5
  • 1
    Perfect, "quirk parity" is exactly what this is.
    – BrandonV
    Commented Oct 15, 2014 at 2:47
  • 1
    The first response to that tweet has the term I am familiar with: "bug compatibility", although it's possible that he is describing a slightly less strigent requirement.
    – jmoreno
    Commented Oct 15, 2014 at 4:02
  • 1
    @jmoreno - Saw both, but I think Quirk Parity fits this best, as I don't necessarily mean bugs, but also potentially weird UX, etc. Although, one may consider those bugs.
    – BrandonV
    Commented Oct 15, 2014 at 13:15
  • 1
    This is really fun when you are replacing an old COBOL green screen system with a new Web 2.0 buzzword application.
    – user22815
    Commented Oct 15, 2014 at 21:28
  • 1
    @Snowman Going through this pain currently, except I am getting quirk parity from both users and the COBOL programmers who are involved as technical experts.
    – maple_shaft
    Commented Oct 18, 2014 at 15:45
7

From the Jargon File:

bug-compatible /adj./ Said of a design or revision that has been badly compromised by a requirement to be compatible with fossils or misfeatures in other programs or (esp.) previous releases of itself. "MS-DOS 2.0 used \ as a path separator to be bug-compatible with some cretin's choice of / as an option character in 1.0."

0

Legacy code or legacy feature may also convey your meaning, particularly when the quirks to be preserved used to be intentional, or have become so. These term refer to the code or features intended to achieve the desired result. This is referenced in wikipedia:

Legacy code is source code that relates to a no-longer supported or manufactured operating system or other computer technology. The term can also mean code inserted into modern software for the purpose of maintaining an older or previously supported feature — for example supporting a serial interface even though many modern systems do not have a serial port. It may also be in the form of supporting older file formats that may have been encoding in non-ASCII characters, such as EBCDIC

Backward compatibility, or downward compatibility, is the property of containing enough legacy code to be operationally compatible with older versions of the system. It is also referenced in Wikipedia:

In telecommunications and computing, a product or technology is backward compatible or downward compatible if it can work with input generated by an older product or technology such as a legacy system. If products designed for the new standard can receive, read, view or play older standards or formats, then the product is said to be backward-compatible; examples of such a standard include data formats and communication protocols. Modifications to a system that do not allow backward compatibility are sometimes called "breaking changes.

Quirk parity is apparently a recent expression, hardly used on the web (only 40 occurences of "quirk parity" quoted, including repeats, on Google, though it is 1,190,000 when the 2 words are separate, not quoted). It does not refer to the addition of such legacy code or quirks, but to a state of the system when it contains enough legacy code to fully mimic a former version of itself. It may be seen as an ultimate form of backward compatibility. It may also be seen as a technical standstill if the parity covers both the can and the can't, the do and the don't, though this still leave room for performance improvement (unless bad performance is considered too as an important quirk).

0
-2

If this is about design aesthetics in the user interface, then the term you are looking for is Skeuomorphism

A skeuomorph /ˈskjuːəmɔrf/ is a derivative object that retains ornamental design cues from structures that were necessary in the original. Examples include pottery embellished with imitation rivets reminiscent of similar pots made of metal and a software calendar that imitates the appearance of binding on a paper desk calendar.

Another example is the mechanical shutter sound in some modern digital cameras

1
-3

The overall term is cognitive bias. It has to do with how humans process information.

From WikiPedia:

A cognitive bias is a pattern of deviation in judgment, whereby inferences about other people and situations may be drawn in an illogical fashion. Individuals create their own "subjective social reality" from their perception of the input. An individual's construction of social reality, not the objective input, may dictate their behavior in the social world. Thus, cognitive biases may sometimes lead to perceptual distortion, inaccurate judgment, illogical interpretation, or what is broadly called irrationality.

More specifically, what you are referring to is called Confirmation Bias.

Confirmation bias, also called confirmatory bias or myside bias, is the tendency to search for, interpret, or prioritize information in a way that confirms one's beliefs or hypotheses. It is a type of cognitive bias and a systematic error of inductive reasoning. People display this bias when they gather or remember information selectively, or when they interpret it in a biased way. The effect is stronger for emotionally charged issues and for deeply entrenched beliefs.

Emphasis in the previous paragraph was added.

This is one reason why people have a tendency to do what they have always done.

1
  • 1
    This is not what the OP asked. When people have to learn a new system, that takes time. That's a legitimate business concern, not simply a cognitive bias. Commented Oct 15, 2014 at 0:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.