SOA Governance Granularity
Are you excited yet? I'm sure the title of this post has you chomping at the bit... Seriously, now that the industry seems to have figured out that there is a difference between design-time and runtime governance, we now need to start looking at the different levels of governance (or governance granularity) within the design-time perspective. As I have been discussing this topic with our customers and prospects, I have come to the conculsion that three levels of design-time governance should be taken into account by organizations pushing forward with SOA:
Most people don't think of SDLC best practices as governance but in fact it is a great example of fine-grained governance within IT. When defined properly, SDLC governance serves as a natural feeder to the "mid-level" architecture governance that is typically established at key SDLC checkpoints (e.g., requirements complete, design complete, preproduction). This architectural governance in turn ensures that IT projects stay connected to the objectives of their stakeholders as established by the portfolio governance activities of initiative and project prioritization (which presumably connect back to core business needs).
Portfolio and SDLC governance have been around for quite some time, and a number of tools (APM and PPM tools at the portfolio governance level, and the traditional SCM, requirements management, defect tracking, etc. tools at the SDLC governance level) exist to support these governance activities. What SOA brings to the table because of its loosely coupled nature is the increased importance of architecture governance -- it's back to service spaghetti if organizations don't effectively apply architectural governance over their service production and consumption activities.
SOA also should force behavioral change at the portfolio governance level -- breaking away at least partially from application-centric initiatives and recognizing the need to support and fund service production projects that span across applications. This hurdle can be a significant challenge for IT organizations used to funding and optimizing at the application level, but if those organizations don't make the leap to fairly evaluate and prioritize cross-application activities, they will never truly build out an SOA but rather they will build old siloed applications using new Web services technology.
Jeff Schneider's November 11th post makes some similar points on this topic. He breaks up the governance world into portfolio governance, process governance and asset governance. I see process governance and asset governance as different facets of the architectural governance level, with asset governance activities also leaking down into SDLC governance. However you decide to slice it, though, you need to recognize that an SOA will not just build itself. Without governance SOA simply turns into ABOS -- A Bunch Of Services...
« Reusable Services -- Are They Really "Too Hard" to Create? | Main | Replacing "Inflexible Inefficiency" with "Flexible Inefficiency" »