I've been noticing a trend about programming news on social bookmarking sites like Digg and DZone lately. There are a lot of posts floating around indicating the so-called "warning signs" of imminent software project failure. There are even posts with titles like "How to guarantee your project will fail!" How exciting. Just makes you want to click the link and get increasingly depressed as you read the exact same reasons you're experiencing in your own projects.
While I do think these posts offer some advice on new programmers or those still in college, I think these posts are just over-kill. There are so many posts saying the same thing, it's extremely rare and surprising to see some new reason that has a valid point. Also, most of the points in those posts are obvious to anyone who's been programming even for a short while. Some of those points that have been repeated ad-nauseum and obvious deal-breakers:
- Setting unrealistic goals (Really? If I set an impossible goal, does that mean I'll most likely fail?)
- Adding more people to a delayed project (A manager who thinks that new employees will automatically hit the ground running is one who should be shot - or at least not in a managerial position.)
- No source code system (Any IT department without any type of backup is just asking for trouble. Hell, any individual programmer working solo on a project should be smart enough to use source control and other ways of backing up your code.)
- Unmanaged schedule or, worse yet, no schedule at all (Again, really? But winging it is so much fun!)
All of these posts basically state the same reasons over and over again. I'd be glad to send these posts over to someone who's learning programming now, or a manager (like mine, unfortunately) who doesn't have the slightest clue on how to manage even the simplest of software projects. But the point is that these articles are written and posted in places where the audience consist largely of professional programmers with many years of experience under their belt. So what's the point? I'm sure they know more than this, and have experienced at least two or three axed projects because of these same things.
If you really want to help, just point your readers to go grab a copy of books like The Mythical Man-Month or Dreaming In Code. These stories of real software failure provide more than enough information on avoiding software disasters. They'll offer much more insight to problems in software development than any one post has. In short, those who forget history are condemned to repeat it.
So, seriously, please stop writing these posts. You'll be better off working on not making your project fail or something.