Whats in the name? EVERYTHING.
Make sure the name is interesting, unique and shows the worth of the product you are making. Names based on functionality is the way to go, but it should not define what are you doing rather a single word term that has somehow has a relation with what you are developing.
I often pick my project names in local language (urdu in my case).
Even if you have to insert client name, usually the product would be called ignoring the client name so it doesnt matter much if you pick strong name for your product.
Just to give an example, I named the chess engine I wrote "Shaatir". In urdu it means
- Very Strong chess player
- A Cunning/Clever person
- Someone who lay down traps
- Wicked.
Each one of the meaning somehow relates to my program.
Edit: You can also add a slogan to your product. Not sure why the idea is not so popular in the software industry. There are few examples though. Like "UBUNTU- Linux for human beings". Adds spice to your product.