I’m a sucker for a nice analogy! I find they are a great way to help you to understand complex ideas and systems, by referencing stuff you understand well. Of course there is the danger that you can carry one too far, but I still find I understand and remember stuff better when someone provides a nice vision for me. For example, I’ve always liked Pat Helland’s analogies about IT, first the Emissaries and Fiefdoms, and then the Growth of American cities aligned to the development of IT.

Yesterday I presented at the Service Oriented Architecture conference here in Auckland, and I also sat in on a session by Mark Colan from IBM. Mark made a nice analogy between the way systems were originally developed in a monolithic fashion, then object-oriented, and then SOA, likening it to walls (bear with me here).

Mark started the analogy by showing us an ancient wall, composed of irregular bricks, with large mortar chunks in between, and even some pieces that had been added on years later, and cemented into place. This was analogous to our monolithic applications, held together by code, which largely could not be changed, although some retro-fit did happen, tacked into place by more custom code. The next picture was a more modern wall, composed of bricks that were all the same size, still obviously held together by mortar. This was like o-o, because the components fitted together well, but you still needed code to hook them together, and once hooked together, rearranging them is impractical. The last picture Mark showed was of a Lego “sculpture” of Harry Potter (you can see it if you ever fly into or out of Auckland Airport). This was SOA. Bricks still the same, but they could easily be composed in a lot of interesting ways, and even after being built, they could be rearranged into new compositions. Kind of licke the cement was now re-useable, as well as the bricks.

The other point Mark made was that the guy who built the Lego sculpture had several attempts at it before he got it right, which parallels the potential rapid development style possible with SOA.

Nice one Mark!