Codenames are one word. Exceptions are few and far between. The reason? Efficiency. A codename is chosen as a time saver. My first significant product, Paradox for Windows 1.0, had a great codename “Tsunami”. It met all the requirements: a single word, nerd interesting, and it simply told the tale of what we were attempting to do with the product - there’s something big coming, we’re building the first easy to use relational database to the then-emerging Windows platform. Good codename.
Codenames document your product culture and there is an economy to these names. Every single product in your company doesn’t need such a name. My rule of thumb is that a codename designates a product or project of significance. What is significant is entirely up to you, but I know that you will never make a project significant by giving it a codename. If your idea or product is shitty, a codename will never help.
The people who are building the product are the only ones qualified to pick the right name of the product. If Marketing is picking a codename, you don’t work at a product company, you work at a marketing company. Good luck with that.
For the creative team, codenames are symbols of pride and vision. The best codenames stem from consuming thought about solving the problem at hand, which ironically is the the same place great products come from.