When you review the schedule, have stakeholders with you and look for those items which have less value in comparison to the other items.
There is a so called "iron triangle" in software development. It talks about money, scope and time. Let me take a quote from Jeff Atwood (co-creator of SO and SE):
These three factors are all related. If you pull on one "edge" of the triangle, the other sides have to give. If we cut the budget in half, we can't do as much, so scope has to give. That's why it's often called the iron triangle.
So, if you would like to move forward, you either reduce the scope or add more money to the project and add more developers. The last idea won't really work, because adding more resource will add more communication and coordination overhead, and the project will take even longer than before (Brooks' Law).
The only thing you can do is wisely check the current situation, check what has been done, what is under development and what is coming, and reduce the scope. You either throw away planned or ongoing features and focus on those which are critical to match your deadline or you move them to the next delivery.
The key here is to have the stakeholders/customers and let this scope reduction be a conversation and consensus.
The following suggestions will pop up and your job is to handle them properly (by saying no):
- More resources: I talked about it before.
- Additional working hours: This will kill the morale, people will get tired, and people will do mistakes, which will risk the delivery date for sure.
- Bonus as motivation: This shifts the focus from the delivery to a personal goal - unfortunately, this one is more powerful - and the features will be there for sure, but their quality will be very low.