http://blog.testdouble.com/posts/2014-03-01-estimate-this.html is a great writeup how software projects should be done: in iterations, with lots of feedback, be weary of details.