I do most of my work with the Department of Defense, so naturally I am most familiar with events in that arena. What I am seeing lately leads me to wonder if it is not must enterprise architecture that needs to be rethought, but perhaps architecture in general needs to be rethought.
Formal information systems architecture can trace its roots back to the development of the Zachman Architecture Framework in 1987. At the time Zachman developed his framework, we were still inventing the idea of information systems. Since we have borrowed so many terms from the building trades, I’ll use that context to draw a crude analogy: Developing information systems in 1987 was like building a house before the 2×4 stud had been invented. Everything was a custom-crafted, one-off solution. There was very little reuse across information systems.
Reuse of packaged components didn’t become a real possibility until the development of object-oriented programming. Object-oriented programming first emerged with the Simula 67 language, but Simula was tailored to the modeling and simulation community. General-purpose object-oriented programming first became practical with the release of the C++ language in 1985 (only two years before the Zachman framework was published).
Reusing capabilities that are already resident on the network was no more than a dream in 1987. A rudimentary version of the Internet existed, but the World Wide Web wouldn’t be invented for another two years. Simple Object Access Protocol (SOAP), the foundation of the first generation of web services, was first published in 1999, and the Representation State Transfer (REST) protocol was published in 2000.
Given all these changes, do we even need system architecture frameworks anymore, or are they anachronisms–relics of a bygone era and of no more use than a buggy whip? Are they still needed, but only in limited cases, such as when building a stand-alone system or capability as a service?