When following agile, people abuse the "Agile" methodology and focus on being too itterative.
Agile does not mean you don't plan... - Jason McCallister
I see this often with a lot of companies... "we are agile so let's figure it out later". As an experienced software engineer, this drives me insane. Someone once told me "...10 minutes of planning saves an hour of implementation". Hearing that made me really think and changed the way I tackle projects.
As engineers, we love to jump in a get started but think about every time that you have started a project with a vague idea - how did your code turn out? Odds are... not that great and you probably had some rather messy code.
Its easy, I get it. We love to write code, that is why we do what we do. However, its ok to have a larger plan to achieve a strategic goal. Planning does not mean you are not being agile. We know things are going to change during discovery, so plan for change but be clear in your overall vision. I have seen so many projects go from a great idea to fail during implementation.
If you are still not convinced, do you remember a project that had only a small amount of planning. Do you remember launching the project and then the client asks for a huge change? How did you feel about going back to modify that code, and hopefully you had decent test coverage.
Agile is an excellent way to get down to the nuts and bolts of a product, but it does not mean you should not plan ahead.