Click here to monitor SSC
Av rating:
Total votes: 10
Total comments: 6


Brian Harris
SQL Response: Choosing Our Words Carefully
17 September 2008

This is the second article in the Use of Language series. It is worth reading them in sequence:
1) Chrome Browser: A Novel Approach to Language
2) SQL Response: Choosing Our Words Carefully
3) SQL Response: Does Everything Need a Name?

Historically, the profession of "technical author" emerged from the nascent aerospace and technology industries following the war, and brought with it a military-style rigidity of approach to standards and formality. But documenting (and putting words into) software in 2008 is very different from documenting the wiring of a cockpit in a fighter jet in 1952; perhaps we need to relax more… and be more like Google.

When you’re creating a new application, and where it is crucial to make it as simple to learn and use as possible, you can take nothing for granted. One of the most important tasks that you face is to make the language of the application as obvious, intuitive and accessible as possible. Even complex activities can be made simple by a careful choice of words. As the range of software users increases, this challenge only becomes more crucial.

The ubiquity of the internet has turned almost the entire population of planet Earth into software users; software has insinuated itself into all our lives, so perhaps its language needs to be more like the language of everyday life, and less like arcane techno babble.

At the same time, however, we still need to be enormously careful about eradicating naming issues that baffle users and sabotage otherwise great products. We still need to avoid inconsistencies, regionally specific idioms, and ambiguities.

Like the reasonable people we are, our approach to this issue is to strike a balance. We want to be cool and accessible, but also sensible, consistent and usable. While Google are using phrases like "Under the Hood", in the end they probably wouldn't pass muster at Red Gate.

"I have no name…. what shall I call thee?"

-Infant Joy, William Blake, 1789

As a technical author, it's my responsibility to give things sensible names in the application, and I have to contend with a host of conflicting considerations.


Fundamentally, names
have to be comprehensible
to their audience;
knowing the likely
users of your application
is critical.
                       ”

Naming features and dialogs can be like naming your new-born son or daughter; everyone has an idea or suggestion. For example, developers tend to refer to things by the names that they've used for methods and interfaces in their code. If we're not careful, these names creep into the GUI and, not surprisingly, some of them are less than meaningful to normal humans.

Meanwhile, marketing people tend to ignore your names and write about what they think is most likely to sell the product, using buzzwords that they know customers find desirable, and search for.

Fundamentally, names have to be comprehensible to their audience; knowing the likely users of your application is critical. For example, at the moment I'm working on SQL Response, and it's a tool for DBAs. I can therefore assume that they understand terms like "cluster", "deadlock", "credentials" and so on.

Some names are well-established and therefore comprehensible to all. "Cut", "Paste", "Print", "Delete", "Save" etc – by now these terms have entered the common lexicon. It's instructive to remember, however, that there was a time when each of these words was first used in an application, and that someone, somewhere, must have spent hours agonising over whether "Paste" was in fact a sensible word for taking data from one place to another, while (optionally) leaving it in its original location. I'm not convinced they did a great job - in the real world, "paste" doesn't really mean any such thing; it's more to do with adhesive properties, like sticking up wallpaper.

Names must also be used consistently. Users are bamboozled by options that do one thing in one place, and something quite different elsewhere in the same application, or even within another application from the same company. If we refer to a "project" in one place, we must mean exactly the same thing when we use the same word elsewhere. No freewheeling anarchy here.

Case-study: SQL Response

At the moment, I'm working on SQL Response, the very-soon-to-be-released new SQL Server monitoring tool for DBAs from Red Gate.

I have a confession to make first: I don't like the product name. I argued, unsuccessfully in the end, that you would expect a tool called "SQL Response" to enable you to respond to SQL Server problems in some way. But the interactive element of fixing the problems raised by SQL Response proved too difficult to implement in the first version and so was dropped very early on in the development cycle. So, SQL Response does a lot of monitoring and alerting, but no responding.

I suppose you could argue that "Response" means that SQL Response 'responds' to problems by alerting you to them in the first place, but that's stretching the meaning of the word to breaking point.

Unfortunately, the product name is the only name (visible to end users) in the entire project that doesn't come within my purview.

SQL Response is a brand-new tool for Red Gate, and as such came into the world nameless and innocent. My first task was to establish a terminology document listing the correct names to be used for each main aspect of the application. Here are some of the issues I encountered.

Incidents or alerts?


"There's been an incident".
It sounds serious. The
sort of thing a TV
detective would say
following a murder...
                       ”

When we were developing the first BETA version of SQL Response, quite a while ago now (in fact further in the past than any of us on the project would care to admit) we only ever referred to "incidents" in SQL Response.

An "incident" was anything that SQL Response identified as a potential problem on any of your monitored SQL Servers - a job failure, a long running query, low disk space, that sort of thing.

I was never hugely enamoured with this word, mainly because its connotations were too suggestive. "There's been an incident". It sounds serious. The sort of thing a TV detective would say following a murder, or a mysterious blaze at a disused warehouse. Also, because SQL Response has told you about something, it doesn't necessarily follow that what's happening is an "incident". It may be something you don't care about, or need to reconfigure the tool to ignore. It's more like a warning, after which you may or may not choose to take action. If the traffic light is red, then you shouldn't cross the road. But if it's 4am, and you can see for 500 meters in both directions, it isn't dangerous.

We now have alerts in SQL Response. They are "raised" (not "triggered"). They have Low, Medium and High "levels" (not "priorities") ". They can be "cleared" (not "closed"). They each have "configuration" (not "criteria").

So far, so good. Time to ask a difficult question – would it really have mattered if we'd chosen the alternative terms?

"Close a triggered Low priority incident."

or

"Clear a raised Low level alert."

The answer is – probably not. Users of SQL Response would quickly figure out what the action meant and, if the terms were used consistently, would not have a problem. But that's not to say we didn't spend time evaluating the relative merits of each one of those terms. "Priority" has connotations that may not match how a user wants to make use of our more neutral "levels". "Closing" an alert doesn't really do what you may expect, as the alert is still visible.

Is a recommendation an alert?

We did hit a problem, however. SQL Response raises two types of "alert". The standard type of alert, and also recommendations.

Recommendations differ in some subtle ways from alerts (for an example they cannot be cleared) but in other ways are identical. It turns out that many of the settings in SQL Response can apply to both alerts and recommendations.

What would help us is an umbrella term that means "alerts and recommendations". The best we can manage is "item", but this is semantically rather weak, so we tend to explicitly refer to "alerts or recommendations". It's a lot more characters and can sound clumsy in some contexts.

In the code, as developers delight in telling me, there is no such distinction. In the code, everything is an "incident". Go figure.

Groups or templates?

Another area of much debate concerned "templates". In the first BETA iteration of SQL Response, you could control the settings across a number of monitored SQL Servers at once by adding them to a "group" – a Development group, or a Production group, whatever you wanted. This seemed pretty intuitive. "Group" is a common word and easy enough to understand.


...in the battleground
between precision
and accessibility, we
try to find a balance.
But that balance of
meaning is constantly
evolving...
                   ”

Following lots of usability reviews, it was decided that "groups" wasn't the right word to indicate the far-reaching effects of how a group was used (to change the settings on lots of things simultaneously). Also, "group" could be misleading, if users simply wanted to view certain SQL Servers together.

We realised that we were overloading the meaning of the word "group". It was decided therefore to ditch the "group" altogether and introduce….. “The Template". It's a more technical, less 'universal' word, but it's more specific in its definition, and more importantly, it matches the behaviour in SQL Response more closely.

This caused me a few headaches as a technical writer. Do you "add" something to a template? Can you "move" SQL Servers from one template to another? I was happier with groups, because a group to me had a clearer conception in my simplistic imagination than a template. I could visualize those SQL Servers, huddled together in their tribal camps. A template is a more nebulous concept.

Again, in the battleground between precision and accessibility, we try to find a balance. But that balance of meaning is constantly evolving with changes in society and other software products like Chrome making our job endlessly interesting. ‘Meaning’ is a concept shared between speaker and listener, or author and reader; understanding breaks down when one party invents a meaning unilaterally. So believe me when I say that every detail has to be scrutinised, every word and synonym considered, and every decision carefully measured.



This article has been viewed 4293 times.
Brian Harris

Author profile: Brian Harris

Brian Harris is a technical author who has been attempting to make software more comprehensible to the average person on the street for almost ten years. He has been at Red Gate since April 2007. In a previous life he'd rather forget, he was once an English teacher, having graduated from Oxford University with a degree in English literature during the last recession, with no clue what to do with the rest of his life.

Search for other articles by Brian Harris

Rate this article:   Avg rating: from a total of 10 votes.


Poor

OK

Good

Great

Must read
 
Have Your Say
Do you have an opinion on this article? Then add your comment below:
You must be logged in to post to this forum

Click here to log in.


Subject: .
Posted by: Grammar Nazi (not signed in)
Posted on: Wednesday, September 17, 2008 at 9:36 AM
Message: Since you're being precise with language in your product, I hope you'll also get the punctuation right. You need a hyphen between "low" and "level" in sentences like "Close a raised, low-level alert". You also need a comma.

Subject: Group vs Template
Posted by: jerryhung (view profile)
Posted on: Wednesday, September 17, 2008 at 11:26 AM
Message: This is a tough one, as I am testing SQL Response now and it is hard to categorize/group servers
A learning curve there for sure

SQL Response is an interesting choice of name too
I would've thought SQL Monitor is not too unique, but a safe choice

Subject: Grammar issues
Posted by: Brian Harris (not signed in)
Posted on: Monday, September 22, 2008 at 4:08 AM
Message: Thanks for your post, Grammar Nazi. You raise an interesting point about the notion of 'precision' in language.

Coincidentally, I was at a lecture last Friday by Professor Geoffrey K. Pullum, co-author of The Cambridge Grammar of the English Language and one of the world's foremost authorities on grammar and punctuation. He was asked about the use of hyphenation, and referred the questioner to Chapter 20 of the book, where his exhaustive research shows that the rules for hyphenation are not in the least bit as fixed and definite as most people imagine. The same is true for the use of commas.

Admittedly, Pullum is a descriptivist, and something of an activist in the field of deconstructing overly prescriptive rules for punctuation and grammar. Also, it is true that US English tends to be more fixated on the notion of 'grammatical correctness' than British English. Pullum reserves his greatest scorn for Strunk and White, for example, and their advocation of inflexible, outdated and often historically incorrect rules.

By the way, the sentences I quoted do not appear anywhere in the interface or documentation. They were intended only to illustrate the different approaches to terminology.

Jerryhung: thanks for your comment. Abandoning the concept of groups does make SQL Response less intuitive in some ways, I feel, as we've basically separated out the viewing of alerts in groups (which you can do by using the filters) from the configuration (which uses the template). Your feedback on Response is very welcome, and we may revisit the configuration behaviour at some point in future.

Subject: US English vs. British English
Posted by: Anonymous (not signed in)
Posted on: Thursday, September 25, 2008 at 10:33 AM
Message: "Also, it is true that US English tends to be more fixated on the notion of 'grammatical correctness' than British English."

Really? Someone had better inform Lynne Truss right away!

Subject: Shoots leaves and eats
Posted by: Brian Harris (not signed in)
Posted on: Thursday, September 25, 2008 at 11:45 AM
Message: Hah, funny you should mention Ms Truss.

Someone in the audience of Prof Pullum's talk asked whether "Eats, Shoots, and Leaves" was a useful reference guide.

He was somewhat withering in his response. Although, he did concede that it was a triumph of marketing to sell so many copies of a book about grammar.

Subject: Anonymous comments disabled
Posted by: Chris Massey (view profile)
Posted on: Monday, November 03, 2008 at 5:04 AM
Message: Anonymous comments have been disabled in this thread due to spamming. You will either need to log in or sign up to leave comments here. Sorry for the inconvenience.

 










Phil Factor
Automated Script-generation with Powershell and SMO
 In the first of a series of articles on automating the process of building, modifying and copying SQL Server... Read more...



 View the blog
Using SQL Test Database Unit Testing with TeamCity Continuous Integration
 With database applications, the process of test and integration can be frustratingly slow because so... Read more...

SQL Source Control: The Development Story
 Often, there is a huge difference between software being easy to use, and easy to develop. When your... Read more...

How to Import Data from HTML pages
 It turns out that there are plenty of ways to get data into SQL Server from websites, whether the data... Read more...

SQL Scripts Manager: An Appreciation
 SQL Scripts Manager is Simple-Talk's present to its readers. William Brewer was an enthusiastic... Read more...

Hosted Team Foundation Server 2010 Review
 Team Foundation Server (TFS) has expanded its remit to support the whole software development process,... Read more...

Beginning SQL Server 2005 Reporting Services Part 1
 Steve Joubert begins an in-depth tour of SQL Server 2005 Reporting Services with a step-by-step guide... Read more...

Ten Common Database Design Mistakes
 Database design and implementation is the cornerstone of any data centric project (read 99.9% of... Read more...

Reading and Writing Files in SQL Server using T-SQL
 SQL Server provides several "standard" techniques by which to read and write to files but, just... Read more...

Beginning SQL Server 2005 Reporting Services Part 2
 Continuing his in-depth tour of SQL Server 2005 Reporting Services, Steve Joubert demonstrates the most... Read more...

Creating CSV Files Using BCP and Stored Procedures
 Nigel Rivett demonstrates some core techniques for extracting SQL Server data into CSV files, focussing... Read more...

Over 400,000 Microsoft professionals subscribe to the Simple-Talk technical journal. Join today, it's fast, simple, free and secure.

Join Simple Talk