Tim Bray wonders whether John Crupi's opinion regarding top-down SOA is realistic. Stefan Tilkov, Bill de hÓra, and Patrick Logan chime in with some very sage advice.
Just as real-world software development isn't top-down, SOA development isn't either. Instead, it's usually a mix of top-down and bottom-up. As others have pointed out, trying to go purely top-down typically results in running into big bureaucratic blockages, or biting off way more than you can chew, or both. You've gotta win some small victories first before you can convince others to come aboard.
That's the nature of the technology march. You try an approach here, and if it works, you try it there, and there. And that's why enterprises of any appreciable size are always heterogeneous, and why it's futile to fight heterogeneity rather than embrace it. If the new approach works, it won't really be considered successful until it works with some of the older systems already in place. That's why I've spent the last 13 years working on multi-protocol multi-transport multi-middleware systems like Artix.
If what John meant was that it's not wise to think that you can just take your existing applications and simply export them up to the SOA level, then he's right about that. This is where the mix of top-down and bottom-up approaches comes into play. One one side you iterate on the refinement of the business processes, while on the other you iterate on the refinement of the technologies and applications you're using to implement those processes. But as Patrick points out, no amount of technology can save you if your overall development approaches are getting in your way.
At IONA we've seen a number of our customers start with web services approaches by exposing a few CORBA or Java services, which is entirely bottom-up, but the successful ones always move away from that approach to one that incorporates a better view of the bigger picture -- i.e., a mixture of top-down and bottom-up. The recent discussion around contract-first development covered many of these issues.
