Matt Gemmell

TOLL is available now!

An action-thriller novel — book 2 in the KESTREL series.

★★★★★ — Amazon

Naming Software

development 4 min read

A few techniques I use when trying to name a new software product (a notoriously difficult process). This 
article has a very slight bias towards Mac OS X, but the general principles apply to any platform.
1. Generic name
The important first step is to find as generic as possible a description of the purpose or nature of the product, 
not limiting yourself to computer-related terms; examples would include "agenda", "writer", "diary", "photo", "accounts", 
"music", "genealogy", "movie", and so on. Select a few of these terms, prioritising those which are most common in 
everyday language.
2. Synonyms
Use a good thesaurus to find synonyms of your base terms, removing any duplicates. For convenience, you can use the 
<a href="" target="_blank">online thesaurus at</a>. You'll tend to get better results 
from a reputable printed thesaurus, but online ones are sufficient.
3. Pin down the meaning
Use a good dictionary (again you can use an online one, such as the <a href="" target="_blank">dictionary at</a>) 
to select the words (from your list of base terms and their synonyms) which most accurately 
describe the purpose or nature of your product. There are endless subtle variations in meaning, and common misconceptions 
as to the true meanings of words, so take some time to do your research.
4. Synonyms again
Now that you have a small list of very appropriate words, obtain synonyms for them once again (or at least those which weren't 
in your original list of base terms). Searching for the synonyms of two words which are themselves synonyms tends to produce 
slightly different results, so this step makes sure you've not missed any potentially useful terms. Again, also use a dictionary 
to strip out those synonyms whose meanings are inappropriate.
5. Connotations
Think about the connotations of your list of terms (what the terms bring to mind; the mental associations you make when reading 
those terms). Ask a few other people too; their responses will often be surprising. Eliminate terms with very inappropriate connotations, 
but don't be <em>too</em> harsh in your selection process.

More importantly, <em>add</em> associated words from your and others' connotations for 
your list of terms. For example, for an application which edits movies, I'd add words like "director", "Hollywood", "actor", "cut", "scene", 
"cinema", "popcorn", and so forth; none of which are synonyms of the base term "movie". Many apps are named with such secondary or associated 
terms, including Keynote, Safari (surfing safari? exploring the web?), Acrobat (gracefully crossing the gap between platforms?), Final Cut Pro, 
Sherlock, and many more.
6. Consider the simplest form
Marketing forces tend to cause products to be named with a view towards being more flashy and memorable than necessarily descriptive or appropriate; 
that's fine in itself, but it can be very hard to come up with a suitable name in the first place, and particularly one that hasn't already been taken. 
OS X's relative youth as a platform helps to some extent, but it's only a matter of time before all the "good" names are taken once again. If you're an 
independent developer looking for a solid name for a product, you can take advantage of these market forces by simply refusing to succumb to the temptation 
to have a flashy name, and instead just use one of your list of appropriate terms as-is.

Just a quick glance through my applications folder reveals these examples: Mail, Calculator, Script Editor, Script Debugger, DVD Player, Chess, Address Book, 
Font Book, Image Capture, Preview, Stickies, TextEdit, Virtual PC, Activity Monitor, System Profiler, and many more. Whilst these names can come across as 
uninteresting in a certain sense, they're also robust and unarguably appropriate. You'll also find that generic names such as these are mostly not yet taken by 
other developers, so you may be able to use a name you would have thought was long-gone on your chosen platform.
7. Check it's not taken
Ideally you'll be doing this continuously as you narrow-down your choices: check your favourite name isn't taken already by an application on your target 
platform. For Mac OS X, check by doing a search in <a href="" target="_blank">VersionTracker's OS X section</a>. 
Remember to always use the most general version of a word, cutting it down to its most common stem if necessary. VersionTracker's search by default returns 
matches in name or description, so you'll get a good indicator of whether or not the name is already taken. But don't entirely rely on the results; use 
Google too.

I usually do a Google search for <code>+"your term" +"software" +"download"</code>, obviously replacing "your term" with whatever your term is. Depending on 
how careful you want to be, you could also include the name of your target platform similarly, to check just for products using that name on the same platform. 
Of course, how you proceed if you find that your favourite name is already taken is entirely up to you, but do use caution and consult a legal professional if 
practical to do so.
8. Consider common modifications
If your favourite generic name is already in use, consider common modifications used to create unique product names. I find that a good way to do this is to 
think of a very common genre of software (for example, text editors or notepads), and do a search (again, try Versiontracker or even Google) for products 
whose name or description includes, say, "notepad" or "text". You'll then be presented with a list of essentially all the most common ways to alter a generic 
name in order to get a unique product name. You'll run into general prefixes like "My-" and "i-", the practice of putting the software company's name before 
a generic term to create a product name, suffixes like "X", "Pro", "Personal Edition", "Plus" and many more, and even various forms of intercapitalisation 
and other tricks.

Try some of these out with your favourite generic terms, and see if you can construct a product name that fits the bill.
9. Consider unrelated names
Many products have names which aren't in any way related to their purpose, yet which are memorable for that very reason. Let an encyclopaedia 
or other book fall open at a random page, and look through the text to see if something doesn't take your fancy.
10. Get help!
If all else fails, post a <a href="">request on your blog</a> for 
(fantastic) folk to suggest names for your product, and send something cool to whomever comes up with 
the name you finally choose. It's worked in the past. ;)

Above all, try to step back and not be overly harsh when vetting suggestions or 
possibilities. In a world where the word "excel" is now unalterably associated with <em>spreadsheets</em>, you really can make just about any name 
work if you're confident about using it.

If you have any other tips on product naming to share, post them via the comments link below. I'd love to hear how other developers come up with 
names for their work, because it's something I always obsess over (often to the point of stalling the actual development process). If you have a 
foolproof method of finding a good name for an application, then by all means let's hear it!