The following text is copyright 1993 by
Network World, permission is hearby given for reproduction, as long as
attribution is given and this notice is included.
NIH as a corporate
culture
By: Scott Bradner
A while back I talked
about the types and importance of standards. Well, I'm not done yet, for there
is more. (For you literary folk, that last phrase is a quote.)
One feature not
mentioned last time is that a standard protects the buyer. It can ensure that
products purchased from various sources or at various times will be compatible.
At least that is the theory. If there are too many options in the standard this
guarantee of interoperability can fall short. One vendor can pick a set of
options to implement that does not match the set picked by another vendor. Both
vendors can claim compliance to the standard and yet not be interoperable.
The OSI standards often
exhibit this type of problem. For quite a while interoperability between
versions of X.400 was problematic because of the extensive set of optional
features. A number of governments have attempted to reduce the probability of
incompatibility by issuing an options checklist for these protocols. In the
U.S. this checklist is the Government OSI Profile, better known as GOSIP.
Purchasers of OSI "compliant" products would do well to insist on
GOSIP compliance in addition.
On a completely
different topic. A standard is only as good as its acceptance. There are a
numerous reasons that a standard may not play in the marketplace, from the
simple case where a standard defines an unneeded or unwanted function to the
all to common case where the standard is written in gibberish (and often
unclear gibberish at that.)
Unfortunately, there is
another common reason that some standards are not as widely adopted as they
might be: the corporate Not Invented Here (NIH) syndrome. 'If we did not do it,
it can not meet our needs.' In addition, some companies fear the open
marketplace and create their own "standards" in an attempt at product
differentiation.
Historically, Novell
could be found in this camp. For example they created their own protocol rather
than use any of the existing standard ones. On this front at least Novell is
coming around. They are adding much better support for the use of TCP/IP, even
for client to server interaction. But they have not completely chosen the open
path. They recently introduced NLSP, a new routing protocol. This protocol
solves a number of problems associated with building large Novell internets
but, from a few feet away, is almost indistinguishable from the existing
international standard routing protocol IS-IS. Of those features that do
differentiate it from IS-IS, many of them could be supported by the proposed
Integrated IS-IS extensions to IS-IS.
The vendor most
constantly exhibiting the NIH syndrome is Apple Computer. I've mentioned
Apple's reluctance to support TCP/IP in this column before but an even better
example is the much anticipated Open Collaboration Environment (AOCE). AOCE
contains a lot of 'almosts'. Its security is almost the same as MIT's Kerberos
and its basic function description is almost the same as the Open Software
Foundation's Distributed Computing Environment (DCE). If AOCE was DCE, Macs
(like the one I'm writing this column on) could be part of a corporate
distributed computing environment involving computers from a dozen other
vendors. Instead, my Mac will remain effectively a standalone device, unable to
make use of the resources starting to become available in the University
through DCE. Apple claims that it will (eventually) produce AOCE interface to
other systems, but why should we have to wait for Apple to program software for
an IBM mainframe?
Standards, by the nature
of their adoption process, do not answer every need for every vendor. Even so,
those vendors who embrace standards grow the market for their products. Take
TCP/IP and UNIX as examples. This writer wishes that Novell and especially
Apple, would learn that lesson.
The disclaimer of the
month is for the C programmers among you and comes from many sources: #include
<std-disclaimer.h >