Continuous attention to technical excellence and good design enhances agility.
The faster you can adapt to changing conditions, the more agile you are as an organization.
A good design breaks out the functionality of the whole into independent modules that play well together. The boundaries of what each of these modules do is well defined. When (not if) something needs to change, it is clear where the change needs to be made. Just breaking things out into pieces doesn’t necessarily mean a good design, however. The test of ‘good’ is in how easy it is to figure out the ‘right’ place to make the change.
Do what needs to be done, and no more. But do it wrong today and you will likely need to do it over later. Resist the pressure to compromise on architecture. At the same time, resist the temptation to over-architect something. Make it flexible enough to do what you know you need to do, and no more, no less. It may take a little more time to come up with the ‘right’ architecture up front. But it will pay for itself soon enough.