When deciding whether to promote somebody, ignore past performance. This sounds like a radical idea, but it's not.
A promotion usually signifies some change in role. The best person for a project management role is not always the best programmer in the team. Past performance shows that they have the skills to do well in their current role. What is important is that the person has the skills required to perform well in the new role.
Instead, consider a skill based promotion. Establish the skills required for different roles in the organisation. Promote people when they acquire those skills.
Such a system is also transparent: Everyone knows where they stand and what they need to do to achieve a promotion.
Here is a plan on how to implement skill based promotions -
- Write down a list of skills required for each role - apart from promotions, these lists of skills will also help in hiring
- Provide resources to enable employees to acquire those skills
- Promote them when they have acquired the relevant skills
How can we come up with a list of skills? Here is one example -
Key Skills Required -
- Thorough knowledge of the programming language
- Knowledge of a unit testing framework
- Project architecture and design skills
- Estimation methods
- Design patterns
- Understanding of algorithms
- Code reading skills
Key Skills Required -
- Identifying and managing project risks
- Estimation methods, formal and informal
- People and communication skills
- Knowledge of at least one traditional process and one agile process
- General management skills
- Good technical knowledge to understand problems faced by the team (Although this is not strictly required, programmers do respect their managers a lot more if they are technically oriented)
- Some amount of domain knowledge
- Basic understanding of the target end user - this is needed because the project manager is the user advocate in the team
- Understanding of the technical environment - source control, testing methods used etc
Once the lists of skills have been written down for various roles, the next step is to help your employees acquire it. There are three ways to do this -
- Allowing them to attend seimnars, workshops and conferences
- Filling up the company library with relevant books and magazines
- Enabling them to form ad-hoc learning groups
For my views on these three points, see my previous posts on creating ad-hoc groups and modes of learning.
One problem with this method is that there are only about 2-3 different roles available in project development, and thus reduced scope for promotions. It will also take a long time to acquire all the required skills from scratch.
The solution is to create intermediate positions when a part of the skills have been acquired. For example the above list says that a developer needs 8 key skills. There could be an intermediate promotion when 3 skills have been acquired, and another one when 6 skills have been acquired. Here is an example of such a ladder:
- Developer [0/8 skills]
- Senior Developer [3/8 skills]
- Technical Designer [6/8 skills]
- Senior Technical Designer [8/8 skills]
And for Project Manager:
- Project Lead [5/9 skills]
- Project Manager [9/9 skills]
- Program Manager [9/9 skills + sucessful completion of at least two projects]
The above are just examples, and should be tweaked as required.
In my opinion, such a skill based promotion system is superior to a performance based promotion system.
This post is a part of the selected archive.