I answer this both to the manager (present) and to the developer (past).
High level evaluations should come from the team / project leader, but with the help of the developers. They should also be presented in the form of a range - most likely, the worst case, indicating the level of reliability of each of them.
In no case can the team leader fully know everything about the project, so they will need some input from the developers, but the danger is that you get too late in the details. Equally, individual developers will not have a sufficiently wide knowledge of the project (if it is not very small) to be able to give estimates for everything.
, " " - , .
, , , , "" .