Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Naming is hard. Really, really hard. Even StackExchange is a prime example of this -- remember the huge domain name controversy that occurred when SE sites first started graduating?

Anyway, I've got a project I'm working on but I have no idea what to name it! This simple fact has caused production to cease, because I'm at the point where I want to create repositories and database tables, and I don't want to name everything "Untitled project" and have to change potentially hundreds of lines of code in the future.

Also, I would like to collaborate with others but it's difficult to be taken seriously if I refer to this as "some project I'm working on." It makes it seem like a new project in its infancy and doesn't garner a lot of interest. Just the simple fact act of having a name will make a huge impact in how it registers in others' minds.

How do you guys name your projects? This particular one is a website, so not only do I need to find a good name, I need to find one with an available domain, which is next to impossible these days.

How do you brainstorm? Who do you talk to (or not talk to)? Is there an "eureka!" moment when you stumble across something that works?

share|improve this question
25  
Stop hardcoding project names. Use a config file or something instead and it wont be such a big deal. I do not put project names in my DB tables. I recommend you stop doing that too. – P.Brian.Mackey Jan 21 '11 at 18:17
9  
@PBrian Easy to say. Refactoring namespace/package names is no picnic either, since good package names are reflected in the file structure. – Konrad Rudolph Jan 21 '11 at 20:15
3  
What name do you feel like blurting out right now? – Mark Canlas Jan 21 '11 at 20:25
16  
The two hardest problems in computer science are cache invalidation and naming things. – Henry Jan 24 '11 at 0:02
10  
"The most important thing in the programming language is the name. A language will not succeed without a good name. I have recently invented a very good name and now I am looking for a suitable language." -Donald Knuth – Kris Harper Apr 11 '12 at 19:02
show 1 more comment

closed as not constructive by ChrisF Nov 11 '12 at 13:05

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

15 Answers

up vote 38 down vote accepted

Pick a working title / code name

I've found that a lot of my projects evolve as I create them, and the witty, clever name I picked at the start doesn't really apply by the end. As such, I pick a random, made up word/name with no significance (eg Zanuba, Lindster, Wabbernan, etc), and use that everywhere I need a name internally (repositories, file names, etc). Then when it gets time to actually purchase domain names and what not, I start working on an actual name.

Some suggestions for picking gibberish names:

  • Find a foreign city/region name and change a couple characters: Istanbowl, Londini, Ukrayon.
  • Get a collection of syllables and string them together: Focattle, Bolacap.
  • Google random name generators
share|improve this answer
2  
This is how it's been at any company I've ever worked at. The code name was everywhere in the code, nowhere in the UI. – NickC Jan 21 '11 at 18:39
Hehe, I like Ukrayon. Mind if I use that one? – FrustratedWithFormsDesigner Jan 21 '11 at 18:50
2  
Remember that you want something that is easily google-able / duckduckgo-able. ukrayon returns 1400 results. You don't want to be fighting with UK Rayon for attention. yukrallon is much better. – Christopher Mahan Jan 21 '11 at 19:02
6  
I'm not a fan of random code names that don't mean anything. It's hard to keep track when you have too many. I prefer to use working titles that at least remotely make sense (as the Hermes example from this answer programmers.stackexchange.com/questions/38793/…) – mbillard Jan 23 '11 at 23:47
2  
While a working title is preferable, picking a random name is unhelpful for new starters trying to get their head round what the product is and management trying to give status reports to their superiors - "The Wibble project is 50% complete, the Splargle project is blocked on the FlangeSplinter delivery"... – JBRWilkinson Apr 12 '12 at 9:13
show 4 more comments

One piece of advice - when researching a possible name approach the problem from the different side. Think not of nouns and adjectives describing the project but of its characteristics and effects it might produce. Then the area of possibilities grows large.

But most of the times it's a higher revelation that suggests a good name. It's how I got mine.

share|improve this answer

Just use a code name for now. It can be anything.

And if you ever need to show the app name in code, have it in a config file.

share|improve this answer

A good starting point is: what does the project do? For example, a web portal for recruiters I would simply call "RecruitmentPortal" until someone in marketing sent me a better name. A tool to calculate some statistical data for user records I'd call UserStatReporter. You can dream up flashier names like "SuperAwesome Recruiter Portal", and "Reportr" later.

Other alternatives, pick a theme and stick with it. I knew one guy who'd give names to projects based on mythology. A communications framework I think got called Hermes. Rich mythologies provide many good names for many themes and situations.

Other naming schemes are geography: hometowns or street names of devs on the team (change for each new project), or of famous places.

And once I saw a naming scheme based on cheese names...

And don't let production grind to a halt just because you don't have a name. "A rose by any other name..."

share|improve this answer
2  
And then make everything into acronyms! "SuperAwesome Recruiter Portal" -> Sarp! Or maybe SarpNet. – Andrew Arnold Jan 21 '11 at 19:02
1  
@Andrew: "backronyms" are even more fun (but if I did the onese I wanted, I'd probably get in trouble)! :) – FrustratedWithFormsDesigner Jan 21 '11 at 19:08
+1 for using mythological names. Not only meaningful, but also unique and plentiful. – Kevin Vermeer Feb 1 '11 at 18:10
1  
stat rosa pristina nomine, nomina nuda tenemus – Andrea Apr 11 '12 at 23:46
4  
+1 for 'RecruitmentPortal'. It may not be 'cool' but certainly describes what it does - it banishes Recruiters to other realms, right? :-) – JBRWilkinson Apr 12 '12 at 9:15
show 1 more comment

Mythological characters

Good place to start for code names.

share|improve this answer
4  
I can see that you're leading by example... – user16764 Apr 11 '12 at 20:19

One way to do it is to come up with a prefix that you like and would want on your projects. The suffix then describes the project. This makes naming much easier especially if you have tons of projects.

For example, I prefix most of my projects with quack. Why? Its a name that I like. Why do I like it? No idea. Anyway, all my projects end up with names like "Quackbot" (IRC (chatroom) bot), "QuackCube" (rubik's cube solver), "Quackportal" (website theme and plugins for a CMS), etc. See how easy this can get? I've even used this for naming servers and other stuff, so you have things like Quackwall (Firewall/IDS/IPS), Quackbeast (a giant server), and Quacknet (wireless network)

Other prefixes:

  • J (Eg JUnit) - Java programs or ports of programs to Java
  • N (Eg NUnit) - .NET programs or ports of programs to .NET
  • Q - Used by a music company for all their concerts
  • i - for products of some well known fruit company

and even postfixes, .js for javascript projects: underscore.js, date.js, d3.js, etc

(This isn't a very comprehensive list, but you get the idea)

The only hard part here is coming up with a prefix. After that, naming projects becomes the least of your worries.

share|improve this answer

I would try to offer you advice, but I have a similar problem.

Hey, you should check out my chess clock - I call it BobChess, it's great :-) http://code.google.com/p/bobchess/

I've had tons of downloads and got some great emails about it.

So maybe the name isn't important ...

ps. The only advice I would offer is make it one people can spell very easily. "Hey, you should google my great project, ZasHiScoreTea!" "What?" That will get you very few visitors.

share|improve this answer
+1 for suggesting easy spelling – Zsolt Török Jan 24 '11 at 20:10

Write a vision for the project. Then try to summarize the vision in a sentence. Then identify something in nature that represents that vision. For example, on one project the vision was to re-architect a single tenant application so that it was multi-tenant. The thought of expansion came to mind. And almost immediately, I landed on Supernova as the name for the project. This was perfect because a supernova is the death of one star resulting in the birth of many other stars.

I think that going through the exercise of writing a vision for a project helps in multiple ways, including identifying a central theme for the project and thus a good codename.

share|improve this answer

I use the random word generator most of the time if I can't think of a name. Otherwise, I just give it a basic name based on its function, if I made a text editor, I would first call it Text Editor.

share|improve this answer

Pick any name which is easy to remember. That's it. Really.

Look at "apple" or "windows". Aren't those names stupid? They are, but who cares? Those "projects" are successful anyway.

share|improve this answer
Why are those stupid names? One is a company that makes a variety of products, the other is a computer system based on rectangular work areas. – JBRWilkinson Apr 12 '12 at 9:10
@JBRWilkinson By "stupid" I mean "silly", "non-dignified". It's of course my personal opinion. Anyhow, they bottom line in my answer was easy to remember. I don't understand down vote. – Michał Šrajer Apr 12 '12 at 10:50

One technique that can be used both for project folders and class names is inventing some short prefix, and combining it with simple words. For example if you project implements a game engine you can use names like:

ap-engine\
  ap-actor.h
  ap-world.h
  ap-event.h

It's really easy to just ignore the "ap-" prefix, making each name really simple and easy to understand.

share|improve this answer

When I deal with this sort of issue, I generally look at similar software. Look for existing software/websites/etc. that are closest to your project's domain. One of the best places to search for stuff like this are websites that contain tons of software. The best example I can think of is Softpedia. Write down some of the most interesting names that you find. This will definitely spark some ideas for your project's name.

share|improve this answer

Separate the project working name from the final product/marketing name

In my experience, products get re-branded, merged, split and revived over time and having to walk through code and rename it accordingly has no customer benefit. If you design your project such that you're using language strings, resources or config files when you actually present the UI/prompt/splash-screen to the user, it is trivial to change the name later.

So, now you need a good working project name. My opinion is that it is best to pick a name that describes what the project does, even if that isn't exactly a sexy name. Your product manager/marketing team/buddy can help with a sexy name later. Examples:

  • VideoStreaming<Client|Server>
  • MediaManager
  • MusicLibrary
  • RouteFinder
  • BookmarkSync
  • Unarchiver

Examples:

Project Name      Marketing Name
 MS-HTML           Windows Internet Explorer
 KHTML             Konqueror
 Game-OS           XBox
 backupd           Mac OS X 'Time Machine'
 MetaData Util     Mac OS X 'Spotlight'
 NT5               Windows 2000
 NT6.1             Windows 7
 SwordGame         Infinity Blade
 WebKit            foundation for Safari, Chrome, others
share|improve this answer
1  
Best answer out there. The project name and the branding can (and usually are) completely separate. – briddums Apr 12 '12 at 18:37
Actually, WebKit has WebKit marketing name. Products you've mentioned use WebKit internally, so it is not correct comparison, imo – om-nom-nom May 3 '12 at 14:37

May be ask your intended users/customers what they would like to call it?

Have a competition about it on a blog if you're looking for an opportunity to promote the application while you're at it.

share|improve this answer

I've got a list of common names for animals that I got from wikipedia.

There are lists of everything on wikipedia, just choose a domain and type list of <stuff> into the search box.

I have this script that picks up two different random animal names and sticks them together in a single word. Then it makes a working directory for the project in my code directory and a .lnk file to it in my %HOMEDRIVE%%HOMEPATH%\Links directory.

I've been using CrocodileTurtle, MonkeyDonkey, and DugongKouprey for a while now.

When I think of a better name for the project, I just slap it on (it hardly takes more than 1h 30m and a couple commits) and move on.

Random names don't make me even start thinking about a name, don't let me double guess myself while at it, and don't allow me to feel emotionally attached to the project name.

PS: Your fear of having "to change potentially hundreds of lines of code in the future" is really a non-problem as soon as the chosen name is unique enough as to let your editor change all references to the project name automatically. Paralyzing fear is frequently based on overestimating future complications.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.