I honestly believe that the way Information Technology is done is becoming archaic. For example the typical Software Development Lifecycle (SDLC) is still geared towards to client-server based technologies. Can we say Visual Basic 6, FoxPro, Sybase with back-end relational databases in Oracle, SQL Server, Access? Unfortunately working in the Enterprise space, I have realized that businesses don't want to build every application they desire. There are Custom Off The Self (COTS) software which can be configured to a point where it can used out-of-the-box. The big question in the Enterprise is Build verse Buy. This means do we build the application or buy the application and then use it with mininal configuration. Enterprise Architecture expands the Build Vs Buy problem to Build Vs Buy Vs Reuse functionality from existing applications. In theory this sounds great however there are drawbacks going the enterprise route. There is greater dependency on the enterprise for reuse functionality from existing applications. However if the enterprise is not mature enough then we have to go the "Silo'ed" route since silos impede information flows and exchange but they also protect the systems and programs from risks in an immature enterprise.
In the end, enterprise level IT is good however it is bad if the enterprise level IT is extremly immature. Do we trust our neighbors or do we trust ourselves?