Our project manager usually consult developers how many hours they need to implement some functionality asked by client. Is this consistent with the principles of management? Do you or your project managers do the same?
There's no other way to know how long something will take. You should be thankful, really, that your PM is even consulting you -- too many managers get together with the customer and promise impossible timelines, then expect the devs to live up to their outrageous promises.