RSS Feed

New Adventures in Software


Naming Software Projects

Posted in Software Development by Dan on September 1st, 2008

“What’s in a name?” asked William Shakespeare, but then he wasn’t a software developer.  If he had been his plays might have had mutually-recursive titles or Henry V might have been called YAPAK.

“How do you name your software projects?” was a question posed on Reddit recently.  Coming up with good names is not easy.  I’m reminded of the quote that letting software developers name products is like letting the marketing people code them.  But in the absence of focus groups, or even a marketing professional, we try our best anyway.


© 2004-2007 Jeffrey Rowland/overcompensating.com

Common Strategies

Many developers will default to the tried-and-tested naming algorithm popular with the Linux crowd:

  1. Take a single word that loosely indicates what the software does, such as “mail”, “reader”, “writer”, “player”, etc.
  2. Then choose a single-letter prefix according to the following rules:
    • Is it a GNOME application or other GNU-related program?  Then it should begin with the letter ‘g’.
    • Is it a KDE application?  Then it should begin with the letter ‘k’.
    • Is it an X-Windows application?  Then it should begin with the letter ‘x’.
    • Is it written in Java?  Then it should begin with the letter ‘J’.
    • Is it written in Ruby?  Then it should begin with the letter ‘r’.
    • Do you want to attract the attention of Apple’s legal team?  Then it should begin with the letter ‘i’.

Another naming strategy, for the creatively-challenged, is the Ronseal approach.  This involves choosing an entirely accurate but wholly unimaginitive name (often abbreviated to an acronym).  I’ve been guilty of using this technique in the past.  Occasionally, you can derive a mildly amusing acronym.

If you have the Web 2.0 cool you can take a word and miss a letter out, brilliantly disguising the fact that the domain name that you really wanted wasn’t available.

My Own Efforts

I didn’t have to think too long over the name for ReportNG.  Unexciting as it is, it was a fairly obvious due to its relation to TestNG.  It also has a built-in barometer for success.  When Google stops asking “Did you mean reporting?” I’ve made it.

On the other hand, I spent ages trying to come up with a name for the Watchmaker Framework, and a couple of years later I’m not entirely satisfied with it, though I haven’t come up with anything better in the meantime.  All of the obvious evolution-related words were already being used for other evolutionary computation projects.  Eventually I settled on “Watchmaker”, an allusion to the Watchmaker Analogy and, by extension, to Richard Dawkins’ The Blind Watchmaker, but it’s probably a confusing project name to those who aren’t familiar with the analogy.

Thinking of a good name can be difficult.  You have to wait for inspiration to strike and you have to try to avoid Firefox-esque cock-ups.  I find it very difficult to start on a new project idea until I have thought of a name for it.  And yet sometimes you have a great idea for a project name when you’re not looking for one and then you need to find a project to apply it to.

(Dis)Honourable Mentions

Which software projects have the best and worst names?  I think Hibernate is a good name (although I often refer to that software in my own more colourful terms).  Lisp and Smalltalk aren’t exactly positive words.  Names like Python, Java and Ruby are much cooler, regardless of the relative merits of the languages.

What other projects have particularly good or bad names?

3 Responses to 'Naming Software Projects'

Subscribe to comments with RSS

  1. Chase Saunders said,

    on September 4th, 2008 at 3:47 am

    “Lisp and Smalltalk aren’t exactly positive words”

    You could add C to this list (3rd class?)

    Then there’s The Gap (a gaping void?), Caterpillar (a tiny squishy bug for a big powerful tractor?), Virgin (an inexperienced pilot?), Banana Republic and so many other huge brands built on “negative” names.


  2. on September 4th, 2008 at 9:29 am

    [...] trouvé un article intéressant sur le sujet : Naming Software Projects posté par Dan Dyer sur http://blog.uncommons.org où on pourra trouver quelques [...]


  3. on September 5th, 2008 at 10:15 pm

    [...] Naming Software Projects [...]