Company: IBM
Date: 2009-06-06
Overall rating: 2/5
Employment status: former

A company with so much potential, yet so little to show for it.
Pros: There are some good projects to work on at IBM, you just have to find them. Pay is not great for the vast majority, but if you have a smart manager, you can be very happy.  It is all about finding a good manager, but those guys are difficult to find, and therein lies the problem.

IBM has a number of very smart people, understandably so, since there are so many areas of software they have pioneered in the past.  It has a very rich legacy.
Cons: Good jobs or projects are getting rarer and rarer at IBM and towards the end of my time at the place, I couldn't find any.  If your immediate manager is good and your relationship with him/her is good, it can be a good place to work for. Otherwise, it is a constant nightmare. 

There is a rule, or so I have been led to believe, by a number of managers, that a first line manager should not be technical, that all technical work should be "measurable".  The problem with this is that a manager's review of an engineer's work can be wildly off base. It leads to situations where the engineer is forced to spend time on issues that really are trivial but look very attractive to management. It also forces the manager to rely on already debunked methods such as KLOC (1000s of lines of code written) or number of defects fixed to do performance evaluations. There is very little focus on quality and a lot of focus on release times.  Anything that can be expressed as a number gets measured, and if can be measured, it gets managed to death.

This has been my own experience. I'm sure IBM has employees who are very productive and happy, in a company of 350k+ employees, there are bound to be very diverse experiences, but in my six years with the company, I did not meet a single engineer  who was consistently happy with IBM.