I once worked in a company with a stack ranking system. I was a manager, and hated the idea of ranking the people reporting to me in this system. I had a good staff, managing all three major RDBMS platforms (Oracle, DB2, SQL Server), and they performed their jobs well. At review time, when I was told I had to have some 2s (on a scale of 1-5) in addition to 3s and 4s, I was distressed. Having worked with and managed hundreds of people in my career, none of my staff was below expectations (a "2"). However I had to rank at least one person at that level.
Microsoft has had this "stack ranking system" for years, and there has been plenty of speculation that it hasn't encouraged the really talented people to work together, but instead it pushed employees apart. Apparently they've decided to move away from this system according to numerous reports. I have heard that the most talented people tried to ensure they weren't working on the same team with other talented people, just to ensure they would continue to be highly ranked.
I believe in teams. I believe in getting people to work together, and help each other. I know that successful software projects, those that require more than one developer, are never successes or failures because of one person. I know people contribute more or less than others, but the strength and value of those contributions are not strictly individual talent or effort. We need talented coders to solve tough problems, and we need average programmers to tackle mundane tasks. Both are necessary (along with many other roles) to ensure success of a project.
Cooperation, assistance, teaching, learning, working together as a team, with each person helping the others to succeed is how I like to work. We don't need winners and losers; we need success from everyone.