Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Make sure you have a clear understanding of the specification

When you are developing an implementation, make sure that you have a clear understanding of the specification of the protocol and the artefact. The specification is meant to be precise enough to enough to ensure that your implementation is interoperable with others or is at least very close to be. In case of questions or unclarities, do not consciously make assumptions but contact the author of the specification. Interoperability  Interoperability is primarily a matter of correct and consensual interpretation of this specification. Assumptions made that are not shared amongst the community of implementers will impede a proper implementation and will require adaptations in a later stage in the software development lifecycle, with a higher cost.

...

Document the used version of the specification

Always choose the latest version of the specification when starting the process of developing a new new implementation. Document the version number and make this information accessible for the end-users. Not doing so will cause misunderstandings and interoperability issues over time. Providing the user with clear information about the version and revision numbers of both the implementation and the implemented specification will help to avoid this.

Be aware that it is a very unlikely event that all applications migrate their implementations at the same time to a newer version of the specification. 

...

When migrating your implementation to a newer version of the specification, make sure that you have identified and implemented mitigation to the non-backward compatible features of the specification. This is needed to be able to correctly consume artefacts produced produced by other applications/implementations using the older version(s) of the specification. 

...

The optional character of a specified feature, when concerning an artifact that may be produced and consumed, is a common source of confusion and interoperability failure. An artifact MAY implement a feature. This clearly means that a compliant device producing such an artifact MAY omit this feature. However, any compliant device consuming such an artifact MUST be able to process this feature, should it be present (unless specified otherwiseotherwise). In this way, useful or important information included in the optional feature, is not omitted by the consuming application.