I'm planning to have my students do a group project this semester. What are the pros and cons of having them rate how well their groupmates contributed to the project?
This can go well if you do it right. Undergraduates don't like to "tell on" their friends, so it needs to be a bit subtle. If you just ask for grades or points, they will uniformly give high points. Alternatively, if they think someone was slacking they will be pretty savage. But there is a way.
In a group of about five, ask each student (a) who were the most important 3 contributors to your project - including yourself, and (b) what was the nature of their contribution that makes you say that. You also need to ask each student to detail their own most important contribution.
You will learn a lot from this. If someone is never mentioned, you know they didn't contribute much but no one has to actually say that.
I've had situations in which a student that I thought was a bit of a slacker was praised by several of his teammates for keeping the group working on the problem.
Note that this method also permits students to contribute in different ways, not just technical contributions.
Giving a self-assessment is also important here as you get a sense whether they have a realistic view.
If the groups are only pairs, then just ask each member what was the most important contribution of the partner and what was your own most important contribution. Let them write a few sentences of explanation.
Of course, you will need to translate the comments to marks as you aren't asking the students to do that. They are likely to do it poorly in any case. In all but extreme cases you can just give everyone the same grade for the project as the contributions might be different, but each might be valued in its own way.