Difficulties of personal evaluation for programmer

I have an interview session twice a year for my personal evaluation. I have to set goals at start of the year and have to evaluate it before the interview. I will just write difficulties that I feel.

First of all, I have to set goal that normally follow the goals of my team. However, I’m not in the same situation as other colleagues working in Japan.
I work for a Japanese company but I’ve worked in Germany for more than 3 years. Both of them are the same group but different company.
Normally, most colleagues have their boss but I don’t. I’m in a team in Germany but their assessment system is different, so they don’t have group goals. Other guys from my Japanese company work in different project Therefore, I don’t have my boss and no one can evaluate my work performance in the actual daily work.

For this reason, I can’t set goals that follow my team goals. It means I’m completely free to set goals. However, those goals need to be related to my job of course. I have my own goals for self-development but it is not important thing for the assessment.

Hmm… What goal can I set? Following is examples.

  1. Learn new things related to programming
    1. new language
    2. how to write clean code
    3. frameworks/tools that’s new to me like Docker
  2. Keep code maintainability
    1. Maintenance document like class diagram
    2. Improvement of code Review
    3. Code Complexity
    4. Amount of code
  3. Team building
    1. dev-session to share my knowledge
  4. Less bug (e.g. less than 5 bugs in 100 lines code)
    1. not generate new bug
    2. fix bug a lot

Each goal should have number to be evaluated but many of them above doesn’t have it or is hard to calculate.
For the 1st one, learning something new can’t actually be evaluated unless the technologies are used in the project. In addition to that, it is not important for the personal evaluation interview because it is self-development things. Even though it is one of important things for the performance review I need to spend a lot of my private time to write code to show something that I learn.

2nd one, keep code maintainability, seems to be good but it’s difficult to show the result. Diagrams and code are read by my team members but not other guy from other team. Those are not read by an assessment reviewer. They can’t evaluate those artifacts without knowledge of the specifications. If I asked my team members about the quality of the code/documents I could receive some good response but I think it is not good evidence because it is just personal impressions.
Code complexity and amount of code can be calculated but it’s hard to evaluate them with the values. If the code complexity is set to one of mandatory parameter to merge it can no longer be goal. Amount of code can’t be used because I write code every day and assessment review is for total performance of half the year. If I add twice as many features as other developers the amount of code is normally bigger than others. It is hard to get the amount of code that I write in the first place because my code is modified by other developers when adding new features and changing the behavior.

3rd one, team building, is one of good things but how can I prove that it improves other developers’ code quality for example?

4th one, less bug. It’s very hard to follow and record who creates bugs. Number of bug depends on how big the code is and how complex the specification is. The number of bugs can be reduced when spending more time but it makes development speed down. It’s not good to spend too much time to find a bug that might exist and might not exist.

Ooops! I don’t have enough evidence to show my performance with concrete number. I have only number of PRs that I opened and reviewed. I used it last time and it gave me a good assessment score because the number of PRs that I opened was about 60% in total and I reviewed 40% of the PRs without my PRs.

This personal evaluation things give me a headache every time. It can be improved if we can introduce an evaluation system that other members working in the same team evaluate other members. Developers know who is good at what and who writes better code than themselves. If I go back to the Japanese company I should create an evaluation list and introduce it.

What goals can I set for now…?

I want to know how other companies do performance review, personal evaluation.

Comments

Copied title and URL