I had a really interesting discussion this morning with two bright people about their SOA journey. They are responsible in many ways for moving their rather massive company to SOA. So we chatted about all sorts of things and argued and disagreed and converged and disagreed again and got confused and converged again and diverged again … and then we realised 2 hours had gone by and we all had other things to do.
Driving back to my office, I was bothered by the fact that we were struggling with how to implement this thing called SOA. And I also have a feeling that there are more SOA failures than successes in the world. And all these contribute to experiential knowledge for the greater good of our geek community, blah, blah, blah.
But I did not have a clear cut solution, neither did they, neither does their vendor partner (for sure!), nor their management, nor anybody!
So, I am now convinced that a SOA implementation (not theory!) is a wicked problem. Wicked problems come from social sciences to describe an extremely difficult problem to solve, even impossible because of contradictory or ever-changing factors or incomplete requirements. Some characteristics of wicked problems include:
- every solution is a degree of goodness (or badness) but there is no distinctly right or wrong solution
- every solution is a one-shot solution because you don’t have room for trial and error
- consequently, every solution attempt counts immensely … positively or negatively
- there is no uber-test of a solution, so the proof is in the execution (my TDD blood froze about now 🙂 )
- each problem is symptom of another problem, indefinitely, i.e. there is no stop rule.
- stakeholders all hold different understandings of the domain
- there is no solution, but the problem is understood only after a solution has been crafted.
And last, but not least … maybe the most telling is
- Those that are held accountable for the consequences of the solution have no right to be wrong ! Ouch 🙂
I think that some architectural things feel like wicked problems. Read the work of Jeff Conklin and Robert Horn, two guys that spend a lot of time researching tools for solving social messes.