When discussing the most significant challenges facing today's enterprise architects as they move forward with SOA initiatives, SearchSOA.com places complexity and performance as the toughest challenges. SearchSOA.com’s Readership Challenges & Priorities 2011-2012 Survey data suggests that, while building out a full service-oriented architecture can be quite complex, having SOA infrastructure and governance in place can significantly simplify the challenges associated with keeping IT flexible enough to meet changing business needs.
According to longtime SOA evangelist Joe McKendrick, "It's important to remember that SOA is not a technology that can be implemented within a few months' timeframe, but a philosophy that will transform many aspects of the business itself. SOA can start small, but it ultimately demands change on many levels, especially since it seeks to evolve enterprises from separate silos of technology and information into a leaner, shared-service organization."
According to Forrester analyst Randy Heffner, "The key is good organizational discipline and good SOA infrastructure. Forrester’s data shows that SOA governance dramatically increases SOA satisfaction." Heffner explains that SOA can be lightweight, but ''it cannot be done well without some degree of upfront thought. Otherwise you wind up with a haphazard and convoluted collection of services rather than a coherent and useful portfolio of services."
The real trick to SOA governance is to make compliant code the easiest code, says expert Todd Biske.
According to McKendrick, the concepts underlying SOA governance, which is a discipline meant to ensure that services are consistent and reusable, go hand in hand with providing a lightweight enterprise infrastructure.
"A well-designed governance system should be highly automated, thus giving end-users and developers more choices and opportunities to create their own front-end interfaces," McKendrick explains. "A well-automated system of governance will give end-users the freedom to create their own ‘mashups’ or ‘apps’ to get to the information or functionality they need at that moment."
While enterprise architecture and SOA governance guru Todd Biske recognizes that many organizations see "SOA governance" and "lightweight" as opposite concepts, he also sees ways to make SOA lightweight. "The best approach to governance is to make [compliance] the path of least resistance. If you can accomplish that, then your governance may not feel so burdensome."
The real trick to SOA governance, Biske explains, is to make compliant code the easiest code for developers to write in the first place. "For example, if you want to make sure that every service provides an audit trail of service interactions, you'll get far better results if you tell [developers] 'Route all requests through the ESB and this will be done for you,' or 'Use this shared library of base classes and it will be done for you'." Stating the policy without these helpful reminders will leave each developer to figure out their own path, which may lead to unfortunate inconsistencies.
Also, the somewhat stringent requirements of SOA governance do not necessarily impede the use of short-term, iterative Agile projects. "[SOA and Agile] fit together well," says Heffner, "if you approach SOA correctly and if you approach Agile correctly." Some inexperienced application development teams may use Agile as an excuse to implement whatever strategy is easiest at first, without concern for problems they may be introducing in the future.
Heffner points out, "If you do SOA right, you will have some type of evolving roadmap for development of your service portfolio. Then, when it comes to doing an Agile project, creation of a given well-scoped service from your portfolio roadmap becomes just a line item on your Agile prioritized requirements list."
McKendrick concurs, "The two concepts are joined at the hip. Both SOA and Agile focus on meeting the needs of the business as rapidly as possible and not letting projects get mired in technical issues. If you check out the SOA Manifesto, you will see that there is a strong resemblance to the values and guiding principles of the Agile Manifesto."
Another experienced expert – David Linthicum, CTO and founder of Blue Mountain Labs, a cloud and SOA consultancy firm – sees things a little bit differently. While Linthicum agrees that when properly managed, a service-oriented architecture can work well with Agile development methodologies, he does see cases in the real world where Agile and SOA become divergent concepts.
"Where they seem to go off the rails is when there are time-box or resource constraints, and the iterations drive changes to the core architecture over and over again," notes Linthicum, "You typically run out of runway in those situations."
McKendrick adds that, "An infrastructure employing cloud services or services based on the REST protocol can be developed and provisioned very rapidly within the bounds of a well-designed service-oriented architecture." Many organizations are beginning to depend on cloud services to keep their IT infrastructure flexible.