A thread has sprung up on the scrumdevelopment list about seniority and scrum, and how some people don't like scrum because if it's all about the team then how do individuals get recognized and get treated as more senior than others.

Well firstly, there's a misunderstanding that needs to be overcome here.  The agile manifesto states that one of the principles is "Individuals and interactions over processes and tools." Individuals!  If you're a member of a scrum team you won't suddenly be seen the same as everyone else yet at the same time having a job title like "super senior developer uber architect" doesn't mean the team will respect you either.  As in all team situations individuals need to prove themselves to their team mates through valuable contributions.  Respect and leadership will come naturally as a result.

This is all well and good, but how do you then tie this to remuneration, salaries, bonuses, etc.  How do you ensure that a team gets rewarded but that individuals who contribute more to the team get rewarded further?

In Rugby Union (the sport when the scrum name came from) they have the concept of a man-of-the-match.  After each match a team will succeed or fail, but regardless of the result an individual is voted for as the player who contributed most to the performance of their team.  At the end of the season those votes are tallied and a "best and fairest" award is given to the person who contributed most to the overall performance of the team.  For software development why not apply the exact same principle to work out who has contributed the most?

The process is straightforward:

  1. At the start of the sprint retrospective (you are doing one, aren't you?) get the team to vote using a 3-2-1 system for the 3 people who contributed most to the performance of the team.  Obviously alter this slightly if you have a smaller team.  This also has the handy side-effect of getting the team thinking about what happened over the duration of the sprint, which is useful for the retrospective itself.
  2. Don't work out the results straight away.  Conduct the sprint retrospective as per usual.
  3. After the retrospective is done, work out the results and tell the team who the MVP or person-of-the-sprint is.  If you can, give that person a prize or some other form of recognition on the spot in front of their peers.
  4. At the end of a release cycle, or some other time period of your choosing (maybe based on pay review cycles) tally up the votes over the sprints in that period and you'll have a clear understanding of who the main contributors are.  Being peer voted there's no "teachers pet" syndrome to worry about either.

Once you know who the best people on the team are you can provide rewards, recognition, bonuses and/or pay increases accordingly.

Be aware that individuals who do not rate highly in the voting may feel excluded which is why it's important to reward the team as a whole as well.  In general try and ensure that team rewards are better than individual rewards otherwise you'll end up with a fractured team.