- An enterprise architecture is like city planning
- A software architecture is like a building design
- Design patterns are like codes and best practices in the building trade
The Danish government's white paper on enterprise architecture makes the first analogy in Chapter 4. In it, the work of city planning is divided into three main categories:
- Standardization - dimensioning of pipes, voltage, roadways, etc.
- Certification - regulated and standardized qualifications for workers
- Management - rules, notifications, permits, approvals, etc.
The work in enterprise architecture is largely the same. Most people who have a technical background understand the need for software architecture, but don't quite get the enterprise architecture thing. I think this analogy brings out the need and its relationship to software architecture quite clearly.
The need for a proper enterprise architecture is even more clear when you undertake implementing projects based on a service oriented architecture. Doing your own software architecture for your project does you no good if you can't talk to other services. General standards like SOAP and WSDL help here, but each organization also has much to decide to make SOAs work for them. If interoperability is the goal, then enterprise architecture is the way to get there.