Making a schedule for the software project is a painful activity. It is amplified more if you do not know what you are doing. Software schedule can be at most an estimation in the early phase of the project. The real schedule details will be available only once the project is underway and things become more clear.
I believe that the developers are one who can contribute to a meaningful schedule, the managers the least. The manager do not have enough information to arrive at the schedule estimate, but most of the time, they tend to push the deadline on the developer. The developers who do not stand up this, tend to agree to the bad schedule and end up screwing their life and work.
There fore developers should vote against a idiotic schedule when they encounter one. They should give or help to make a meaningful schedule. The lead and developers should meet more often to see if they are on track. If not they should take corrective action to get the project schedule on track.
Developers should only consume what take what they can chew, if the deadline is fixed drop the features, if features are fixed then extend the deadline. It is impossible to have maximum features in a very limited time span.