After completing a roadmapping process, you might want to divide your roadmap into iterations, which can be called releases or milestones. Then you can see approximately which features are assigned to each milestone.
You work on the closest or "current" milestone. When you finish the current milestone you move any unfinished tasks into the next milestone.
Why move to iterations? Each iteration gives you the chance to test and deliver a stable release.
Try to release on time, not when features are done. Resist pressure to expand your release. Move unfinished work to the next iteration.
Agile projects are variable scope and fixed time. You deliver some new value with every release, even if you don't always know in advance exactly what you can deliver in the allotted time. There are many benefits to this approach. You eliminate the risk that you will never deliver anything. You show your work after every iteration, so that everyone who works with you can see the status of the project. You get regular feedback on new features so you can improve them.
You can improve the plan in every iteration. Make the features better than they were in the original requirements and roadmap. This is the main benefit that you get from allowing variable scope.
You can also observe and measure velocity, the speed of delivering features.