My theory is that there are two kinds of software developers (broadly categorized); There are those that love the science, the art of programming and view each challenge as something to be designed and developed as a precious diamond. And the other kind who get things to work, get features completed and manage to write code that mostly works. I tend to believe that I belong to the latter category. Actually there is a third kind, but they should be fired anyways, so not relevant. But I digress.....
I recently read an interesting article by Joel Spolsky in Inc magazine about five reasons/ways a software project fails. Now, I might not be the best judge of what seem to be very obvious bad software development management practices, but I have observed these in my not very long development career, so they make sense to me.
It is really weird that managers, who have spent years in the field, and even those in successful companies and with successful products, are not immune to these bad practices. All of them should pick up a magazine or two, because asking them to read a book might be a bit too much.
Briefly, here are the reasons:
1. mediocre team of developers
Its the manager's responsibility to pick the right people.
2. set weekly milestones
Weekly? I have worked with someone who require a daily update!
3. negotiate the deadline
As in wishful thinking because the manager lacks the skills to do effective planning when starting off and as things progress.
4. divide tasks equitably
This gets even more interesting when the manager doesn't have a clue about the details of and tries to "balance" the project.
5. Work till midnight
If it takes X 1 hour to write a 5 line macro, can he write 10 macros in 10 hours?
I am sure I am not the only engineer who agrees with the list, specially due to having experienced this in their development-lifetime.