I’m often bemused by words in the software industry aka computer science. It’s generally OK when industries just make up new words for something new, but in software we re-use words that have (or at least had) a real definition, and then use them completely differently. Or worse still, twist the definition just enough to make it not obvious that the meaning has changed. Sometimes even the words had a good software meaning, but it’s been killed over time – like artificial intelligence or AI.
With that in mind, and without a lot of blather, I just wanted to vent and list a bunch of them here. I’m not going to define them properly, because how could I? If I’ve missed your favorite, let me know in the comments, twitter, etc. If you disagree let me know and we can argue. 😉
The list is alphabetical, because I’m a human and think that way. If I was ordering it by capability to annoy, it’d be AI, Software engineer, and everything else beneath. Enjoy!
Agile – you’d think this had a good definition but ask around and see what happens.
API – used to have a good meaning but no longer. h/t to @keith_wilson.
Artificial Intelligence or “AI” – this term has lost all meaning. I have come to agree with Musk and others that real AI will be real dangerous, but nothing we currently call AI is “artificial intelligence” in that sense.
Computer science – You could argue this one is real as long as you apply it to hardware, but software? Forget about it. Blogs and rants on this are in the queue.
Cybersecurity – is it antivirus? firewall? software? coding?
DevOps – I thought this had a definition, but many, like my friend Theresa, disagree, so it must not.
Engine – this one is now just a noise word used to give something a fancier sounding name.
False positive – developers throw this word around in a way that usually means one of the following: 1) the tool output was actually wrong; 2) I don’t like this finding or don’t think it’s important; 3) I don’t understand this finding or why it’s important (usually a type of #2). It REALLY only means the first one, but the most common definition includes all of the above.
Framework – should be a great word. Was a great word. Now a marketing word.
Memory leak – you think this has a definition, but try to look it up. In my world we think of it as memory you can no longer access or control, including freeing it. Others think it means memory you never freed. (Note – they’re wrong.)
Mock – seems simple enough, but it’s surprisingly broad. Some even think it includes service virtualization.
Platform – again a term that had a meaning once upon a time, now it just means “some package of software we sell”.
Service virtualization – this is a fair call. The original meaning of the term has been overloaded and extended and the “new” meaning has become more common in the software testing world, while the “old” meaning still holds true for hardware, deployment, and networking people.
Software engineering – please, this is one of the worst. Most people who call themselves software engineers don’t even begin to behave like engineers. If they are, what particular standards were they taught that all other with the same title were also taught? I thought so.
Standards – You think this one has a meaning, don’t you? In “engineering” standards means something. If you’re an engineer, you already know what I’m saying. If you don’t get this, you’re not an engineer.
How did this happen? Is marketing to blame? Or is it just that there is no “software science” even if there is “computer science?
Again, if you have a favorite let me know and I’ll add it to the list. If you disagree I’m always up for a good twitter argument. If we get enough I might add it as a new Hall-of-shame permanent list. I feel like I’ll come up with a bunch more myself as soon as I hit publish.
[Update – suggestions coming in already. I’m putting them in proper alphabetical place, but will reference the source.]
[Update 2017-09-19 – added “memory leak”. Should have realized that was needed, it’s an obvious one. also false positive]