In agile we promote working in small iterations, and building just enough to solve your problem today. I try to encourage my team to avoid designing a problem to the very end, but to focus only on what is necessary to solve the first; most basic problem.
BUT: focus and iterative execution should not be confused with a lack of vision…
Vision (why are we doing all this? What direction are we heading in?) is long term, far reaching and top-level, and vision is crucial to help you make the right decisions about what is important today, and what will be important tomorrow.
The execution against the vision however is based on small increments; small, little steps that move you towards what the vision looks like today. I say today, because the vision can change. In fact, the vision should change over time; it should adapt and adjust to evolving competition and user/customer feedback. Building in iterations allows your vision to adjust, and allows you to adjust to your vision.
Working in agile is no excuse to forget your product vision. Agile is all about taking small steps and adjusting along the way: but you still need to know where you’re going.