Some random ramblings:
(Note: I talk about architecture the concept, not architecture the artifact)
The architecture of a system is the overall design and make-up of a system. Architecture is always present, but you might want to make sure your architecture is good enough. Basically architecture is be done as part of the development process; up-front, during the development or accidentally. Avoid the last one.
One reason for doing some up-front architecture is to find out which decisions about a system you need to make early (due to interoperability, for example) and which you can postpone until you actually need it.
If you mind your architecture continuously during development, making sure you always have a clean structure (and not being afraid to change it when the right reasons are given), your system will be much more easy to extend and modify as needed.
I find that a mix of the two is good, trying to find out the necessary Big Decisions early and try to delay making them as late as possible (but no later!) when you have as much information as possible to base your decisions on. Early architecture is also useful for determining the smallest parts needed to get a minimal working system which can grow as the requirements become clear.
Also, architecture can be seen as a communication tool; by using well known architectural patterns and metaphors it becomes very easy to communicate the intent and workings of your system to other people. A well-architectured system can be recognized by being easy to understand in layers of pieces; you can understand one part without having to know the details about all other parts. It is basically the tour-guide and road-signs to the system :)