D H said:
Do this on a firm fixed price contract and you have just put your company $100,000 into the red, and you have probably put yourself out of a job to boot.
In most situations I've been in, you are far enough away from the actual contract that the contract doesn't form a hard constraint. If you are in IT, you are typically considered a cost center whose budget comes out of overhead and is not tied to a specific contract.
Also, you are only screwed if the person providing the money is in a position to pull the plug on the project. In a lot of situations, they aren't, in which case they have to eat the cost overrun. The person making the initial estimate might be in a great deal of trouble, but it turns out that they left the firm five years ago.
One other thing that's tricky is that large companies are often able and willing to go into the red for a specific project if it meets some sort of long term strategic goal. Something else that causes big problems is when the person negotiating the contract has no contact with the people that are going to be executing the contract. So you have someone in sales and marketing say that it can be done in three years and $200,000 when anyone with technical sense knows that's bloody impossible. If you aren't careful and the company is badly run, then the salesman that got the contract will get promoted and a large bonus for getting the contract, whereas you are going to be fired for being a naysayer.
When you say you can do a job for $200,000 you had better mean that you really can do the job for $200,000 or less. If you estimate that you can really do the job for $180,000 but with a real risk of costs going up to $200,000 you dang well better say $200,000 rather than $180,000.
That's if you are a small firm competing for contracts. In that situation, if you overstate your costs then you get underbid and get nothing. However, if you the head of a department competing for resources (computer time for example), then you aren't going to get underbid and the political dynamics are very different. Also, in any but the smallest companies, the people that give the numbers to the customer are sales people, and the amount of input the sales people get from technology varies. In less well run companies, the sales people will try actively not to talk to the technology people, because if they get real numbers, then they can't offer low-ball estimates to customers and make their yearly sales quotas.
The situation you've described is what happens with you have a market of firms bidding on contracts with hard budget constraints. Many situations (and in fact most situations in large companies and academia) don't fit that model. In theory, a company that does things better might be able to come in and wipe the carpet with the existing companies. In reality, this tends not to happen, because if you are bidding on something, only three companies can do it, and it turns out that your company gets work because they are marginally less incompetent.
That of course leaves a lot of margin for someone else who can do a better job of estimating or is willing to forgo profit when things don't work out right. Plucking precise estimates out of the clear blue sky is a very good, and very hard to come by, skill.
One problem that you will run into is that sometimes you get in trouble if you *do* estimate cost and time accurately. This happens a lot less or not at all in well run companies, but we live in an imperfect world, and some companies look a lot like a Dilbert cartoon. There are situations in which there are extremely strong *disincentives* for giving accurate estimates.
Creating a corporate culture in which people in a situation were people feel comfortable giving their honest opinions of how much time it will take to do something is an even harder skill.
One final problem is that companies that work on firm fixed price contracts with no margins are not fun places for physics geeks to work in. Research is usually a cost center, so if the company is 100% focused on immediate profits, then they just aren't going to pay for people to do things that don't immediately pay off. The places that are more fun are those in which you have senior management willing to work on expensive research projects that may not pay off now or ever, but could change the world if they do.
Getting back to dealing with people that aren't as smart. One thing that I've learned is to have a lot of respect for great managers even if they can't do string theory. Dilbert is an good portrayal of what corporate life is like, and if you have someone that can take that mess and actually produce a shipping product (even with a massive cost overrun and two years late) then that it something pretty amazing.