In the world of software, making any kind of estimate is risky business. There have been books written on why this is so, so I'll not trouble you with my own explanation. It must suffice to say that anyone who doesn't accept that this is true and inescapable is not living in the same world that I am. But that doesn't stop bosses and salesmen from selling unimplemented features and promising delivery dates, usually without asking the people who have to make it happen. In fact, this is the conventional management approach for getting engineering to produce.
The former CEO of the company I used to work for used this technique all the time to "take business off the table" as he put it. In other words, promise the customer a feature set or delivery date to get them to sign the contract. Often, he wouldn't even tell Engineering until a few weeks before the actual delivery. Then, we'd have to hack something together in crisis mode. To be fair, he would always take the heat from the customer when we didn't make the date, but it sure didn't do a lot for my blood pressure, or the quality of the work, or my estimation of him, or after a time, the company's reputation. I found this technique of promising and then "managing" failed expectations abominable.
In my experience, it is far better to be completely transparent and not yield to the great temptation to promise, or even suggest that something can "probably" be done.
What do you think?