What's your job title mean? What do you say when people ask you what you do? Do you respond with your pay scale, seniority, role, or nickname? Here is a overview of some of the different methods of coming up with job titles.
Pay Scale - This is the traditional use of job titles. Programmer I,II and then Software Engineer I,II make it somewhat obvious where you are on the pay ladder. The military and government are prone to this.
Seniority - Titles like intern and assistant identify the new guy like a badge of silly until someone remembers to change it. Engineers who hang on too long become Seniors.
Functional - When your title reflects your current role, you have a functional title such as Lead Programmer, Programming Manager, Gameplay Programmer, Systems Engineer. These titles can change as your role changes.
Decoration - When your title is not clearly functional or numbered, such as Principal Software Engineer, Architect, Distinguished Engineer, or Fellow. Generally reserved for larger corporations, these titles are probably meant to bestow some level of respect to strangers.
Nickname - Very informal, nicknames bestow your method of operation or specialty. Welpy is a laid back all around programmer, The Wolf is a bug killer extraordinaire, and The Finisher knows how to bring a project to completion. The A-Team worked well this way.
Where it gets interesting is when expectations or titles overlap. What if you get a decoration title with no pay raise? What if a Programmer II is the manager of a Senior Software Engineer? What if your secret nickname for everyone else is not rated G?
With everyone chasing job titles and personal advancement, it can be hard to keep a team focus; and that does impact the bottom line. So if you need to decide what job titles to give your engineers, make them functional and explain that the company hired you for all your talents, so when your role changes, it doesn’t necessarily obligate them to throw in a pay raise.