Recently, I was developing a CMS. Normally, I wouldn't write my own, but in this case I had to: the requirements of the client prohibited me from using one of the excellent ones available.
I should further explain that my client was not the end client; we had been sub-contracted to create part of the web application for their client. The end client -- let's call them ABC Co. -- didn't understand software development and, in what I can only suppose was an attempt to keep the project on course, began issuing a series of impossible deadlines.
They were not impossible for us, per se, but rather for our client, who worked heroically to finish the project. The problem was that the client laid down the timelines before they determined exactly what they wanted!
Perhaps you've been in that unhappy situation. The result to our client was endless frustration. The result to ABC Co was greatly increased cost and, ironically, a guaranteed late delivery. Decisions were made and work was done prematurely, all of which had to be redone and then redone again when ABC Co finally arrived at what they wanted.
I observe in my own life that my own foolish choices are responsible for much of my misery and it appears that others share this same failing. Rushing a project increases rather than decreases the risk of failure. Frederick Brooks of IBM observed this almost thirty years ago in his famous "No Silver Bullet" paper. Some things like great wine, great cigars, and great software only suffer when the natural creation process is over-hurried.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment