As a business manager or integration architect you want your integration team meet deadlines and deliver value? Do yourself a favour and at least read this, before you make promises you not able to keep J
The post contains prerequisites for a n integration project which contributes to the overall predictability of the delivery. We use the described approach and including pre-conditions for the integration project deliverables.
We noticed ourselves that if you skip on or more steps, the integration project risk will increase dramatically.
The roles mentioned in the blogpost are as follows :
- Business Owner: manager responsible for the business which benefits from the integrations.
- Business Employee: person who works for the business, reports to business owner
- Integration Architect: Integration Specialist who is responsible to design the integration design which will support the desired business process flows
- Integration specialist: builds the integration according the integration design
- Endpoint: API, FTP, or any other means to put information into an application
- Integration: software, code or scripts that arrange that data is transferred from one endpoint to the other
A healthy software integration project approach.
- Create a global list of functional process flow. [responsibility Business Owner, to be described and approved by Business owner]
- Create global list of all included integrations per process flow. [responsibility Intergration Architect, to be described and approved by Integration Architect]
- Create a Name & ID per integration [responsibility Intergration Architect, to be described and approved by Integration Architect]
The name should be functional descriptive Like “Post vacancy” Or “Send invoice”
- Create a Functional Process Flow [responsibility Business Owner, to be described and approved by Business owner]
This contains a description of the functional flow enabled by the integration. For absolute clarity a visual representation of the flow must be delivered including screenshots of the relevant GUI elements. For each process a process owner should be available. Example “When a vacancy is created or updated in HRM System, the (updated)vacancy is posted to the HRM Company’s website. Once a vacancy is no longer valid, it should not be visible on the website anymore”. (+ flow, + screenshots referring to the fields and functionality)
- Create Testcases and testdata[responsibility Business Owner, to be described and approved by Business employee ]
describe the most important steps to take in the application(s) and the desired outcome in order to check if the integration works.
Example “Create a new vacancy in HRM System, check if this vacancy appears on the HRM Company’s Website. Press the publish button. Desired result: After refreshing the HRM Company’s website the vacancy should be visible on the website. “ The deliverables from 3 will help to define the testcases.
- Create an Integration sequence – [responsibility Intergration Architect,to be described and approved by Integration Architect, Based on functional flow]
This contains information and a sequence diagram showing the information that is being send from one endpoint the other. This can contain 1 or more integration sequences” For example
“1. Every time a vacancy has been created and the publish button has been pressed , send the vacancy data to third party API.
2. Everytime a vacancy has been updated, and the publish button has been pressed send the vacancy updates to the HRM Company’s website
3. Every day at 00:00 select all the vacancy’s where the expiry date < current date. Remove these vacancies from the website by calling the remove API for each vacancy” A sequence diagram picture can be added”
- Obtain Endpoint (Field) information: [responsibility Business Owner, to be described by Application Endpoint suppliers] name, type, description of endpoint field together with references where the field can be seen in the applications GUI.
- Create Mapping information: [to be described by Integration Architect, Based on Endpoint Information] In which field on Endpoint 2 should the information of the individual fields of endpoint 1 be stored and how should it be transformed. For example: “Name” should be stored in “Last Name”. Transformation: none. “House number” should be stored in “Number”. Transformation: convert to integer.
- Applications should be functional ready [responsibility Business Owner, to be arranged by 3d party application/endpoint suppliers]
When creating an integration, it should be possible to use the endpoint applications in order to see check if the integrations works.
- Application and Endpoints should be described and fully functional in Development, Acceptance and Production environments [responsibility Business Owner, to be arranged by 3d party application/endpoint suppliers]
- Development environment: used by Integration Specialist/Architect for developing and testing the integration
- Acceptance environment: used by Business Owner to test and accept the integration
- Production environment: the Business Owners production environment
- Endpoint experts available [responsibility Business Owner, to be arranged by 3d party application/endpoint suppliers]
When creating integrations, Endpoint experts should be available during development and certainly during testing and react instantly if needed. This is to avoid situations that the knowledge of the work has to be recovered because the work had to be stopped.
For end to end tests this is a 100% requirement and also for development this will also EXTREMELY speed up progress. If it has not been arranged, there is a high risk on delay and budget overrun.
- Formal acceptance: i.e. checking al the predefined testcases [responsibility and to be arranged by Business Owner]
Busness Owner will deliver a test report to inform Integration Team in writing which testcases did not pass, including a reference to the issue, which will be described and registered in an issue tracking tool. Integration Team will correct the issues.
- Deploy to production [responsibility Business Owner, to be arranged by Business Owners DEVOPs team with the help of Integration Team]
Deploy and sanity check the accepted integrations to the production environment.
- Maintenance and support [responsibility Business Owner, Business Owners DEVOPs team with the help of Integration Team]
Discuss and agree on maintenance and support on integrations. Define and agree on the needed response times in case of problems.
In order to get things done, the focus should be on the integration with the highest priority. If we cannot proceed because needed information / resources are not available, we will continue to go on with other integrations. Building the integrations will only start when points 1-10 are available. When the requirements will change during the process, more work (hours) will be needed in order to finish the integrations and deliver value for the business owner.
‘make hay when the sun’s out’
When information is not delivered within reasonable time and the work has to be stopped for more than a week, extra hours are needed to restart the work. If you make sure that questions can will be answered within 1 day or if possible directly for example using chat tools like Slack, it will save you a lot of time and frustration.