I've seen a lot of stuff in the blogosphere lately (Mini has a good roll up) about Microsoft's horrific working conditions. Microsoft engineers are so taken advantage of the only recourse is to unionize. Bollocks. While everyone loves to "stick it to the man", all of this is nothing more than political rhetoric.
Unions
Microsoft's competition would love to see us unionize. Look at all the successful companies unions have contributed to over the years. The auto industry. The airline industry. Oh, wait: those industries are floundering. Unions create an "us vs them" mentality that forces tension between a company and its workforce. Unions sever the relationship between the quality of work performed and success of the company. Once unionized a workforce has no incentive to create revolutionary products. We can just sit back and relax, while the union negotiates salary increases regardless of how well the company is doing.
Unions are a great way to force a company to treat its employees fairly, but so is competition. I would think that all the press about folks leaving Microsoft to go to competitors like Google would clue you in a bit that competition is alive and well in the software industry. Good engineers are vital to a technology company's future, and it is silly to believe that Microsoft is purposely slighting engineers to improve its bottom line.
Reviews
I've also heard about how Microsoft's stack ranking-based review system is obsolete and is an unfair way to rate employees. I suspect that most of the people who complain fall on the low end of the review scale. Personally, I have never paid much attention to the review process, and I have never felt unfairly treated by it. I am also one of those people who delights in knowing that there is always someone smarter than me at Microsoft that I can learn from. Since I'm always learning from someone, I'm always improving, and always holding my own in the stack rankings. Microsoft does not and should not reward complacency. While I'm sure the review process can be improved, I've also witnessed that it has been slowly evolving for years so I'm content that people are working to improve the process.
Salaries
Oh my god, Microsoft hasn't raised salaries lately! Babies are starving in the street! Microsoft has one of the best salary and benefit packages in the industry (if you have any doubt, just have a baby and watch as your benefits absorb the entire cost).
A few years ago during the internet boom we all received fat raises so our salaries would keep pace with the booming silicon valley. Well, those days are over, and look how well most of those start-ups with their extravagant compensation packages did. You want a fatter paycheck? Create some revolutionary product that raises profits: your paycheck is tied to Microsoft's bottom line. A long time ago people came to Microsoft because they wanted to work for a company that was changing the world,not because Microsoft offered the fattest paycheck. Microsoft compensates well, but if what you're looking for is a new Porsche every year then look somewhere else. I want to work with people who are excited to work on great software, not those who are obsessed with counting pennies.
What matters is this: do you enjoy what you do, and are you compensated comfortably?
Conclusion
Is Microsoft a utopian work envionment that dishes out exorbitant salaries to anyone who walks in the door? Of course not. Can it improve in how it reviews and compensates employees? Of course. All of us who work there have an obligation to take responsibility and ensure that the company continuously improves in everything it does. It's not an "us vs them" world; we're all part of the same ecosystem.
To those employees who don't think they're getting a good deal at Microsoft: be part of the solution or leave. All of you fall into two camps. Either you are a valuable asset to Microsoft and they will listen to your issues, or you think you do better work than you actually do and Microsoft would be better off without you.