Sunday, February 19, 2006

source code != documentation

I was looking at Wesner Moise's "Smart Software" blog entry about the EU vs MS thing, and basicly he's saying that Microsoft, required to make interoperability possible for third parties, is offering both source code and documentation, and that should suffice regardless of the sufficiency of the documentation. He even says, "source code is relevant; it often is the best documentation". This fallacious. Why is code not interoperation documentation? Because code makes no distinction between what is stable and needed for interoperability, and what is just implementation - free to change. Without documentation Microsoft can simply pull the same forced-upgrade stunt they've been doing for years - change the code and break the interoperating competition. Because of Microsoft's monopoly position, this has the pragmatic effect of forcing a fresh round of Microsoft sw purchases, even amongst users who may have been using other, previously interoperable, tools as soon as they have to work with partners using the new Microsoft release. Even within Microsoft-only users I have seen this with Office releases. With the interoperation requirements specified in documentation, a Microsoft change that breaks the interoperating competition can be clearly recognised as either conformant with the pre-existing doco and thus a bug in the competition, in violation of the doco and thus a bug in the Microsoft code, or an ambiguity or gap in the doco that Microsoft must fill to clarify the required interoperation. Source code is not the best documentation; it is merely a specification of what happens to happen just at the moment. For interoperability, it is the _worst_ documentation.