When it comes to naming your software product (whether an application or a library), what do you do?It seems impossible to choose a name which isn't already taken by some other piece of software, whether it's someone's small hobby project or a company selling it.  We all know about Phoenix becoming Firebird becoming Firefox because it clashed with other software product names.How unique does a name have to be?  Phoenix was the name of a computer BIOS - hardly similar to a web browser, wasn't it?  And to take a counter-example, there's Fedora the operating system and Fedora the repository software, happily co-existing.  Another counter-example is midori the Javascript framework and midori the web browser.What steps would you take to ensure the name of your application or library isn't taken by someone else, and how far would you look - in terms of the type of product - when looking for other things with the same name?
Naming your software and uniqueness
open source;naming;marketing
The uniqueness of the name is important for three reasons:If you take a name of a product which already exists in the same or similar market, this product company can sue you in some countries. Example: creating a graphics editing program an naming it Photoshop.If you take a name which is already in use extensively, you will hardly be able to be in first 10 in Google or other search engines results. Example: calling your application Agile.If two products or technologies share the same name, it can confuse the users. Example: lots of my customers (with little technical background) ask me to write Java code when they talk about the interactivity of a website in a browser).Those three reasons means that you don't have to care about the uniqueness of the name in every circumstance. Instead:Ensure that the name is not taken by a concurrent.Ensure that you will have enough visibility in Google by searching for the word you want to use for your product before choosing it. Example: calling your product Agile is not a good idea. Calling your product Agile Mediaworks is fine (even if this name is stupid), because this name has no results in Google nor Bing.Ensure that if there is a similar name already in use, it will not confuse the users. Java/JavaScript is confusing. ASP/ASP.NET too.Now, how to choose a name? Here's some advice:You can use the name of the brand/company in the product name. But don't do it if the name of the company is too long. Example: Microsoft Word is fine. Pelican Design & Development Criollo System Center is ugly.Don't fear using common names, but don't use direct terms which expresses what the product is about. Example: Microsoft Excel is fine. Microsoft Spreadsheet Application is not.Remember you can use long names if they abbreviate well (with searchable abbreviation). Windows Presentation Foundation, aka. WPF is ok.You can use fancy names like the names of magical creatures (Example: Firefox), or special terminology (in my company we use horse breeds a lot: Campolina, Criollo System Center, etc.), or words from mythology (Example: one of our project was called Syrinx), etc.You can also invent your own name, if it sounds good. But be careful if you intend to create a product which will be sold worldwide: some words which sound well in English are not in other languages. By the way, this applies to common words too. Example: the name of Bluewater brand is pronounced the same way as the word vomit in Russian.To conclude, it seems that you have a large choice of names: common names, names from mythology or used in specific sectors other than IT, names which contain the brand name in it, compound names which abbreviate well, etc., and you don't have to care about choosing the name which never existed before. The only think you must care about is to not taking a name already in use by your concurrent, to choose something which will be easily searchable and to not confuse your users.