Here is a template I use as a development manager. Please note that the categories are mandated by the company and are scored on a 1-5 scale (5 is highest) and then averaged for an overall score. The interpretations of the categories are my own as applied to a programming team.
Job Knowledge:
Is an expert in both the technology and problem domain relevant to his job. Stays on top of changes to technology and leverages them to improve the timeliness and quality of his work without needing a supervisor to push.
Accuracy:
Cases sent to testing by this programmer are almost never kicked back by the testing team for obvious problems. The code written by this programmer almost always has unit tests written that are sufficient in scope and code coverage. This person does not have to be reminded to go back and add unit tests and almost always writes test cases before writing new code.
Work Habits:
This person understands and manages priorities extremely well without a lot of follow up required by the person who assigned or supervises the task other than status updates which should be timely, concise and communicative. Willing to put whatever effort is necessary in to get the job done.
Problem Solving/Decision Making:
When obstacles present themselves, this person takes ownership and removes those obstacles to remain productive, but also knows when to involve their supervisor to get assistance in getting to the end of that task as expediently as possible. Further, they are an active force to removing obstacles for others. This person has a solid grasp of what issues can be deferred and which need to be cleared before progress can continue. This person is a frequently the catalyst that provides momentum to a project.
Interpersonal Skills:
When conflict arises, this is the person who is the calming influence and often steps up as a mediator when tempers flare. In stressful situations they calmly assess the problem, avoid personalizing issues and focus on a solution. Others enjoy working with this person and they actively engage in behaviors that improve team cohesiveness. People frequently request this person to work on their projects.
Communication:
Communicates in a manner that is timely, relevant and concise. This person goes out of their way to make sure that others are informed about things that are relevant to them and speaks up frequently as a proponent of more communication.
Leadership:
Promotes the corporate and departmental values even when the supervisor is not present. Is a source of peer pressure for doing things the right way instead of the easy way. Does not shirk confrontation when it needs to happen. Boldly steps out of comfort zone to stand up for integrity and quality.
Customer Service:
Is the person in every meeting that brings up the customer. When customers have complaints or are being difficult, they instinctively take the customer's point of view and start trying to understand and solve their problem instead of being dismissive, even when the customer is not around. Generally known as an advocate for the customer, especially difficult customers. The customer can mean both internal and external clients, but when these conflict this person always sides with external clients.
Training:
Completed training plan with vigor and enthusiasm and exceeded it where possible. Frequently suggests training opportunities for others. Volunteers and takes the initiative to set up training for others in the organization on topics that they are familiar with. When receiving training, this person eagerly tries to distribute their knowledge out to others.
When I score them, I reserve the highest score (5) for people that not only exemplify the particular trait, but are also are a catalyst for improving others in that category.
A word of warning: Every business book says this, but it bears repeating. Beware of metrics based performance evaluations. You will get EXACTLY what you measure and often in ways that are not what you'd expect. Programmers are especially good at finding ways to meet metric driven goals without furthering the underlying goal of the metric. For example, how many ways can you think to improve your LOC (lines of code) number per week if you knew it would affect your compensation that don't necessarily get the project out the door any more quickly?