Category Archives: General

Software Terms Without Definitions

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. I’ve seen a working definition that it means a computer doing something that would normally require human intelligence. I can agree with that, but if the software is essentially doing a big data lookup to get an answer, that wasn’t intelligence, it was data processing.

Computer science – You could argue this one is real as long as you apply it to hardware, but software? Forget about it. Software development hasn’t progressed to the science state yet. 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”.

– in short it kind of means “have developers start testing”. But depending on whom you ask, you might be surprised at the answer you get if you ask someone what this means in specific. Like “where IS left” and “what are you shifting”?

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]

[Update 2017-12-11 – added “shift left” because last week I was meeting with some people and discovered we didn’t have the same definition at all. Essentially their “shift left” was entirely to the left of my left. Also expanded a few other non-definitions that were already here.]

Lost Bros is Retro Game Fun

And now for something a little different. My nephew has been working hard for a long time on a game which is now live on Steam Greenlight.

Lost bros running from a skeleton in the swamp area.
Lost bros running from a skeleton in the swamp area.
Lost Bros is inspired by Blizzard’s The Lost Vikings and classic 80’s time travel movies like Bill and Ted’s Excellent Adventure and Time Bandits.

Outside the labyrinth: Zeus has tasked the Lost Bros with retrieving the minotaurs heart.
Outside the labyrinth: Zeus has tasked the Lost Bros with retrieving the minotaurs heart.
It’s a retro style game in which you simultaneously control three independent characters as they travel through time to save their kidnapped friend. Gunman, Shieldman, and Swordman must cooperate with unique abilities to traverse dangerous puzzles and fight monstrous baddies.

Please take a look and upvote him so he can release his game on Steam! This is a one-man project which he has invested a TON of his energy and creativity into, from art to design to music to programming. Especially, if you know anyone you’ve ever heard complain that games these days are too easy, please point them at this! It’s got a great retro feel with crazy complex gameplay!

Lost Bros walking through town in the wild west. At the post office they can take horse delivery missions to earn cash.
Lost Bros walking through town in the wild west. At the post office they can take horse delivery missions to earn cash.

Game Features:

  • Alternate game modes that help explore the concept of controlling 3 with 1.
  • Nine distinct time periods that can be tackled in any order.
  • Unique game play and design.
  • Challenging gameplay.
  • Xbox360 and XboxOne controller support (highly recommended!)
  • 21 homemade audio tracks.
  • Friendly Fire.
  • Retro pixel art.
  • Powered by Unity.
  • Art, music, programming, and design all done by one person.
  • Unlockables to increase character power.

Like it on Facebook.

Parasoft Work Anniversary – 22 Years

As of today I’ve been at Parasoft for 22 years. When I started, George Bush (the elder) was president, mozilla didn’t exist, AOL, Compuserve and Prodigy were what the public used for network, and an i486 was considered the latest greatest PC. We’ve come a long way since then.

The internet is now available to pretty much everyone, connection speeds are enormously faster although never fast enough to suit me. Browsers have improved and even seem to have gone away from the horrible proprietary extensions they once relied upon so heavily.

Software has come a long way. When we started selling Insure++ a runtime memory detection tool for C/C++, the most common reaction was “I’ve already got a debugger, why would I need such a thing?”. Seems like a silly statement now. Perhaps more amusing was a former product partner who thought that static analysis tools would never be a viable product on their own. Boy were they wrong! (You know who you are…)

Parasoft has morphed. When I started we were all Unix geeks and our favorite OS at work as SunOS (not Solaris, real SunOS). I got to work with my brother and a handful of others, a disproportionate amount of whom had PhDs. At the time we sold parallel processing tools, both directly as well as OEM deals through places like IBM, Intel, Hitachi, and nCube. Our toolkit was things like a parallel debugger, a parallel communications profiler, parallel graphics library, and my favorite, Cubix, a simple setup to very easily spread work across multiple nodes (think map-reduce).

These days all that cool high-tech software has evolved into software development tools that are still based on work done in the early days on understanding code to make it scale better. We don’t play with the big fancy computers anymore like Cray and whatnot, but the networking is so far beyond what we could have hoped for that it matters very little.

And for fun, a collage of myself and just the tiniest portion of the people I’ve worked with over the last two decades. Here’s to 2036!
Parasoft 22 years