Sometimes, that works quite well. You have deliverables, and everyone understands the order in which you need to deliver them. You use agile because you can receive feedback about the work as you proceed.
You might make small adjustments, and you manage to stay on track with the work. In fact, you often complete what you thought you could complete in a quarter. (Congratulations to you!)
I rarely meet teams like that.
Instead, I meet and work with teams who discover something in the first or second iteration that means the entire rest of the quarter is suspect. As they proceed through those first few features/deliverables, they, including the PO, realize they don't know what they thought they knew. They discovered something important.
Sometimes, the managers in the organization realize they want this team to work on a different project sometime in the quarter. Or, they want the team to alternate features (in flow) or projects (in iterations) so the managers can re-assess the project portfolio. Or, something occurs outside the organization and the managers need different deliverables.
If you're like me, you then view all the planning you did for the rest of the quarter as waste. I don't want to spend time planning for work I'm not going to do. I might need to know something about where the product is headed, but I don't want to write stories or refine backlogs or even estimate work I'm not going to do.
If you are like me, we have alternatives if we use rolling wave, deliverable-based planning with decreased specific plans.
In this one-quarter roadmap example, you can see how the teams completed the first iteration. That completion changes the color from pink to white. Notice how the last month of the quarter is grayed out. That's what we think will happen, and we're not sure.
We only have specific plans for two iterations. As the team completes this iteration, the PO and the team will refine/plan for what goes into the 3 iteration from here (the end of the second month). As the team completes work, the PO (and the PO Value team) can reassess what should go into the last part of this quarter and the final month.
If you work in flow, it's the same idea if you keep your demos on a cadence.
This is exactly what happened with a team I'm working with. They tried to plan for a quarter at a time. And, often, it was the PO who needed to change things partway through the quarter. Or, the PO Value team realized they did not have a perfect crystal ball and needed to change the order of the features partway through the quarter.
They tried to move to two-month horizons, and that didn't help. They moved to one-month horizons, and almost always change the contents for the last half of the second month. In the example above, notice how the Text Transfer work moved to farther out, and the secure login work moved closer in.
You might have the same kind of problem. If so, don't plan details for the quarter. Plan details as far out as you can see, and that might be only one or two iterations in duration. Then, take the principles of what you want (next part of the engine, or next part of search, or whatever it is that you need) and plan the details just in time.
Rolling wave deliverable-based planning works for agile. In fact, you might think it's the way agile should work.
If you lie this approach to roadmapping, please join my Practical Product Owner workshop. All the details are on that page.