Today a web developer will explain to you what this means if this is the first time you’re encountering the phrase.
Where It Came From
This phrase came from developers, coders, programmers. In their job they would create applications, webpages, etc.
Let’s say you’re a programmer and you’ve created this application. All this app does is that when you open it, it says “Hello, <your-first-name>”. You’ve successfully created your first app! You showed it to your boss and s/he congratulates you. Next, they ask for you to add a feature.
Boss: “That’s cool, but how about instead of just saying “Hello David”, why don’t you add this thing(feature) where it gets your current location and it shows you today’s weather at your location?”
You then code/build it and you complete it and showed it to your boss and now everyone’s happy. What you’ve essentially done is that you created a new feature. It’s an intended design/functionality and you built it and it’s doing exactly what you want it to do.
When a programmer codes though, they make mistakes in the same way authors make typos or move things around after. We do not get it right the first attempt. So in the process of coding things, sometimes when we test things, things go wrong.
Maybe when we test the said app, it would say “Hello Jennifer” (when your name is Ben). Or maybe the GPS location feature tells you that you’re in Ubud, Indonesia when in fact you’re in Toronto. These are called bugs (e.g.: when you hear people say an app is ‘buggy’). Essentially they are mistakes (that needs to be rectified) and you were probably working towards a feature in the process but just wasn’t implemented properly.
Ok, so about the phrase?
Now that you know both terms, the problem sometimes between coders/developers and the consumers are the difference between what the users expect vs what the application/feature was designed to do.
Take the simplest and most accessible example of all, your phone and autocorrect. Remember the first generation of the autocorrect ever in any device/OS. Maybe you wanted to type “Ben” but then your phone autocorrects it to “been”. Names and proper names weren’t taken into consideration back then and technically the autocorrect feature, is doing it’s job: it encounters a word it doesn’t know, re-types it to the closest word it thinks you were trying to type.
The problem is that sometimes we actually intend to type “Ben”, and the simple act of texting becomes so hard. People would call this a bug but it’s technically a feature.
Was it a well-implemented feature? Was it fully thought out? Did it account for language differences, chonky thumbs, etc? No. It could be better (and that’s what we have nowadays).
A bug is if you type “Ben” and then your phone opens up a new browser and publish your banking details in Facebook (you didn’t intend to do that; developers probably didn’t intend to create that, but it happened anyways). Or a much more tame example is that you type “Ben” and your app freezes and crash.
Modern Usage
Nowadays it’s used as a joke. Some programmers and developers probably abused this excuse so now consumers just take it lightly or just use them interchangeably. Some programmers would try to excuse/defend, or even downplay their bad work by saying “it’s a feature, not a bug” for things that are clearly bugs and errors.
It became synonymous to people in the aviation industry saying that “landing is no more than a controlled crash” lol. Or like a car salesman being handed the responsibility to sell a raggedy shitbox full of stains and rust and then promoting it as “certified pre-owned and high durable car at a low, low price!” 😂