Fluid Architecture: Changing The Foundation While Building On It

One of the things I keep thinking about is how the concept of architecture[1] has evolved in software development over the years. Gone are the days when we (sometimes meticulously) planned, designed and implemented each and every module and sub-system to build a system. And most of the time, using such a long (and waterfall?) life-cycle for development, the thing that we built ended up being close to obsolete when finished. But businesses were not as agile that they were willing to live with such a system. Many businesses bought systems and modified their processes to adapt to the capabilities, pitfalls, drawbacks of a product they bought or built. When businesses adapt to IT, you lose agility and competitive advantage. You want IT to adapt to business requirements so business keeps going at its pace without hindrance from IT. So back then architecture was a rigid concept and a goal, but, today architecture is very fluid adapting to changing business and technical environments. Due the the rapidly changing business and technology scenario, there is no longer a constant architecture to build towards. The architecture has to evolve as we are building the system taking into considerations technology obsolescence, evolving and emerging standards, changing business requirements and everything else that goes with it. Managing architectural quality[2] becomes extremely challenging in this constantly changing[3] environment.

Leaving architectural quality aside for a while, a number of changes in the industry can help us in implementing fuild architectures. On the enterprise software side, that is where Service Oriented Architecture (SOA) comes into play with loosely coupled services helping us build dynamic composite applications leveraging existing and new services. On the infrastructure side, grid computing hopefully fulfils the promise of seamless expansion of unlimited compute power and demand.

These times are challenging, but have never been more interesting. Are you up for it?

[1] The definition of the term Architecture can raise a decent debate among architects and developers, but that is to discuss another day.
[2] Defining Architecture Quality is tricky and sometimes subjective.
[3] Isn‘t that an oxymoron?

YouRIt

Advertisements

Published by

deepakalur

Cofounder & CTO @ Chartcube.com