I've always been a fan of a light agile process - every few weeks you sit down and come up with a target for the subsequent interval - 2 weeks is a good start, shouldn't be more than 6-8 weeks. Within that, you define what you want to work on - could be a particular milestone within the project. Could also be user stories, doesn't really matter as long as everyone has a good sense of what the next milestone is.
Then you check in as a group on a weekly, or maybe twice-weekly basis, with an explicit goal of identifying risks and uncertainties that have arisen during that timeframe.
The goal here is not to micromanage, but to give a sense of progress towards a goal - whether a metric shift, a release, a roadmap commitment, etc. If you don't hit your interval milestones a few intervals in a row, your high-level thinking about timing is wrong, and you need to adapt the project or the timing.
Then you check in as a group on a weekly, or maybe twice-weekly basis, with an explicit goal of identifying risks and uncertainties that have arisen during that timeframe.
The goal here is not to micromanage, but to give a sense of progress towards a goal - whether a metric shift, a release, a roadmap commitment, etc. If you don't hit your interval milestones a few intervals in a row, your high-level thinking about timing is wrong, and you need to adapt the project or the timing.