Managers are responsible for competence development in an organization. But, for some reason, this doesn't always happen.
Steve McConnell has described the Cone of Uncertainty in his books. This graph tells us that project estimates are wildly inaccurate at the start, and only become better over time, when more is known about the nature of the project.
I now think that there is also a Cone of Incompetence.
At the far left of the Cone of Incompetence is the customer. The customer has thought long and hard about a new project (usually more than a year) and now that he finally decided that he wants it, the customer wants it delivered in just two months. There is usually some arbitrary deadline that happens to be outside the customer's scope of control, therefore negotiation about the deadline is impossible, because the customer "cannot" change it.
The Account Manager
A bit to the right is the account manager, who is a little more competent than the customer. Unlike the customer the account manager knows what a timebox is, and he knows some benefits of iterations and frequent delivery, with weekly customer feedback. He just doesn't know how to sell it, because the customer doesn't want all that. So the account manager ends up selling a big requirements study, because the customer feels safe owning a big document with a detailed specification of a product. The customer won't read it, but the customer will be happy. And that's important.
The Project Manager
In the middle of the Cone of Incompetence we find the project manager. She is more competent than the account manager because she knows exactly how risky the project is going to be, with an impossible deadline, no timeboxed regular releases, and little or no customer feedback during the project. Nevertheless, she is very eager in getting the project going, and the project manager assembles a team consisting of 45 first-time employees, interns, gnomes, trolls and pizza delivery boys. When added together this team should be able to burn exactly the number of days that was estimated in the requirements study. She might even have had time to write down a Risk List. But it is somewhere at the bottom of the pile that now contains the new high priority features that the customer has sent her.
The Software Developers
Further to the right we find the software developers. They are more competent than the project manager because they understand all the risks and know that the project is never going to make the deadline with any manageable product of sufficient quality. However, they still enjoy working on the small parts that they have been assigned to. Code is code, after all. But in the hurry to finish their assigned tasks, the software developers forget to test half of the stuff they wrote. However, as for the quality of the project, they couldn't care less, because they were not involved in all the wrong decisions that have already been made in the first place.
The Software Testers
On the far right side of the Cone of Incompetence we find the software testers, who are the most competent people in the organization, and who will make sure that lousy products do not get shoved out of the door to customers. Unfortunately, the software testers don't exist. Because software testing means overhead. And overhead costs must be cut because of the losses already made in previous projects. This, of course, was a decision made by…
Meanwhile, the managers are doing their best to promote competence development in the company. But, somehow, it just doesn't happen.