Sunday, February 26, 2006
The Future of Lots of Things
Enterprise Architecture is an infrastructure and a set of Machines constructed in order to manage a chaotic, dynamic, unpredictable, complex, organic, prone to error, frustrating, Enterprise IT, which has to support an ever increasing, dynamic portfolio of products and services, through constant "ASAP, Now, Right-Away" modifications of business processes.
That is a formulation of my practical experience, as described in The Rise of the Machines: A new Approach to Enterprise Architecture. The outcome of an Enterprise Architecture is a Management Framework upon which, or rather, inside which, the Enterprise lives; physically.
Yet, if you consider the usual approach to Enterprise Architecture, you'd normally find committees, standards, governance, and smart people being in the confirmation pipe of business and technological initiatives.
Under this paradigm, the success of an EA Office is measured by the popularity of its staff members and of its guidelines and procedures.
I have always thought of EA in aggregate as the mapping of business processes and tactics to an optimal set of technology solutions that enable the business to carry out its initiatives. The value produced by EA 'done right' could be summarized as:
- The business gets its process needs objectively met through information technology
- The resulting technical solutions are efficient, reliable, cost-effective, and agile
- Specific segments of the business-technology interface in a given organization, while using commonly available technologies, represent a core competency or value-add unique to the organization that provides competitive and profitable differentiation from rivals.
Now we have SOA, mashups, and SaaS on the near horizon as requisite environments, at a minimum a major portion of the technology environment in the next few years. I dismiss out-of-hand that any or all of these will replace EA, as none of these fully embrace the business-technology relationship in total. However, there is something lurking on the horizon related to these technologies that will become evident in the next few years, and the best term I can give to it now is the rise of what I will call 'Meta-Architectures.'
What's just over the horizon for all of us is the ability of users to precisely and individually define their applications look, feel, and results simply by clicking or drag-and-dropping combinations of SaaS'es or mashups in any manner that make sense to them and running it on their devices. Just like they do now with files and text/data objects in a desktop environment. It will not take the abilities or time of the IT organization to change applications, or data to meet this need, the users will just point to services they want, defined in terms they understand, combine them as they see fit, and the interoperability between what they select is a given as part of the services offered.
Moreover, given the current state of technologies such as .NET and the C# language, it is certainly possible that services, to a limited extent now but more so going forward, will be able to significantly refactor themselves logically per user directives and execute. As with the previous example, it will not take the time or talent of the IT organization to respond to changes like this - the capabilities will come with the systems and be user-inititiated without specific IT intervention or permission.
While we've heard a lot of this in the past in different contexts - things like COBOL and SQL being invented so users could easily write software or query databases and artificial intelligence able to mimic and potentially replace human expertise and decision-making, I think that the new paradigms have some real 'legs' in what I've described above, and I'm usually a noted skeptic about such things. I may be dead-wrong on this forecast, but I feel that these paradigms and techhnologies, properly deployed and managed, have the greatest potential over anything I've come across in my career.
Which leads to Muli's further discussion about EA evolving into this:
I believe these thoughts will finally change the perception of both EA and SOA: EA will shake off its image as a "documentation, procedures and guidelines" body, repositioning itself as a practical, implementation-oriented discipline aimed at the creation of an Enterprise Management Infrastructure, while SOA will be repositioned, no longer as an Integration/Interoperability architecture, but rather as an Enterprise Management architecture.
Corresponding to what I have described above, the type of EA shift Muli describes is precisely what EA must evolve into if it is to survive and add value to our organizations. One feature of the meta-architecures I described above is that they are controlled by the users, and not by IT. IT loses control of the combinations that make up the meta architectures once the underlying services are deployed because users build and execute off service combinations without the need for detailed requirements, extensive documentation, and development. IT will not have the resources or the expertise to 'police' user service combinations, merely the ability to monitor and track usage and respond to and solve fault conditions. IT manages the service environment and ensures the quality and security of services, creates new environments and services, and becomes much more process-oriented than in the past. It is the combinations (or in other words integration and interoperability) that it cedes to the business, thereby giving the organization the agility and flexibility so long sought after.
It is a facinating and important time to be in this business folks, and these concepts are still being fleshed out by others and myself. More to come on this soon.