Adam Bosworth on KISS

Adam Bosworth's speech

Adam Bosworth's an interesting guy, and very smart, and has been deeply involved in web services and many related technologies for years. He really knows this stuff. And it's interesting, because one of the key Web Services technologies is SOAP, a loosely coupled, "webbish" way of doing remote procedure calls.

[Aside #1 : If you feel your eyelids getting heavy around now, I appologize for not labeling this entry as "GEEK" but I thought it was border line]

[Aside #2 : I wonder whether the term "Web Services" is now dated, and what the more au courant term is. Perhaps "service oriented architecture". If so, please accept my appologies for not being fully PC]

[Aside #3 : I see that Aside #1 and #2 are both appologies. I should have labeled them Applogogy #1 and #2. I appologize.]

Anyway, if you've followed SOAP and the related and simpler standard known as XML-RPC you will have noticed a big difference, particularly in the degree of complexity in each scheme. And by the way, SOAP has spawned a whole series of related formats or standards, one more complicated than the one before it.

Anyway, Adam Bosworth, closely connected to the origins of SOAP, in this speech gives an empassioned plea for what we know as the "KISS" principle. Where I went to school, KISS stood for "Keep it Simple Stupid" (yes, I didn't get out much 🙂 but Adam Bosworth uses to mean Keep it Simple and Sloppy.

This argument about how simple is too simple is an important (and not new) one in our field. Adam Bosworth's article is a good piece because it collects together many of the traditional points as well as clever phrases which are used in this debate which we see in our field in many different guises, and it makes you think.

I don't have the answer or really a clear opinion. You can rattle off standards / protocols / formats / languages which are easy to understand (for example RSS 2.0) and explain and those which are thoroughly inscrutable and confusing (for example XML Encryption.)

I could cite a dozen other examples , but I won't.

When I say I don't really have an answer or clear opinion, here's the reason.

When I read something like the XML Encryption standard, I get totally lost. My default conclusion is that it's just over my head, and whoever designed it understood the the subject matter better than I, and I just am thankful for good libraries to call. But on the other hand, I have seen plenty of examples of totally overengineered systems and architectures to know that unnecessary complexity is definitely a disease that inflicts us in this field.

So I am not ready to say one way or the other that simpler is always better, or that one approach (for example SOAP) is clearly inferior to another one (for example XML-RPC.) Adam Bosworth's piece won't answer this question, but it is thought provoking (as you can see, because it provoked me to write this little piece)