1. Put together a ~medium detailed listing of what work needs to be done, broken down into sub-tasks.
2. Include estimates for how long each sub-task will take.
3. Roll that up into a gantt chart with dependencies reflected.
4. Identify opportunities for parallelization so you can answer the question of "will adding more folks make things go faster?"
5. Identify and be prepared to speak to which portions of the schedule represent padding, and explain why it was padded in that way. Share your thinking in the trade-off you made and be open to adjusting -- and de-risking the schedule in other ways.
6. Realize this is a bit of a negotiation, not necessarily you vs. them but more you and them vs. what you can deliver. In a negotiation it's important to not appear intractable. Have things you can give away.
7. At the end of the day the engineers are writing the software. If you're not actively dragging your feet, what you say does go, so it's a question of where you're spending your time, and on what. With that in mind, your boss has a job to do too, so help give them the tools they need to do so.
8. Don't burn bridges, y'all have to work together.