We've just passed the ten-year anniversary of the first publication of the Agile Manifesto, which laid a philosophical and best-practices foundation for tighter and more effective collaboration between business and technology folks.
While Agile has been around more than a decade, I'm finding lately there has been more discussion than ever on how it fits into today's digital economy. There are extensions, if you will, into business intelligence and data integration (Agile BI and Agile DI). It's vital to efforts to pursue "Lean IT."
The relationship between Agile and service oriented architecture seems like a natural fit -- both philosophies focus on making technology more flexible and adaptable to changing business requirements. But where and how, exactly, do Agile and SOA come together?
Antonio Bruno, project manager, software engineer and Scrum product owner recently explored the Agile-SOA connection in Service Technology, explaining how each approach enriches the other:
"SOA introduces a controlled environment in which changes are accommodated in support of Agile processes, where quality, efficiency and productivity are increased through the appliance of design patterns, standards and governance procedures. Design patterns like service reusability, composability and abstraction, to cite a few, are leveraged to provide flexible and adaptable ecosystems. Agile methods also enable the lifecycle to be more incremental and interactive, allowing the business to get/give faster feedback from/to IT. They both support the continuous business-IT cycle that is needed to allow businesses to set up strategies aligned with IT."
A good match, in other words. Bruno also observes that without SOA, Agile ends up being employed "on legacy applications or ad-hoc integration architecture," which leads to "fragmenting the requirement backlog into chunks of deliverables that the business side can run into earlier."
When adopting Agile without service orientation, "you have to expect high development efforts along with an increased IT burden and TCO costs," he adds.
Likewise, SOA will not deliver its expected value to the business if there aren't Agile approaches to support software deployments. As Bruno put it: "IT often represents a rigid machine that evolves and reacts to changes independently and differently from the business. Similarly, an IT framework that is reactive to change is not enough for it to be considered fully agile in support of the business, if changes are not driven by Agile processes."
Additional note: The 2009 SOA Manifesto was very much written in the spirit of the Agile Manifesto, and its values and principles map very closely to those of Agile.