Jim Webber’s blog reminded me of the existence of Conway’s Law which seems particularly relevant to the challenges SOA governance attempts to address.
For those of you who haven’t come across this law, two forms of it are…
“Any piece of software reflects the organizational structure that produced it.”
or a more techie version:
“If you have four groups working on a compiler, you’ll get a 4-pass compiler.”
The first is a good encapsulation of the reality of working in enterprise IT: And SOA governance attempts to optimise the way in which software reflects the organisational structure through building expertise, capturing and formulating successful patterns of use, promoting ‘good behaviour’ and so on.
The second statement of Conway’s law, while being more jokey, also brings in implications of human nature: If you set up teams with separate responsibilities, expect them to collaborate sufficiently to complete the job but also expect them to carve out their areas of control to the potential detriment of the overall solution. This is true with all professions – however mixing in the stronger tendency to ‘not invented here’ with IT and the problem becomes even bigger. The SOA equivalent of the 4-pass compiler is poor rates of reuse and multiple versions of what is essentially the same service. Overcoming this again requires good governance – promoting communication between teams and incenting reuse – and good technology to support it.