The first step after gathering all your requirements for a software project is to estimate the effort required to develop them. The estimates, which determine the size of the project, are your decision factor. Many projects are shelved before they even start, right after the estimation process. This sometimes occurs when the executive sponsor realizes how big the project is relative to what the original guess was. I had this experience once when a client’s reaction after estimation was, "What, $3 Million and 30 months? We thought it would take $1M and 12 months. We will have to think about this one." Well, time kills deals, our sales manager once told me, and that was the death of that project.
However, for any project, better an early death than a prolonged painful life. You need to know what your project will cost. The common misconception in the software world is that the hourly rates of the consulting firm that develops the application in question, or the size of the team required in-house - determines the cost. Sure enough they matter, but most importantly it is the effort estimates that indicate the size of the project, that tells you the cost.
Estimates are just that, estimates. How do you know that the estimates are accurate? Well, they never are. However, they can be as close to the actual effort as possible, if the estimation process is scientific. Yes, it is a science. Only very good estimates will give you the confidence to go ahead on a project.