"In a recent study published by the Academy of Management Journal, Prof. Peter Bamberger of Tel Aviv University's Recanati School of Business and Dr. Elena Belogolovsky of Cornell University's School of Industrial and Labor Relations have published a study that explains why pay secrecy is likely to hurt an individual's work performance and prompt top talent to seek new employment. They conclude that pay secrecy weakens the perception by employees that a performance improvement will be accompanied by a pay increase. It also finds that high-performing workers are more sensitive than others when they perceive no link between performance and pay; suggesting that pay secrecy could limit a company's ability to retain top talent."
So who, if anybody, benefits from pay secrecy?
I think there are benefits to keeping pay secret as well as benefits to being open about it.
The company where I work is certainly hush hush about it. That leads to some folks being outstanding and underpayed, others are payed hand over fist and should have been shown the door years ago. If the data was made open, I think that there would be a lot of resentment to some folks while others would suddenly start hitting the job websites looking to get their worth.
When it comes down to it, I think there isn't a "this is the right way" of the two, but rather it depends on the company itself. I think if I was to run a company, I would be hiring the best there is and paying them accordingly, setting very high salaries for the role - but making sure that I get folks who will then be worth the money i pay them. With that, I would have open books. If everyone is performing well, there won't be any issues with people being payed differently. If I was employed to manage a company with a lot of stale staff, some performing well, others badly, there would be no way I would show salaries - it will only cause discontent amoung my good workers while basically telling my bad ones that they can keep doing what they are doing without any repercussions.