Jon Udell poses a question to the SOA community:
As a language of contracts, SOA involves complex shapes. But as a Lego system, it’s about simple shapes. Where’s the sweet spot?
A great analogy. I can’t seem to make up my mind which approach I like better. As I understand them, in the simple-shape approach I create complex things by combining building blocks that share a common interface. If you’ve played with Lego in the early 1970s, like I have, you were used to build stuff out of simple bricks and plates that varied in the number of “connector pins” — 1 to 20, maybe —, and were (mostly) of rectangular shape. Sure, the result looked like a pixel graphic zoomed in more than appropriate, but essentially everything was combinable with everything else.
But if I look at my son’s Lego toys today, they are very different. Bionicles, Racers, movie merchandising stuff — few complex shapes, easily combinable only within their respective “family”. The result might look more fancy, but its a lot more static. And while the bricks and plates I grew up with are still around today, I wonder whether the more complex stuff will be, 30 thirty years from now.
Although I do not have an answer, I believe this is definitely the right question to ask.