Why it's impossible to become a programming expert
techrepublic.com
techrepublic.com
a) be solved by someone else already and take half a day to integrate
b) be solved in another language / framework whatever and needs to be ported.
I find that in project mode, it's just easier to bargain and try to drop any feature which falls into the b category, at least for version 1.
This way, the customer will have a working product minus a few features in a reasonable timeframe (2 weeks to a month).