One of the first things that I initially struggled with as we grew is what title a new hire should have. If someone has more than 5 years experience does it mean they are a senior, while if they have more than 10 years they are a principal engineer and so forth?
Turns out this system is really a big mess and causes all sorts of problems in a growing company.
The first problem is inflated titles. Say a person comes on board and you give them a senior title, then another hire is made who is a junior and then it subsequently turns out they are a much better hire than the senior, it becomes difficult if not completely impossible to have the junior lead a project where the senior hire is included. You will have to promote the junior before anything can be done. This reduces the flexibility in a small company to rearrange teams as you grow.
The second is that some start abusing their position assuming their title somehow imbibes them with more authority over others who have lesser titles. They use their titles to be the ‘biggest voice in the room’.
Third, titles create rigid hierarchies rather than a meritocracy. Hierarchies are great for the military or the government but are terrible for companies especially startups because it creates layers upon layers that good ideas need to cross to be heard and executed.
At CodeLathe, the approach we took was NOT to use titles internally at all except for team leads and managers. Titles are still provided sometimes and are used for external communication purposes ie when communicating with customers or vendors, for instance, otherwise, they are not considered.
Reward people’s contributions, ideas, hard work, and impact. Everyone will realize they don’t need a big title to earn someone’s respect. Everyone can be a leader without a title.