Using standards to protect yourself against change

Technology continues to change at a furious pace. In a recent column (“Disposing of our old technology,” CWC, July 30, 1999, page 16), I recommended a strategy of adopting standards to cope with changing technology when we build solutions. We can minimize the effects of technology change by exploiting standards, because standards are usually long lived, backward compatible, and/or have a well-defined migration path.

However, even this strategy has some pitfalls.

Standards Change

Standards evolve to meet changing requirements. It is unrealistic to set a standard and not evolve with it. A current example of an important standard that is changing fairly fast is Java. Selecting Java as a standard for application development is a good strategy. But during our change from the Java Development Kit Version 1.0 to 1.1, some windowing code we wrote no longer worked. Of course sticking to Version 1.0 would not be a good strategy either.

The solution is to stay reasonably current with any standard technology, carefully watch the technology’s evolution and monitor published backward compatibility issues. When you know there are going to be future changes, try to isolate their impact in your code or layer your software so changes can be hidden.

Standards Fall Out of Favour

There was a time when the International Organization for Standardization Open Systems Interconnection (ISO OSI) network standards was purported to be the future of networking.

A number of networking companies invested significant effort attempting to deliver products to support these standards that were going to interconnect the world. However, today the TCP/IP family of standards is the clear choice.

The networking choice is easy in hindsight, but in order to choose “the winning standard” of the future, give preference to open or pervasive standards, and to standards that are endorsed by significant vendors.

It is going to be tough to choose amongst the many emerging standards for e-commerce. However, it is better to use XML-based recommendations from organizations like CommerceNet than it is to invent your own. The very nature of XML lends itself to evolution and the ability to implement backward compatibility.

Standards are Hard to Enforce

No software developer actually likes to follow standards. It is always easier to design something based on the current system or to follow the whim of a designer, rather than to search for and follow a standard that may be elusive.

However, enforcing the use of standards is simply good project management. Explain to the team why the standards were chosen, encourage their use and provide incentives wherever possible.

Technology changes at all levels — nothing is immune. New applications are being written, operating systems are being enhanced and new hardware is being invented. Standards are being improved and old boundaries are being broken.

To defend against this change, standards are available for message formats, protocols, interfaces and infrastructure services. Standard consortiums are being set up to handle industry specific requirements, and are being endorsed by major industry and technology players.

What we must do is design and write software that follows standards. We need to isolate or layer code that may be subject to change in the future. We should choose flexible standards such as XML that can be more easily changed and enhanced. We must be proactive in our search for and adoption of standards, and always be mindful of the pitfalls.

Nelson is chief scientist and managing director of the Applied Technology Research Group of EDS Systemhouse. He can be reached at