When things go wrong within a project, I often find people start pointing finger to other people. I guess it's human nature to always find scapegoat rather than owning up.
From developers point of view, management is the usual target to blame. We tend to think management is not competent, not able to stand up to the clients, not able to cut the loses short (borrowing share market term here), not able to mediate developers and clients, always put up with clients because of the “potentials” (some call it second stage of the project, some aptly called it a mythical creature :)). Management (and developers) will then point the finger to the client, as the client is usually fickle, changes their mind every single minute, is slow in signing off but wanting quick results.
Oh and I haven't even brought the designers into the equation!
I personally think that we can do better by actually looking at ourselves, introspecting, thinking ways to improve ourselves before blaming the others. It might be true that they are to blame, but I would like to think if a project goes wrong, everyone is at fault. We as developers should improve, we probably can code a bit faster, improve code quality, produce less bugs, not coding too rigidly to the spec (which will cause a nightmare when client changes his mind).
I admit that clients do make me frustated a lot of times, but I now realize this fact: Clients WILL CHANGE their mind and their decisions. They are human, human change. Also it's worth to note, if you are dealing with bigger clients, the people who are involved in the project might change over the time. It's the easiest to blame the client, but that doesn't get us anywhere, we can't possibly demand clients to not have a change of mind AT ALL (it would be ideal from development point of view, but might not good from marketing point of view). I have some thoughts on how as developers we can do better with requirements change, but that's going to be another post.
And frankly, I am also quite tired, hearing developers blaming the management. Project managing is hard work, project manager has to satisfy both clients and developers (and bosses), so cut him some slack. Sometimes developers think they can do better job as project managers, can they really?
I just got tired of this blaming game I guess. My principal is don't blame anyone for your project failure, look at yourselves, is there anything that you can improve/learn from this failed project? Before starting to blame someone look at yourselves, could it be that it's you who sabotage the project?
WHo dunnit? WHo killed the project? You know what, it might be you.