Often referred to as the "black art" because of its complexity and uncertainty, software estimation is not as hard or mysterious as people think. However, the art of how to create effective cost and schedule estimates has not been very well publicized. While the average software organization can struggle with project costs that run double their original estimates, some of the more sophisticated organizations achieve results with estimation errors as low as 5-10%. These best-in-class organizations use scientific techniques that are not cost-effective, however, making them of limited use to most software development organizations. To address these issues, Software Estimation focuses on the art of software estimation and provides a proven set of procedures and heuristics that software developers, technical leads, and project managers can apply to their projects. Instead of arcane treatises and rigid modeling techniques, award-winning author Steve McConnell gives practical guidance to help organizations achieve basic estimation proficiency and lay the groundwork to continue improving project cost estimates. This book is organized from simple tips to more advanced ideas; it does not avoid the more hairy mathematical estimation approaches, but the non-mathematical reader will find plenty of useful guidelines without getting bogged down in complex formulas.