Even the more detailed and well-thought plan to finish your project can go awry at the very first turn. At that point is when all of us realize how bad we are at predicting the future, send a rant to our boss by email, and demand clients to stop asking questions we can't answer.
Yeah, I've been there myself. And unfortunately clients don't care, and they keep asking things that I don't know today. Why in the world would they care about how long until we finish? Or how much are they going to have to pay us to get everything done?
Can they just trust me?
No they won't and they shouldn't have to.
Making a release plan is not about predicting the future, but about setting well-informed expectations with the client. We all understand that things may go wrong and render our plan invalid, so a good process will have to cover for this appropriately.
Here are a few things you want to keep in mind:
Do not think of a release plan as something you set and forget. Bear in mind that every single decision you make has a direct implication on your release plan, so you need to be prepared to update it when necessary.
The key to controlling changes on your plan is constant communication with your client. Have them walk the walk with you so you can help each other make the right decisions for the project.
Finally, a good release plan calls obstacles before they happen, plans to mitigate them, and proposes solutions for when nothing else can be done. Assuming everything will always go as expected is irresponsible and unrealistic.
You still won't be able to see the future, but you'll be using your present and past to prepare better for it.