Managers want progress reports and statistical measures to reduce the risk that that they might get fired when the project they're managing fails
That's why you don't use lines of code or some other idiotic metric to measure progress. The developer should produce a list of fairly fine grained achievements (broken down by week) that will lead to the finished product. This way the programmer determines the approach they're going to take and also the means by which progress will be measured.
Also, inevitably with larger projects there are dependencies which have to be tracked throughout the execution. Ingrid needs the foobar API, but it's not scheduled to be complete until it's too late for her, etc...