Only Cheaters Prosper
This post has been eight years in the making. I’ve seen the following story repeat itself throughout my IT career. It is at least part of the reason I don’t do IT any more. Here is the concrete example that spurred me write this tale at long last.
A business hires a software consulting firm to write them a system. The scale or type of system doesn’t matter at all. Right up front, the consultant needs to give the client an estimate of how long the project will take and how much it will cost. The consultant will, without fail, massively underestimate the cost and duration of the project. Why? Several reasons. First, because software estimation is the blackest of black arts and nobody really knows how long a project is going to take. Second, because the consultant needs the business, he wants to avoid saying anything that could prevent the client from signing the contract. Clients like low estimates. Third, because the consultant may be in competition with other bidders. In such a case, the contract goes to the biggest liar who doesn’t get caught. We’d like to believe that cheaters never prosper, but in this case, honesty is a sure road to no contracts.
In software, only cheaters prosper.
So now a project is underway that is guaranteed to be late. But nobody has bothered to tell the developers this and it’s rarely the case that anyone has bothered to ask them how long they thought it would take. If they were asked, their estimates were shaved down for political expedience and to get that contract signed! Once the project is started, managers are good at making this problem the developer’s fault for not completing on time. And in order to complete closer to deadline, developers are pressured to cut corners. As deadline approaches, steaming piles of dung get pushed out the door and called “software.” This is a disaster for the consultants, you might think. But oh, no, this is a goldmine! Watch what happens next.
The budget and the deadline run out. Alas, the software is entirely unfinished or so broken it needs another phase to meet even a fraction of the requirements. Who could have known? But now the consultant gives the client a choice: either stop the project and get nothing for the money they’ve already paid, or extend the contract with more time and money, further enriching the consultants. And the beauty of this game is it can be played over, and over, and over again with the same project and the same clients. I’ve seen it go on for years. The bigger the sunk cost, the longer the charade can continue.
So if you ever wondered why software is almost always late, why most software is crap, and why software developers work 60+ hour weeks and are perpetually grumpy, the answers to all these mysteries are found above. It is the story of almost every software project I have worked on and I expect it will be the fate of most commercial systems to come for the foreseeable future.
And that’s one more reason why it’s great to be a therapist.
Posted: June 18th, 2009 under Uncategorized.
Write a comment
You need to login to post comments!