Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community

Posted by Gernot Starke on Nov 21, 2007 02:46 AM
The term "governance" has been regularly appearing in IT publications and conferences for some time, but among technical circles, such discussions are often yawn-provoking at best. This article provides a developer-friendly guide to SOA Governance, starting with the general notion of IT governance down through design-time and the second runtime Governance.
Intel® SOA Expressway Performance Comparison to IBM® DataPower XI50
Security Mediation (Government/Healthcare) Case Study
A Multi-Core Optimized Software Appliance -A New Breed of Service Intermediary
8 SOA Software Appliance Usage Scenarios Sample Videos
Service Router Design Pattern-Scaling Cross-domain SOA
Visit SOA Appliance Comparison Site
*Video Usage Model Tutorials
*Comparison to IBM DataPower X150
*Performance Benchmarks
*On-demand webinars
Imagine an organization with an ongoing SOA initiative. Everybody is excited, the initiative has a generous budget, there are new business and technical opportunities - it smells like change, but with a certain amount of pressure on everybody. In the midst of this situation we find "Mrs. S. Governess", who is responsible for ensuring that everything concerning services runs smoothly. She cares about the SOA big picture & the interests of the organization. Our governess will not be involved in day-to-day business- or technical details, but she will setup strategies, define responsibilities and constantly monitor the initiative. She has to ensure, for example, that SOA budget is spent to achieve the best possible ROI and that business services are supported as best as possible by the service implementations. Although well respected throughout the enterprise, Mrs S. Governess can be pretty strict sometimes, overruling even project managers or experienced architects. In the end, be assured, she has the direct line to the uppermost management levels and the shareholders... which makes her arguments pretty convincing. In other words, Mrs. S. Governance wields the insignia of power, at least concerning the corporations' SOA.
But wait: Isn't that the management's job? Shouldn't management care for SOA success? In theory, yes. In practice (which most often differs from theory, as you know!), managers usually have their own (sometimes even hidden) agenda, which too often collides with the organization's long-term goals. For example project managers put more emphasis on their projects' schedule than on strategic goals. Therefore Mrs. Governess represents some kind of super-management, being devoted only to the organization itself. She encourages and enforces "desirable behavior". Her job is about control, about law and order - not about being polite and gentle.
Her job description serves as blueprint for the new discipline "SOA Governance". It's not about creating fun at work or having the latest technologies in a developer's hand - but about the relationship between SOA-budget-spent and return-received. That's why governance isn't too popular among us software developers and architects. Their lives (it's mine too, btw!) will probably be less fun after the governance program has been set up. But be assured: It'll keep your organization or enterprise fit and healthy for the future - and that's worth a little hassle.
Before we go into the details of SOA governance, let me explain one of Mrs. Governance favorite axioms from her vast knowledge repertoire: "Enterprises and organizations need two seemingly contradicting things:
At first, they need "order and control": they need laws, jury and a and police/enforcers.. That's where governance comes into play. Be warned: As software developer or architect you might not like it, but you'll absolutely have to have it!
Secondly, they need freedom, room for creativity and a positive working environment, especially for brainworkers. The whole "agile" movement is targeted at improving this aspect of work.
Especially within IT organizations, the order-and-control aspect is often regarded as being counter-productive with brainworkers. I'm not talking totalitarian here: Governance tries to add the appropriate amount of control, with the idea of optimizing the (often cited but seldom achieved) business/IT-alignment. Pretty often, IT people don't care about business and business-people seem to ignore us IT guys. But only by close cooperation can they ensure enterprise success!
Therefore, governance is a crucial necessity. The right amount of governance makes enterprises successful. Harvard professors Weill and Ross could prove in [Weill-Ross] that successful IT-governance implies higher revenues! A lack of governance implies a high risk of long-term failure.
Before we dive deeper into details, we shall look at the whole governance clan (see figure "Governance hierarchy"): Mrs. S. Governess lives in a larger family. Her big sister calls herself Corporate governance, and that lady is nicknamed "Mrs. Compliance". Her goal hangs only an inch below world peace: Ensure that everything happening in the enterprise is directed toward its benefit. In short: She's the one caring for corporate values and assets.
Figure 1: Governance hierarchy
Next in line comes the smaller sister, the IT Governess. Her tasks focus on the relationship of IT and business. Many online and paper publications describe her job (IT Governance) in significant detail, for example the "IT Governance Institute" (ITGI) with [ITGovBB] and the excellent book "IT Governance" by Peter Weill and Jeanne Ross [WeillRoss]. Her responsibilities and tasks determine those of her little sister, Mrs. S. Governess we met before.
The Figure "Focus areas of IT governance", taken from [ITGovBB], gives you an impression of IT-Governance tasks. Pretty high-level, huh?
Figure 2: Focus areas of IT governance
IT governance provides the foundation for SOA governance - in SOA organizations both should go hand-in-hand. IT governance ensures that all IT-related activities are directed towards the organization's goals, supports its long-term well-being. IT-Governance gurus Peter Weill and Jeanne Ross brilliantly define IT governance as "decision rights and accountability framework to encourage desirable behavior in IT." (from [WeillRoss]). Say it again: Governance encourages desirable behavior. It provides the appropriate "order-and-control" framework which leaves enough freedom for the business to flourish and applies the necessary level of control over individuals and processes to avoid anarchic and chaotic behavior.
When I started with governance, I found it really difficult to boil down theory to practice. Therefore let's have a look at a practicle example of desirable behavior - taken from [Ashar+07]:
"Why have so many hybrid vehicles been registered in the state of California in the last 12 months? Is it the more than $1500 in federal tax credits given to hybrid owners, or the luxury of cruising down the high-occupancy vehicle lanes solo during commute hours? Or is it that Californians are becoming more environmentally aware? Whatever the true reason, the reality is that policies were put into place to encourage desirable behavior--the purchase of low-consumption vehicles. This is an example of governance: when policies are put into place to encourage desirable outcomes."
Easy, isn't it? Now you'll ask exactly the right question: How can IT-governance achieve that goal? How can "desirable behavior" be achieved in IT?
The answer lies in four questions that have to be answered by Madame IT-Governesse:
Doesn't sound like too much work, does it? The figure "Key-governance-issues" summarizes those key governance issues:
Figure 3: Key Governance Issues
But, you may ask, "why such a fuss about it?" What benefits result from IT governance? I'll show you a pretty impressive list of advantages (don't hesitate to forward it to your managers...)
Just in case your organization or corporation still hasn't got any IT governance in place: Your SOA initiative gives you the perfect reason to start both IT and SOA governance today...
Now that we had a brief overview of IT governance, what does "SOA Governance" really mean? I assume that you are familiar with Service Oriented Architecture (SOA) in general. An organization adopting and implementing SOA needs to care about a plethora of issues within the whole service lifecycle. I'll name just a few:
There will be many people involved in all those issues, literally dozens of documents, models, logfiles and other artifacts created during the long way from business requirements over service implementation to service provisioning and operations.
At the beginning of this article I talked about the need for control - I'll come back to that term here: SOA needs tight control over its documents and artifacts. Everything needed to get and keep services operational needs to be governed - simply to avoid the not-invented-here syndrome and to maximize re-use. As (agile) software developers, you might not like it - I predicted that at the beginning... But if your organization wants SOA to be successful in the long run, you need that control! Just in case you don't believe me: Even the techno-friendly guys from Gartner Group predicted that most SOA-initiatives are likely to fail due to a lack of governance than due to technical reasons ([Gartner]).
Now let's get down to necessary actions: There are two distinct phases (Lori MacVittie called them timers in her excellent online article [MacVittie06]) when you need to control your SOA (or your IT in general): The first being design-time or development-time and the second runtime or execution-time. You should care about both, as they have a few crucial aspects in common (namely metadata!) and will therefore influence each other. Let's discuss them in turn.
Design-time governance controls all phases and activities around the software development lifecycle. It begins as early as requirements management and spans over architecture, implementation, test, quality assurance, documentation - until your service is operational. Imagine a business- or requirements-analyst jotting down the required features of the next-generation business service. Design-time governance ensures that the analyst will find every piece of information on related stuff that's already available - cutting down the time he needs for his job. Slightly afterwards, your software-architect or service-architect starts designing an appropriate solution architecture. Again, governance ensures that existing artifacts, documents, (UML) models or even service contracts are readily available (making searches quicker and facilitating reuse at the same time).
This form of design-time governance has its price: Control over every asset (like documents, models, presentations, bug-reports, evaluations, concepts and especially service-descriptions, service-interfaces and the like) created or used in the whole development cycle. Many developers will regard this kind of control an impediment, not a kind of support. An organization has to think and act with a long terms outlook - educate your developers accordingly and give them the proper tools (see below), which minimize the impact of this control.
Finally, when service implementation is completed, service level agreements have been negotiated and everything has been appropriately documented and tested... your service is ready to run! Now the second phase of SOA governance begins.
Runtime-governance covers everything about service execution and operation. You need to recognize which of your services are called, by whom, with what kind of parameters. Your runtime environment should detect potential performance bottlenecks before they occur, should care for agreed service levels on both provider and consumer side, observe logfiles and exceptions. In short: It should constantly monitor every aspect of service execution. In contrast to design-time governance, these tasks will be carried without many people involved. People, especially Mrs. S. Governess, need to evaluate condensed reports on the results. They will receive loads of feedback for the next service design and implementation iteration (you work iterative, don't you?).
What features shall a SOA governance tool-chain provide? For the answer, re-read the preceeding paragraphs: You'll need both design and runtime support. For your specific feature list, look at your specific SOA lifecycle (yes, it will be your specific one). Every role and activity in there should receive its appropriate support. Easy to write, hard to achieve! Nevertheless I strongly suggest to evaluate tools to support Mrs. S. Governess - otherwise your SOA will likely mutate into a service mess with maximized entropy and zero ROI.
Now you might think: "SOA Governance is easy. Just get a cool tool and we're set". Wrong. Entirely wrong. Hear out our experienced Mrs. S. Governesse again, she proposes the following steps to effective SOA governance:
With these few steps, you can set up very effective SOA & IT governance programs. May Mrs. S. Governesse be with you:)
Gernot Starke works as independent consultant and coach for software-architecture and agile development practices. His clients from various industries (finance, logistics, telco, manufacturing and public administration) rely on his 20+ years hands-on experience in software architecture, -development and -management. He co-founded the arc42 portal for software architects and authored numerous articles and books, primarily on software architecture. He's co-editor of the (German) book "SOA Expertenwissen". Gernot lives in Cologne, Germany, with his wonderful wife Cheffe Uli and their two children, practices yoga and sometimes (tenor) saxophone. More on http://www.gernotstarke.de.
Would you enroll in an India Forex Group i.e http://www.indiaforex.com Groups?
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
3 comments
Watch Thread Reply