I always like Avery's "Software Engineer Simulator":<p><a href="https://apenwarr.ca/log/20171213" rel="nofollow">https://apenwarr.ca/log/20171213</a> (on HN: <a href="https://news.ycombinator.com/item?id=15912929" rel="nofollow">https://news.ycombinator.com/item?id=15912929</a>)
In my experience, the hardest part of estimating how long a project will take is estimating how much time things OUTSIDE of the project itself will take. How much time will be spent maintaining other projects? How much time will be spent helping other teams on things they need? How much time will be spent on random other things?
In 50 years of programming I've never, ever seen a project that met estimates.<p>I did see a 5 month, 5 person, fixed cost contract take 18 months, 10 persons, and sank the company.<p>Never, ever, try to estimate software projects.
We did a process like this at a job once; it came back with an "estimate" of 240 developer-weeks, so the next question from management was "so we can have the feature in six months if we put ten people on it?"