I often run into developers who think "there is no way to estimate when we will be done". What I think they usually mean is that they cannot estimate a single time in which it will be done, which is completely fair. However, if they are being honest with themselves, I think they can often estimate a range of possible outcomes. Adding a new "Contact Us" form may take a few hours or a few days, but it isn't going to take 1 year.
One of my bigger successes with this kind of model was sizing the resource requirements for a brand new high-performance system that was in it's early stages of development. I created a model that started with what we knew so far from out performance testing, with uncertainty for everything, and projected forward to different confidence levels of sizing. We ended up being pretty having just a little extra, which was perfect considering the multi-month procurement process.