Vantaggi
I've had the privilege to work with managers who could conduct business in a professional manner. However, there has been more than one occasion, where I've seen them (line management) throw their hands up in sheer desperation - a bad sign for any business, in my opinion. Average skills are enough to shine, which can lend itself to good opportunities for beginners (< 2 years of experience in the industry). However, this has to be coupled with the ability to understand the political waters (ouch). I would have said "DO NOT JOIN", but there are far worser places to work at, and the ability of line managers in certain selective sections, in maintaining composure deserves some praise. Overall, one can consider this place as a stepping stone in one's career. These positives (the only ones I can account for), however loses importance when one considers the downsides.
Svantaggi
Poor pay, poor management in general, poor use of technology. Lots of dead wood, taking up space. Expects lots of bureaucracy due to people (read senior management) attempting to justify their place on the "team". Developer workstations are sub-par compared to other companies, and so are the servers. 30MB mailboxes in 2008 shows you why. Fighting or changing "the system" is not for the faint-hearted. Attrition rates are above industry average - a team can churn every 2-3 years; seen this personally and this is one of the biggest reasons for low employee morale. Counteroffers are often absurd and out of line with market rates leaving one bewildered on whether management is delusional or not. It is impossible to refer anyone with good experience to work here, unless you want to destroy your relationship with them. The role of HR in this organization is unclear - either this department is incompetent or helpless or both. Lack of clearly defined roles is a problem that has always plagued most teams, with very few people able to establish themselves in a particular role, resulting in team churn. No visible career path. When everyone is an associate, a consultant or a senior, it becomes really difficult to specialize in a specific domain. Expect to see yourself tossed around, from one assignment to another, picking up skills that are totally unrelated to each other, or that are just not in demand. This often happens (ending in attrition), unless you are a specialist. There is no engineering culture. Data, facts and information are thrown to the wind, resulting in uninformed decisions being taken, all of which result in monetary loss, either to the company or to the clients. Needless to say, it is "dead wood" at work here. With the absence of an engineering culture, comes the absence of a good enough process for developing software - expect to see requirements arrive at your desk, during testing. You could even be expected to use tools/techniques that today's developer would simply laugh at.