- The Big Cheeses sell their souls to Satan to sell some new fancy system to a big-wig client.
- The Little Cheeses suck up to the Big Cheese assuring them that the promises that the Big Cheeses made to the client around the client's extremely unrealistic deadlines will be met at all costs.
- The Project Managers work some numerical magic on MS Project to create a project schedule to suit the needs of the Little Cheeses. This type of magic typically involves scheduling overtime, cloning employees, and sprinkling pixie dust in the dev room for good luck. The Project Managers also crack their whips to ensure that the developers under them complete the work no matter what it takes.
- The Developers work like slaves to get said system up and running. Since the project timeline is compressed, corners are cut. Functional designs are done in a hurry and without proper client sign-off. Technical designs (what are those?) aren't done.
And the result? Well, oddly enough, many systems do end up making it to production and satisfying client specifications. Of course, little do the clients know that some of these systems are ticking timebombs of kludge upon kludge mixed in with mediocre (at best!) code. To make matters worse, because the team delivered the code in record time, the client can now be expected to milk the IT company for more mediocre projects done on super-compressed time schedules.
So whose fault is it? I think the real fault lies with two groups of people: the Project Managers and the Developers.
I have always been a firm believer that a manager has no right managing a technical team if he or she doesn't understand the underlying technologies. Unfortunately, we end up with these hot-shot capitalist assholes for project managers who think too much about the bottom line and how it affects their next performance review, rather than actually try to manage an IT team. And why should they? They don't know jack about what it is they're trying to build from a technical standpoint, and they don't care to push back to the higher-ups, telling them that the client's demands are unreasonable.
Ah, but the blame doesn't end there. The developers are to blame too. In my opinion, most developers today are too scared to push back to their project managers. When told to jump, they ask "how high"? The end result is that we end up with a bunch of developers who are burnt out and whose social lives are in ruins because they've spent way too many long hours at the office trying to push out that next code release. And for what? Face it: a number of IT projects are not the be-all-end-all of the world. What's a silly little app in the greater scheme of things? We're facing real threats like Global Warming and the insanity of George W. Bush, and upper-management is fretting about whether or not they should allow me to go home at a reasonable hour to get some stupid bug fixed in time for tonight's promotion??? Remember: it's not the end of the world. It's only the end of the world once I see the big 'ole mushroom cloud rising above the horizon. But I guess then we'll have bigger things to worry about, don't we?