Cynical observation: Whatever somebody else tells you they earn, it's often exaggerated, not stated with agreed-upon standards (e.g. I'll tell you what I make and include the value of my 401k match included) or just plain made up.
--
I worked for some years in a company that was on the whole a great experience, but had a few qualities that could have been described as cult-like. Among them, discussing your salary or the salary of others was an actionable offense up to and possibly including dismissal. It did happen once during my tenure, but that was an extraordinary incident where divulging salary info was just the tip of the iceberg in this guy's bad behavior.
Most employees were billable consultants or something along those lines. Part of the justification was that the client shouldn't know what they were paid, so they couldn't offer them a better deal under the table... but the other part was that people were often paid in a manner that didn't line up with what they were billed out for. To use a simple example with non-representative salaries:
Lisa was billed out to client X at $100/hour. She made $100k/year and billed ~2000 hours (full employment at the client site, client pays $200k/year.) She billed 2x her salary.
Bart was billed out to client X also, at $120/hour and likewise billed ~2000 hours, for which the client paid $240k/year. But Bart made $60k year and billed at 4x his salary. You can see why that might give Bart serious incentive to try to argue for a much higher salary if he knew that Lisa was paid both more overall and got a higher percentage of her hourly rate. By simple math (it's never that simple) anything less than a 100% raise would be "unfair" to Bart.
It came down to the fact though, that people will talk, people won't be satisfied and in fact-- for most classes of employee it's not legal to prohibit discussion of pay (IANAL, check with your own jurisdiction etc.) It's generally similar to a non-compete clause in that regard, even if you're contractually obligated to not discuss pay, it's not typically enforceable.
This company also paid a high percentage of their salary as bonus, so you couldn't ever be exactly sure what you were earning or when discussing salary whether it was base pay, last year's take home or some conjecture about future performance.
or an outright lie.
--
Working as a line employee for a large company with strict policies and a large labor force. I got close to the best review possible and was allotted the maximum percentage raise possible. Because people talk, I knew that the latest 'batch' of new hires (they all went through training and those who finished training came in every 6 weeks) had just come in at a higher base pay grade-- the market was tightening. Armed with that knowledge, I finished my review by requesting that my pay be brought up to par with -- not more than, just parity with-- a new hire. Long story short, I submitted my resignation 15 minutes later and took another job.
In this same job were people with 1-2 years more seniority than I had, apathetically working in the same old job they had a year or two prior. Conversely, they earned less than I did as their compounding raises never had them catch up with higher pay for new employees. Now some of them were "slackers" or misfits, but it's still not fair to pay them $2/hour less for the same work when they did have more experience and generally did the job fine despite their lack of ambition.
--
Geography is, frankly not a concept you can dance around. High CoL areas can be quite unfair. The disparity in pay between high, medium and low CoL areas is a huge barrier to mobility and there are no barriers in communication anymore. Physical watercoolers aren't required and you don't automatically do a better or more productive job by being located in DC, NYC, the Bay Area, etc.
--
Last point: I work in a position that relates to public employment, although I'm not a traditional "government employee" as such. Because of the nature of my job, my salary is public record *if you know where to look.* That's right, the only thing keeping all of you schmucks from knowing how much I earn is "Security through Obscurity." I can easily look up the salary for anybody in my organization. I know what my boss earns, what my boss earns in relation to other people at his level, etc. The visibility is up the chain and down the chain for both pay grade and actual pay.
Think about that-- you guys may be advocating maybe breaking a little bit of the silence around discussing salary. How would you feel if there were no point? If your salary information were laid bare against your will?
I don't have any problems with elected officials' salaries being public or other specific people in high places of public trust, but should an accountant, developer, project manager, etc. be subject to the same scrutiny? To them it may well just be a job, and the next job could well be at a publicly traded company or whatever the case may be.