I was with a customer this morning presenting back the results of their DevOps Maturity Assessment (you can get yours here) and we were talking about how creating, agreeing and using a common vocabulary is key to effective communication and a step towards achieving cultural improvement. Yesterday, on a prep call for today's presentation with the same client, my esteemed colleague Daniel Breston, was ranting talking about his dislike of the term 'non-functional requirements'. It got me thinking about a blog about offensive words and phrases we use in IT and what we should use to replace them in our idiolects and shared vocabulary. So here it is.
1. Non-Functional Requirements
May as well start here since I just mentioned it. So what you should know about Daniel and me is that I have more of a development/Agile background and Daniel was firmly sat in the operations and ITSM camp during much of his career. So for me the term non-functional requirements makes perfect sense - they are requirements that describe aspects of an application that aren't specific to the way the application will function but generic items such as security, performance and speed. So when Daniel first voiced his disgust with the phrase I accused him of being a semantics pedant. But the more I dwelled on it, the more I saw the negative connotations of it and the way the 'non' kind of dismisses them as not important. The customer agreed when we discussed it too. And we all definitely agreed that the important thing is to get the NFRs or whatever you want to call them identified and agreed early in the development and delivery cycle - one of the ways in which we 'shift left' in DevOps. What shall we call them if we don't want to call them 'non-functional requirements'? You could differentiate between them as development and operational requirements but that's not really helping us break down silos. How about just: 'requirements'?
2. War Room
I'm by no means some sort of hippie but, like most people I think, I would love to live in a world without war. Conflict, destruction, death - there's simply nothing good to find in it (and I'm not sure the accelerated technological developments off the back of it are worth it before you suggest that). So why would we bring this vernacular into the workplace? What should we say instead? Or perhaps we should just do away with the concept entirely.
3. Post Mortem
It's DEAD! It's not coming back. We're going to forensically pick the body apart and find out how this happened. The thing is, this brings to mind mortuaries and more death. And the thing probably isn't dead, it's probably back up and running now. How about you have a retrospective instead?
4. Release Weekends
Things I like doing at weekends: going for long walks in the countryside, cooking some excellent food, hanging with friends, enjoying wine, catching up with some TV or films or a book. Things I don't like doing at weekends: working. Streamline your release and deployment process, automate it, make it like breathing. Stop working weekends.
5. Defects versus Incidents
This is another bugbear of Daniel's. I kinda agree with him, but I think this may be semantics. No doubt he'll let me know his thoughts in detail. But I don't think we are saying they are the same thing. I think we're saying defects cause incidents. And not all defects cause incidents. And not all incidents are caused by defects. And an incident can have greater ramifications in terms of cost to the business and customer undelight than a benign defect that didn't cause an incident.
6. Bimodal IT
This one I started thinking about last week when I read this chat between Alan Shimel and Rosalind Radcliffe on DevOps.com. It also came up in this morning's meeting and does a lot when we talk about DevOps with the kind of clients we have who tend to have been around for years and have systems that have evolved along with them that are business critical and often described as 'legacy' and/or 'monolithic'. Rosalind's point is that there are more than two modes. So she likes variable speed IT. I do too. And variable velocity IT. Because I like alliteration. Even though I know it's cheap.
7. Hybrid Cloud
Last week we were with a prospect, a hosting/ISP and the term 'hybrid cloud' came up. She didn't like it. The thing is, lots of these terms come up and then they are hijacked by marketing. Remember eBusiness? Hey, what about DevOps? And people use them and they don't really know what they mean. Check out this meme. Also, most organisations we work with are going to have fairly complicated environments for quite some time, if not for ever and it's not as simple as saying they've got a bit here and a bit there and a bit elsewhere. There are machines and there are networks and they exist physically somewhere. What does it matter where?
Back to Daniel, he is partly responsible for ITIL. And I've added it here as offensive language as it's got itself a really bad name. Along with Prince2, ScrumMasters and the way Agile might be going if it's not careful. What all these things have in common is that they have not been used in the way they were intended. ITIL was intended to have all the flexibility we understand ITSM and Agile Service Management to have. ScrumMasters were supposed to have practiced what they do before selling themselves out as experts. Agile doesn't throw away documentation.
So there we have it. My list of Offensive Language in IT. Sorry if you were expecting expletives. You got any pet peeves you want to add?