Tag Archives: software

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.]

Better Software East Conference

The Better Software East conference is coming up on November 13-18th in Orlando, FL. This conference about ways to improve your software development process is held concurrently with Agile Dev East and DevOps East.

I’ll be speaking at this conference on Thursday Nov 17th about “Evolving from Automated to Continuous Testing” which should be pretty interesting. And the fun part of it is that because I’m speaking I have a discount code you can use to sign-up at the conference. You can register here and if you put in the discount code BE16AH16 you can save up to $200. If you register early before Oct 14th then you can get up for $400 off, so take advantage.

About my presentation:

Testing issues can be a significant barrier to taking full advantage of agile approaches to software development and the emerging DevOps movement. To leverage these development and delivery strategies to their fullest, you need to evolve beyond automated testing to continuous testing. Arthur Hicken discusses the testing and development processes and technology that enable continuous testing. He shares insights on how to close the gap between business expectations and development activities by encapsulating clearly defining development policies for software releases.

Arthur describes how to prevent defects in code and prioritize defect remediation before a release candidate goes live. Explore ways to realistic test environments and simulations—critical features of the dev/test infrastructure—that enable continuous testing. Learn how to create a feedback loop that exposes defect patterns while highlighting opportunities to improve application design. Take back a comprehensive to do list for processes and infrastructure that must be in place for your organization to implement continuous testing and accelerate the SDLC.

About the conference:

Discover the latest in agile methods, technologies, tools, and leadership principles.

Whether you’re new to the agile process and need to get up to speed quickly or you’re experienced and ready to take your team or organization to the next level, our hands-on, in-depth workshops have you covered. Plus, Agile Dev East is held in conjunction with Better Software and DevOps East, allowing you to choose from three distinct programs.

  • Agile Development
  • Agile Testing
  • Agile Requirements
  • Agile Metrics
  • Improving the Process
  • Agile Leadership
  • Lean and Kanban
  • Agile for the Enterprise
  • Calendar

    Keep track of my calendar for other events – it’s over there on the right somewhere ——–> and don’t forget to register here and use the discount code BE16AH16. In the meantime you can follow the conversation about the conference on Twitter, Facebook and LinkedIn using the hashtag #BetterSoftwareCon. See you there!