PerformanceAlthough you have to be careful to measure the performance of ayour engineers holistically, the performance of your software engineerengineers can most definitely be measuredpartly estimated by some simple, objective metrics. The work has inputs and outputs and everything a programmer does leaves a nice trail that you can evaluate as closely as you care to allocate time for that
As a very rudimentary approximaterudimentary approximate suggestion for how to do it:
NumberBug Score. Raw number of work items completed (bugs, user stories, features). you could come up with some sort of scoring metric, where bugs are worth 1, user stories=2, and features=5 (since features take longer than typical bugs). Tally the score and compare with others.
- This attempts to estimate productivity (in the same way GDP does). Not completely reliable, but if the number is 0, something could be wrong there, and that says something needs to change.
- You could also do something like multiply the score of User Stories by 2 (since User Stories are typically larger than Bugs)
NumberGroup Discussion Participation Score. Start with raw count of Slack/internal board discussion posts. Participation is a good thing. Over-participation isn't. You could have just the number there, then do a bit of a spelunk into the post contentThis attempts to see if it's mostly work related, or simply water cooler banterestimate participation/presence.
- Not perfect, as it can't check DMs
- While participation is a good thing, over-participation isn't. Have an estimate of what a reasonable number of posts to make in the 3 months/6 months (evaluation period).
- Barometer: Calculate
ActualPostCount
/AveragePostCount
. Want score to be close to1.0
for most people to help normalize.
- Barometer: Calculate
- Post Quality: Be sure to do a bit of a spelunk into the post content to see if it's mostly work related, or simply water cooler banter
Peer-evaluationsPeer-evaluation of technical expertise. Ask everyone to rank on a scale of 1 to 5 gold stars, Person'seach person's: a) friendliness when interacting with others. are they open, responsive, conversational about issues etc b) helpfulness during code reviews c) general programming skill
- General programming skill (do they think this person is a good programmer or a bad programmer).
- Demonstration of internal knowledge during code reviews (does this person display a high amount of technical knowledge of your company's products)
Sum that all up and get a score.
To be able toYou should decide whom to generally promote based on these evaluations. You should not be promoted, without necessarily sharing alltoo clear about translating the informationmetrics to bonuses, I think it is very importantbecause that you compare scores between peers. That allows you to have a relative sensewill encourage gaming of whom is your top performer.
Let's not fool each other here. We don't live in a communist society where everyone gets the same wage. The reality is the capitalist workforce is competitive, andwhatever system you don't need to lull everyone into a false sense of comfort by refusing to compare performance between peerscome up with.