This is a complicated question with a complicated answer. I'll do my best to answer it as simply as possible :)
Basically, I work on a team that has quarterly priorities. External requests can come from external sources (e.g. other teams, sometimes teams of effectively PMs), and we can schedule in advance accordingly. Having things planned out quarterly allows us to communicate to those other groups our available bandwidth to take on new projects from outside the team.
This has change a lot in the 4.5 years that I've worked at Heroku. I think we've struck a great system.
Hope that helps!