Recommendations for smooth integration are listed below.

Recommendation

Detail

Use XML

Many organizations still invent their own poor-man's XML formats, such as flat files or Comma Separated Value (CSV) files.   Non-standard data formats typically have more encoding problems for special characters than XML and are difficult to maintain.  

A small reminder here: XML is not for representing logic unless you are writing Yet Another Generic Rules Engine.  Use Java code to represent logic.

Start early

Don't leave integration to the end of the project.  As soon as the requirements are understood, allocate a programmer to the integration layer, without distraction.

Co-location

Have the integration developers (the people from the system you are communicating with) join your team for the duration of their work on the project, attending standup meetings, physically sitting with your team.  Ideally have an integration problem solver on your team for the entire project.

Wrap

Wrap the API for the integration layer in code or developers will constantly write new code wrappers with poor error handling.

Case study:

A web application had to be written quickly.  Rather than go through the pain of engaging the back-end integration team early, it was decided to write an imaginary “mock SAP” application first that emulated what was expected from the middleware group.  When finally the middleware XML was finally published, unsurprisingly the “mock SAP” integration XML bore little resemblance to it.    “mock SAP” was thrown away and most of the web application back-end code needed significant rewriting.  A new “mock SAP” was created after the re-write, and it was extraordinarily useful for testing when the JMS queues were down.  The original “mock SAP” had been a total waste of time.  

Tip: Don't start writing mock layers until interfacing data structures have been agreed.  If an API is required quickly or it will hold up the project, get a member of the team to sit with the other parties and write the API for them.  A published API that does not do what they want will spur the external party into immediate action.  

blog comments powered by Disqus