Yesterday, this tweet from Dan Creswell showed up in my timeline:
Iteratively developing software is not equivalent to adding features a sprint at a time
So simple. So concise. So expressive. Yet I fear many will not get it. You have to read between the lines, understand the unspoken.
What does it mean to add features a sprint at a time? It means waiting for tomorrow to decide what you will do tomorrow. You don't decide today, and definitely not yesterday. Remember the manifesto: "reacting to change over following a plan".
This doesn't mean you cannot have a plan. This means that when the insights you gained by producing features are better or more important than the plan you came up with initially, following those new ideas instead of the plan should be a viable option.
Then and only then are you adding the right features, one sprint at a time.