Reading Dan Creswell's weblog and his recent post on "SOA definitely doomed" and a couple of replys (including me) I think SOA is heading towards the "trough of dissolution" which is great news. Why? It means that the shiny happy technology wave is going to crash soon and we can get on with what SOA is really about this means
1) SOA is not about technology, not ESBs, Web Services, EJBs, Spring, .NET, Java etc etc etc
2) SOA is not about RPC, Messaging, Events or anything else
3) SOA is about changing the way you think about applications and enterprises
First off Dan goes after the "we don't know what SOA is" - We now have SOA RM, not everyone is onboard yet but its a start.
This is the shift that SOA represents and is the thing that will continue on. Undoubtedly there will be people who don't do SOA in the future, hell there are people who keep doing waterfall today (and failing as a result), and there will be people who say they do SOA in the same way as people say they do agile today when all they are doing is traditional iterative.
SOA is an important shift that has been used successfully in massive systems for many years, and which is leaking through to the big, middle and small mainly via vendor product marketing, in a similar way that OO really made the break through in the 90s, with various companies pushing "their" take on OO, paticularly OOD.
The rest of Dan's issues are focused around the development of SOA systems, which is part of the challenge for anyone trying to understand SOA. The vendors products are NOT about architecture they are about delivery, but SOD of IT was never going to catch on. Dan's points on the confusion in this technology area are very similar to those in the 90s where people argued C++ v Smalltalk v Eiffel etc etc and lost the fact that the importat shift was the change in thinking, not in technology.
His point about complication is well made, SOA is aiming at a more complicated challenge, its aiming to create a common language between diverse stakeholders. But then at the moment we have nothing with which to communicate between these groups effectively and that cannot be allow to continue. But I remember only 5 years ago being told that business people would never understand Use Cases, and now its become a natural way to discuss requirements.
SOA is about a simple principle, making your IT look like your company and enabling it to change in the same way as your company. This isn't about STOPPING small agile projects, its about enabling them, but enabling them in a way that doesn't make them the maintenance nightmare of tomorrow.
OO has failed in the large, its time to try an approach that works.
For the record Dan could definitely kick my arse.
And for an example of the OO wars of the 1990s, here is a cracker from the inventor of C++ and a troll from 1997 and back in 1994 people were not sure what OO was about