Zac Gery recently wrote a nice post on how Agile teams can maintain a long-term focus while progressing through their sprints which by design are focused on a short-term goal. Here is a quote from Zac's post:
Although Agile lays the foundation for long-term thinking, the framework and execution are left to the team. This is unfortunate but can be overcome. Agile's support of self-organizing teams allows for the proper implementation of a framework. It's important for teams to define guidelines for managing long-term planning, focus, and grooming. The following section outlines a few strategies...
Provide a quick status on long-term initiatives after each iteration.
Setup recurring "long-term focus" meetings to discuss product direction, technical considerations, company goals, and much more. These are separate from task oriented meetings such as grooming.
It's important to openly recognize and clarify short-term versus long-term solutions to areas such as problems, requirements, and conflicting priorities.
If possible, avoid cannibalizing long-term planning for the completion of an iteration. Make it a priority.
Provide an easy way for team members and stakeholders to contribute to the long-term direction.
Build in break levers for team members to red flag work that might have potential long-term effects.
Each team should assign one or two individuals such as a senior developer, team lead, or architect to help maintain the long-term focus. Including all teams members is not an effective use of the team's effort.
Group items into themes and keep them in a visible location for continuous reference.
Communicate, communicate, communicate. Constant conversation is key to avoiding long-term pitfalls.
You can read the rest of the post here.