Home > Articles > Programming

  • Print
  • + Share This
This chapter is from the book

1.4 Magic Bullets

Managing, as well as estimating, is magic for most estimators and managers. Well-known science fiction author Arthur C. Clarke’s Third Law29 states:

  • Any sufficiently advanced technology is indistinguishable from magic.

This illustrates one of the primary problems with software management today. The “magic” creates an unreasonable trust in the development technology and environment and a lack of rational thought, logical or otherwise.

With magic we expect the impossible, and so it is with management and estimating as well. When something is magic, we don’t expect it to follow logic, and we don’t have to apply our common sense. When the estimate is not the cost and schedule we want, we can simply change the inputs to the cost/ schedule algorithm in the estimating tool and produce the estimate we desire. That is why so many projects overrun, and we consistently blame the failure on the projects, not the estimates. The same is true with development management. When the last development had a productivity of 100 SLOC/PM, and the proposed project has a predicted productivity of 150 SLOC/PM, we must ask ourselves what changes were made to the environment to achieve productivity improvement. The common answer I have heard during early project reviews is, “We are going to work smarter this time.” That response doesn’t change the people, the environment, or the management approach, and the proposed gain will not materialize. Doubling the engineers’ salaries won’t make the gain happen either.

Several cost and schedule estimation methods have been proposed over the past 25 years with mixed success due in part to limitations of the estimation models. A significant part of the estimate failures can be attributed to a lack of understanding of the software development environment and the impact of that environment on the development schedule and cost.30 The physical and management environment imposed by the project manager are major drivers in the software development.

  • + Share This
  • 🔖 Save To Your Account