Architecture is perceived as a heavy-weight activity which does not fit well into an Agile process, so many teams start without it, just to find themselves re-doing the software later because the code structure was not good enough to support maintainability and growth. Because the domain was not understood in the first place, the code that reflects it needs to be changed beyond the point of refactoring, and when that happens some architectural decisions are to be made. That defers the initial software design to a later point, introducing unnecessary delays and costs in the project.
In this presentation filmed during QCon 2007, Coplien and Henney describe how to start with enough architecture to ensure long term success of the project.