At the beginning of any project, we don’t know exactly how long the project will take. The reasons for this is projects dont share the same characteristic, the same : requirements, people, business context, technolog or priorities & constraints. Each is unique, code is hand crafted and knowledge work involving smart creative people doesn’t lend itself to precision, I believe “they” say an software is an empirical process. Yet precision is what is asked. Sponsors want to know exactly when the project will land, how much it will cost and we always fall for this.