44

A "bug" is essentially when a program fails to function as expected/desired.

What I'm looking for is a word for the opposite of that - a function that is desired but isn't supposed to be working yet unexpectedly starts working. As an example, I'm developing an iOS app at the moment. It includes notifications upon certain events. We didn't think anyone had deployed our push notification server yet and notifications hadn't been tested at all, but in the course of testing other things, notifications somehow started showing up.

I feel like this is a feeling familiar to all programmers. Is there a word?

  • 12
    A lucky or coincidental feature is what I usually call them. – Doddy Apr 10 '15 at 1:13
  • 6
    Miracle. Psychotic imagining. – Hot Licks Apr 10 '15 at 1:19
  • 5
    If there isn't a word I was thinking about "butterfly". It keeps the insect motif and the idea is that the feature is presumed to be a cocooned grub still but suddenly bursts out flapping its wings. – ChrisV Apr 10 '15 at 2:16
  • 64
    It's called a "bug". Just because it works, that doesn't make it correct. Unless you understand why, and can be more certain that it will work under other conditions, your code isn't done yet. – Lee Daniel Crocker Apr 10 '15 at 15:50
  • 20
    undocumented feature. – user72323 Apr 12 '15 at 4:50

17 Answers 17

121

To my mind the behaviour you describe is still a bug. A bug is what you have when Actual Results differ from Expected Results - and this is exactly what you have here.

  • 58
    Ladybug perhaps – cellik Apr 10 '15 at 9:04
  • 6
    I agree. Technically this is still a bug, albeit a pleasant one. – starsplusplus Apr 10 '15 at 9:05
  • 20
    Yes. If you don't know why it works now, you won't be able to fix it when it stops working. – JeffSahol Apr 10 '15 at 16:42
  • 3
    Let's say I am new python programmer, and I want to iterate over keys of a dictionary, so I intend to do [k for k in my_dict.keys()] but I accidentally forget .keys() of course the code would still work, but I would not expect it too, and I would be surprised that it works. Would you say that I have a bug? – Akavall Apr 11 '15 at 3:57
  • 2
    @cellik I like your suggestion but I'd have to call it a ladybird in my dialect! It's still a bug but a pretty one and it's considered special when one lands on you! – CJ Dennis Apr 12 '15 at 2:50
88

Feature. There is a programming joke, 'It's not a bug, it's a feature' and 'If you can not fix a bug, try to prove it's a feature'

But grammatically, 'bug' is a slang for 'error', and the opposite for 'error' in programming code is 'validity', and debugging software naming is 'debugger' or 'validation software'.

The error messages may state 'Invalid code', 'Invalid operation', 'Invalid usage'

What you described is 'undocumented features' or 'undocumented behavior', which is still a bug.

Note Mathijs Segers' comment, a very good suggestion, software developers often announce 'bug fixes' in every new version or subversion. A 'fix' is a valid opposite for 'bug'

  • 3
    And being undocumented, it may change at any moment so shouldn't be relied upon... unless you can convince the developers to make it official. This isn't really an English question, though. – keshlam Apr 10 '15 at 2:50
  • 33
    They are not the jokes at all. The joke is "It's not a bug, it's a feature!". – aaa90210 Apr 10 '15 at 4:02
  • 2
    "Undocumented feature" is a joking euphemism for a bug... which is what this is. Unexpected behavior (if it's unexpected to the program's designers/developers, at least) is always a bug, regardless of whether any given result of said bug may be desirable or not. – reirab Apr 11 '15 at 19:26
  • 4
    Its not a bug, Its a Feature – WernerCD Apr 11 '15 at 23:03
  • 1
    "bug" is not "slang for error", "bug" is a historical term derived from the process of fixing old vacuum tube based computers from yesteryear, where a moth or similar would find its way into the computer causing a short (and an error in programming). Thus the term "debugging" was born, and still, today, we refer to programming errors as "bugs". Often users refer to things as bugs which are not, such as feature changes, or unexpected behaviors which are not bugs (but were otherwise unintended.) This is also why we have a running joke about certain bugs being features. </history-lesson> – Shaun Wilson Apr 14 '15 at 17:31
24

Most appropriate expression seems to be "unintended feature".

A bug is unintended, and is bad for users.
A feature is good for users, but, in this case, it was unintended.

Web Search also throws a lot of results for this expression, so it seems to be widely accepted.

After some more thoughts on this, I have this grid:

|      -        | unintended | intended    |
| bad for user  |     bug    | restriction |
| good for user |      ?     | feature     |

While looking row-wise (viewpoint : "It is a feature"), we can fill in with "unintended feature".
While looking column-wise (viewpoint : "It is a bug"), we can fill in with "beneficial bug".

Completing the analysis of the grid : It is partially a feature and partially a bug, so I might add the answers by @Nanne , featurebug & bugfeature.

A comment about the restriction : When software has intentionally disabled features (User : "I can draw pictures, but can not save them"; Developer : "You have to buy a license for the software, and this restriction will be removed") and makes it bad for the user.

  • 8
    Although in actual use, beware that "unintended feature" is also a joking euphemism for "bug". Less so than "undocumented feature", but still could be misinterpreted. – Steve Jessop Apr 10 '15 at 10:17
  • 1
    Very closely related, we've used "accidental feature" a few times when talking to our product owner – Izkata Apr 10 '15 at 14:03
  • @Izkata, I like "accidental feature" too. Some more variations are "fortuitous feature" & "inadvertent feature" & "unintentional feature". – Prem Apr 10 '15 at 14:15
  • 1
    This should be the accepted answer. Also, some people are saying it's still a bug, but I think that's if and only if the requirements particularly held that it should not have been in there. The OP's description makes it sound like a grey area in this case. – Panzercrisis Apr 12 '15 at 3:28
16

The discovery is a serendipity - meaning the fact of finding pleasant or useful things by chance.

9

We call this "working by accident". Also applies to any untested code--sure, it happens to work now, but there's no guarantee that it will work in the future.

9

Glitch: the exploitable kind (hacks), not the incorrectly written kind (bugs). From my GAMING experience, a programing bug doesn't let me do something I should be able to. A glitch lets me do something I want, that I shouldn't be able to.

Bug, bad; glitch, good.

An inexplicable problem or condition happening in a system. A glitch in the code gave Bob twenty-six free months of AOL. -urbandictionary.com

Generally, a bug is upsetting to both parties, while a glitch is good for the unscrupulous player (me), it is not good for the programer (you), whose job it is to fix it.

To Bob, it's a glitch; to AOL, it's a bug. 'Features' are in the eye of the beholder.

There is a bug inexplicable condition in your code; it just happens to be "desirable" and you should have "expected" that there would be some errors.

A bug becomes a glitch once someone can repeatedly exploit the vulnerability: GTA Money Glitch. Your glitch will revert to a bug when you discover that it had broken functionality, elsewhere.

  • 13
    To me a glitch means something unintended but that doesn't prevent the program functioning (as a bug does). Glitch doesn't carry positive connotations for me. – ChrisV Apr 10 '15 at 7:36
  • 2
    I think a glitch is a one-off unexplainable event (positive or negative). From the description, this is reproducible. – starsplusplus Apr 10 '15 at 9:06
  • 1
  • 4
    Dictionary meaning of "glitch" : A fault or defect in a computer program, system, or machine. Does not seem appropriate here. – Prem Apr 10 '15 at 9:55
  • 4
    I think, "glitch" generally has negative implications, while the Urban Dictionary Example is an exception. Even if we change that Example to "A bug in the code gave Bob . . . " , the meaning is still the same. Many Examples of glitches are available here {{ en.wikipedia.org/wiki/Glitch }} , where most of the cases have negative implications. – Prem Apr 10 '15 at 12:35
7

To add to the answers calling it a bug, we call this a "featurebug". Technically it shouldn't do what it does, but currently it is doing what it does obvioulsy, and people use it.

Examples would be closer to things like: if you click here it not only does "action x" but it also redirects you to this other page. Even thoug it was not intended to dot his, it's seen as a feature by the user, as we need to go there anyway. So that's a featurebug.

(If you make a feature that nobody wanted and that actually makes things worse, but does work as you intended, that would be a "bugfeature" obviously, but that's a whole different beast)

  • a great name; not a well-known nor widely used one, bordering on neologism - but a brilliantly spot-on, with a definite +1 in my book! – vaxquis Apr 14 '15 at 18:03
6

The jargon term misbug describes "[a]n unintended property of a program that turns out to be useful; something that should have been a bug but turns out to be a feature."

A program, feature or code path that simply works without hassle wins. If the win is sufficiently significant or serendipitous it might even be a big win.

  • Ah, the Jargon File... Can't beat it! Bogons, microfortnights, point-and-drool interfaces :) – j_random_hacker Apr 13 '15 at 15:05
5

We call these latent bugs. If it works when it should not, it will transition to not working at the most inconvenient time.

4

I really like CrisV's suggestion butterfly. I think I will incorporate it to my day-to-day speech :)

Looks like there is not a short word for this lucky feature. The closest I have seen in the comments and answers is unintended feature.

But words are created by constant use. And in this case, I think we need something nice to show this concept.

4

They're usually called "easter eggs"; they're peculiar "treats" that programmers add intentionally or otherwise. Usually they're intentional but "neat" features are sometimes accidental.

3

Notifications started showing up automagically.

3

I'm developing an iOS app at the moment. It includes notifications upon certain events. We didn't think anyone had deployed our push notification server yet and notifications hadn't been tested at all, but in the course of testing other things, notifications somehow started showing up.

I feel like this is a feeling familiar to all programmers.

The word you want is magic or magical. The key part is that you got some desirable functionality but you don't understand why or how it works. So in that situation you might say "I didn't think we implemented this feature, but somehow it magically started working!"

Some other people pointed out that this is still a "bug" in terms of software development and that part is correct. You do not actually want "magical" functionality in your product. That's because there's no guarantee that the "magic" will continue to the next release, for example. And a "magic" feature probably is not testable either. You also said you didn't test it.

Notice that this phrase is distinct from saying "It works as if by magic." When you use this formulation, you know that it is not, in fact, magical, but that the feature you are pointing to is impressive enough to be touted as magical even though it isn't.

Another commonly used but distinct phrase in software is "automagically". However, automagically in software refers to a deliberate feature that automates a task "as if by magic". In other words, it automates a task in a way that is impressive enough to seem like magic, but it is nonetheless a well understood functionality by its implementors and is therefore not true magic.

3

I would call this a happy accident.

a pleasant situation or event that is not planned or intended (Idiom Dictionary)

when something unexpectedly good comes from what would otherwise be considered a mishap (Urban Dictionary)

The latter is not a perfect fit, but it could have been a mishap if someone had turned on the feature before you expected and it didn't work.

It doesn't sound like a "bug", because it was working as intended; you just didn't realize someone had turned it on. That would be like saying: "I developed this really great website but I didn't think anyone had turned the web server on yet. Then I discovered someone had!" Would you call the website a bug? I think not.

And "undocumented feature" would only fit if it were, in fact, undocumented. If the notification feature was fully documented and you just didn't realize anyone had turned it on, that's not really the same thing.

  • "Happy accident" is accurate, but so is "malfunction" instead of "bug". "Happy accident" seems a bit too general. – ChrisV Apr 13 '15 at 23:02
2

It's a stretch, but you might consider inadvertent Easter Egg. Ordinarily, an Easter Egg is a feature that is not obvious, but can be stumbled upon if you know where to look. In the case you describe, the notification process started working even though, to the best of your knowledge, it should not have been. These Easter Eggs (the notifications) were inadvertently caused by the app programmers - hence the name.

  • That was my first thought, easter egg. – Evan Carslake Apr 10 '15 at 5:09
  • An Easter egg is something intentionally programmed as a secret for the users to find (hence the name). I think it's stretching it a bit too much to use it to describe something that nobody hid and the developers themselves "found" by accident. – starsplusplus Apr 10 '15 at 9:04
  • 1
    Which is why I used the term "inadvertent". – WhatRoughBeast Apr 10 '15 at 14:43
  • 1
    @WhatRoughBeast an "inadvertent Easter Egg" makes no sense. Being inadvertent automatically precludes it from being an easter egg. – nanny Apr 10 '15 at 16:15
  • 1
    The first line of Wikipedia Easter egg (media): "An Easter egg is an intentional inside joke, hidden message, or feature in a work such as a computer program, video game, movie, book, or crossword puzzle." – nanny Apr 10 '15 at 16:17
2

The Jargon File” lists a few possibilities:

black magic: n.:
A technique that works, though nobody really understands why.

 

feature: n. (definition #3):
A surprising property or behavior…

 

misbug: n.:
An unintended property of a program that turns out to be useful; something that should have been a bug but turns out to be a feature.

1

I'm not sure this is really a thing at all, in that the feature doesn't unexpectedly fall out of the software's design.

It's like building a radio to receive certain bands, and on one of them it picks up a station that you didn't know was there.

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