I am currently working on an Integration solution for one of our clients. The solution is a general integration between two systems. The main thing for me was that I wanted to come up with a list of questions that I need an answer for so that I can start planning and designing the integration solution.
I thought about a list of general questions that most (if not all) consultants working on any integration solutions will need to have complete answers for before starting the design phase, let alone the development phase of the project.
In my opinion, the list of questions are as follows (not in real order – just a braindump!):
- How many environments do you have? Development, Test and Live? (recommended) or is the project is still in development so you can use live environment for development? Where will be the test environment later on?
- Is this a direct integration or in-direct integration? Is this an instant, event driven integration or a periodic scheduled integration between two systems? Are their queues for data to be migrated?
- What backup and restore operations can you do? The ability to Backup and restore data is vital.
- What integration application or tool are you going to use or is available? SCRIBE, SQL Server Integration Services, Web Services (Microsoft .NET Web Services), console applications, plugins? What SDK will you need? CRM SDK and CRM API for example?
- The Environment structure: How many physical servers? Where are these servers located? Where is the integration tool or application installed?
- How and When can I get access to the environment? Access to all servers is required including access to all databases and to all applications. For example: Access to Microsoft Dynamics CRM application (via webclient) is essential to confirm that data imported to a CRM has been migrated successfully.
- What type and format of extracts and data imports? CSV (Comma separated Values), XML, i-Doc, sql flat files, batch files, etc…
- Where will the extracts be imported? directly using the tool or via an FTP server? Is an SFTP server required?
- Are their duplicates? If so where, and what classifies a duplicate?
- Are there data entry standards for each application in the overall integrated system?
- Are there fields that are required in each system part of this integration?
- Are there fields that aren’t used?
- Are there any fields with null values?
- What relationship does the data has? are there fields which are dependant on others?
- What are the primary and forign keys of all tables in each system that will be part of the integrated system? Any field that does not allow null, business required (and preferably business recommended) must have a data upon migration (Defauls can be used then).
- Overall high level mapping between the different systems.
- What is the value, length, and format of fields/columns in the source system? What is the corresponding value, length and format in the target system?
- Are there any Pick Lists? A cross reference is required to map source and target values.
- What Data validation is required and is acceptable by the client and the project stakeholders?
- Differencing: What are the business rules for differencing? What data does not need to be updated and when? what data is needed to be updated based on the business requirements?
- using Default values for all required fields and columns in the target system to avoid causing any errors.
This is the list I have thought of so far. I will keep on updating this list as and when I think of something important that needs to be considered.
Let me know if you have any comments or feedback on these questions and tell me whether or not are these questions helpful.
Thanks for reading.