Imagine you have user story 1 which requires the implementation of a method:
public static void MyMethod(string paramA);
Several classes will be using this method, and MyMethod does everything required to complete user story 1, but nothing more.
You are pretty sure that in a future iteration another story (user story 2) will come along which will require the method to become:
public static void MyMethod(string paramA, int paramB);
The previous calls to MyMethod will need to be refactored, and some new calls to MyMethod will need to be added to meet the requirements of user story 2 (Note after story 2 it never makes sense to call MyMethod with only paramA).
When working on user story 1 is agile thinking to:
1) Only implement: public void MyMethod(string paramA);
2) Implement: public void MyMethod(string paramA, int paramB); - But do nothing with the second parameter for now. Calls pass in 0 to the second parameter at this point.
3) Implement: public void MyMethod(string paramA, int paramB); - But do nothing with the second parameter for now. Calls pass in the correct value (according to the expectation of user story 2)
4) Implement: public void MyMethod(string paramA, int paramB); - And all calls Completely to cover user story 1 and 2