Software development efforts estimation is the process of predicting the most realistic use of effort required to develop or maintain the software project. The ability to accurately estimate the time and/or cost taken for a project to come in to its successful conclusion is a serious problem for software engineers. The use of a repeatable, clearly defined and well understood software development process has, in recent years, shown itself to be the most effective method of gaining useful historical data that can be used for statistical estimation. These estimates are ultimately influencing which features will be part of the project development. This book discusses the problems, issues and techniques of cost estimation and decision making.