Performance Management for Software Engineers

Jinpeng Zhang
6 min readMay 7, 2024

--

I wrote this article to share my performance management experience based on the past 8 years of team management experience and lessons learned in PingCAP — the company behind TiDB. I managed different roles like software engineers, product managers, support engineers(no long-term management experience for support engineers), managers, etc. This article I focus on performance management for software engineers. Hope my experience may help these new engineering leaders or who want to become a new engineering leader.

Purpose of performance management

There are 3 main purposes of performance management for software engineers:

  • Deliver expected results. As the leader of a team, you should set expected goals for your team according to this year’s company goals, and then align with your team members. With performance management, you will review and check these goals timely to make sure your team can deliver expected results.
  • Improve performance for your team. With performance management, you can recognize improvement rooms for each individual, and help them improve the result.
  • Help team members grow. With performance management, you can review each team member’s work and give immediate feedback (recognition and improvement they can do) for them. This is a good way to help team members grow.

What is the difference between annual performance review and performance management?

Annual performance is a one-time activity each year. It is a one-year summary for each team member. Employees’ annual bonus is highly dependent on the annual performance review result. Most engineers are familiar with annual performance reviews, since every engineer probably already experienced it several times.

Performance management is process management, and annual performance review is one significant step in the whole life cycle of performance management. Besides annual performance review, there are other steps like set and align expectations, timely communication and feedback, etc.

3 main steps to performance management

There are 3 main steps to do performance management for software engineers, planning, tracing and rating. Let’s reveal them one by one.

Planning: set goals and align expectations

At the beginning of each year and each quarter, set the goals for your team, and align them with your team members. Have a 1 on 1 meeting with each member, and align expectations with them.

Your team may have junior engineers and senior engineers. For these junior engineers, quarterly expectations alignment is very important since a majority of their works focus on delivering results for these determined and short-term tasks (or sub-tasks of a long term project). And the key expectation for them is that they can deliver results. For these senior engineers, you probably delegate complex, long term or end to end projects to them, the expectations for them is that these projects can success and continuously contribute to the company’s success.

Tracing: regular review and give immediate feedback

After setting and aligning expectations with your team members, you should timely review the progress of these alignments. Does everything go well? How about the leading indicators for these projects? Are these projects’ quarterly milestones achieved? Why didn’t? You probably find out that the team member didn’t set milestones for the project he/she owned, the team member didn’t align the project goal with other members, the team member didn’t have regular tracking for this key project, the design was not reviewed before development, etc. Then you can provide your recognitions and feedback in time according to these facts.

Immediate feedback is very important: 1) human beings have good memories of recent things, and when you give immediate feedback depending on recent facts, it is easier to be accepted; 2) give immediate feedbacks can eliminate project potential risks in time.

I prefer providing recognitions publicly, like team weekly meetings, department monthly meetings, etc. In this way, to appreciate the great achievement your team members have made and improve their awareness in your company. Giving honest feedback to your team members in your 1 on 1 meetings, in this way to help them recognize what they should have done better.

Recognitions or honest feedback must be based on facts, not your personal preferences or feelings. More concrete, more better.

Rating: annual performance review

Annual performance review is the 3rd main step of the whole performance management lifecycle. You need to review your team members outcome, rate them according to their levels, sometimes also need to calibrate with leaders/managers of sibling teams/groups.

In PingCAP, S is super star rate, there are approximately 0% to 1% of engineers achieved this rate. These engineers who are S rate usually achieve significant results and have a great impact on our product and business goals, not only for the short term but also for the long term. A+ means outstanding performance, there are around 20% to 30% engineers can achieve this rate according to historical data; A is the middle performance which means satisfy expectations; B means under expectation, there were 5% to 10% engineers may distribute in this rate.

Rate engineers according to their level is the basic principle. The leader should have different expectations for different levels’ (junior engineers and senior engineers) engineers. If you rate an engineer with outstanding performance, you must list which part (must be based on concrete facts and measurable results) beyond your expectation according to his/her level. For these engineers with bad performance, you also need to list which part below your aligned expectation.

After company level or business group level perfomance calibration, as the leader you should synchronize the result with your team members and have a deep communication with each one of them. Collect team members’ feedback during the communication, especially these disagreements. The disagreements may be caused by some missing results this engineer has made, but you didn’t notice(this is rare, or you should ask yourself if you really know what your team members have done? Are you a qualified leader?). In this case, you should re-check the performance review you have made with your manager/leader.

Common Challenges of Performance Management

There are some common challenges I have seen some leaders have met before.

Giving honest feedback is not an easy job

Express recognition to team members is easy for most leaders, but give honest feedback to team members when they made some mistakes is hard for some leaders. Because these team members might be the leader’s colleagues or friends before and they did the same role.

Giving honest feedback to team members in time when they made some mistakes is very important. Not just point out what mistakes they have made, but also provide constructive suggestions about how they could do better. In this way, the team members can realize their mistakes in time and make improvements in time. Also, the team member can understand you are helping him/her, not hostile to him/her. Because all these feedbacks are based on concrete facts, not your feelings. And this honest feedback can build trust between you, which is important for future collaborations. Also, as a leader, you have the responsibility to help your team members grow, providing honest feedback in time is a good way to help them grow.

Synchronizing performance results with bad performance engineers

Some leaders may feel challenged when synchronizing performance results with bad performance engineers. Because they are afraid of potential conflicts. But if you rated team members’ performance based on outcome and facts, you aligned your expectations at the begining, you did regular review and feedback to your team members. And you should not feel challenged. Potential conflicts might come from disagreements cause by lacking of performance management.

If one engineer continuously got bad performance after your performance management and help, you should ask if this engineer is suitable for his/her current job? Should we transfer him/her to another job or run the PIP process?

Synchronizing performance results with outstanding performance engineers

Synchronizing performance results with outstanding performance engineers is harder than most people think. The challenges come from how the leader can continuously inspire their motivation, how the leader can continuously providing constructive suggestions to these outstanding performance engineers, how the leader can providing new challenges for these outstanding performance engineers.

--

--

Jinpeng Zhang
Jinpeng Zhang

Written by Jinpeng Zhang

Built distributed SQL database TiDB from scratch with other colleagues, focus on building large scale distributed system and high performance engineering team.

No responses yet