Agile is not just about developing system in chunks. There are many practices that you need to apply in cooperation in order to be successful.
For example, you architecture must be built to embrace change and your code should be sufficiently covered with the unit-tests to support constant refactoring.