I’d never really considered that this simple, 2-letter word could cause so much issue until speaking with an analyst in a previous job.
A defect was raised by the client on our legacy system. The manuals were consulted, and right there in the middle of all this documentation, the behaviour was described as it. Unfortunately, nowhere in the documentation was it actually stated, such was the manner in which it was described, it could have referred to a number of features and behaviours.
We might as well have described the behaviour as “some thingy”.
So why do I dislike that word?
The problem is it’s usage as a catch-all word, being used to describe something, without actually describing what that something is.
The definition of 'it' is listed as such:
"used to represent an inanimate thing understood, previously mentioned, about to be mentioned, or present in the immediate context"The problem with this is many things can be mentioned past or previous, one person's understanding may be different from another's, and context may not necessarily be obvious.
In the software industry, I consider this to be ambiguous language, and ambiguous language can lead to misinterpretation. If this word is used when defining requirements then a level of uncertainty could be created, then interpreted incorrectly, developed incorrectly and tested incorrectly.
I’ve been trying to work towards getting better requirements into development, one of the ways in which to do this, is to use better language - or at least language which cannot be interpreted in multiple ways.
One of the easiest ways to get less ambiguous language into requirements is to eliminate the ‘it’ word at that stage.
As an example, a list of requirements for the design of a web page could state (and this is in no way representative of actual requirements):
- A banner coloured red, white and blue
- There are 4 links - Home, Reports, Settings, Logout
- It is located at the top of the page
So what is located at the top of the page? These are particularly bad requirements to get my point across, what the requirements were supposed to say was there are 4 links within the banner, and the banner is located at the top of the page. By using ‘it’ in that scenario, the inference could be on just the banner, just the links, or even a single link out of all of them.
By removing the implicit words when communicating ideas, there will be better understanding from everyone involved.
Not just requirements
We as testers need to be mindful that we are also in the business of communicating. When raising defects reports, the language used is key to getting the understanding of what the issue is, which has a bearing on whether that issue is perceived as being severe or not. If that perception of severity is lower than intended, then an issue that is causing frustration for users may not get fixed and continues to be a problem.
There are other words that are implicit in their concept, I’m just focussing on 'it' for this post because I find that the usage of 'it' being far more common, where individuals use not necessarily bad language, but lazy language, and just want to get their point across without actually stating what their point is, just hoping that someone understands them (or doesn’t, as this article on The Guardian covers).
Even when writing this post, I have had to work hard to avoid using 'it' - the use of such words is extremely prevalent and we like to fall into the trap of doing whatever is easiest.
We just need to be mindful of it.