Monday, April 20, 2009

Life Cycle of an Integration Project

Software Integration Projects are such projects which involve implementation of a product(s) and integrating or interfacing these with another product(s) to create an end-to-end solution for task processing. Since I belong to the eBanking industry, providing ADC (Branchless Banking) solutions to financial institutions, I'll focus most of the examples from this industry. This article covers these areas on a very high level.

In any such project, the product is either custom built by the implementation company or is a third party product; some examples of middleware products are Microsoft Biztalk server, Oracle Fusion, Websphere, etc. This article focuses on the life cycle of such implementation/integration project.

Let's take an example of a Bank requiring a SMS Banking solution for banking customers to use. The banking customers should be able to perform transactions by simply sending a SMS to a particular number e.g. If Mr. Pervez wants to check his Balance in his Account Acc123.
For making this transaction, the bank has to deploy a SMS Banking application which is connected with SMS Gateways for that particular country e.g. Mobilink, Ufone, Airtel, Rogers, etc. To fulfill the transaction in this example, the following systematic steps will be performed (on a high level):
  • Pervez sends a SMS to 4320 with the string "BAL_INQ Acc123"
  • SMS Gateway receives the message as per the subscriber and forwards it to the SMS Banking application deployed at the bank
  • SMS Application parses the message and identifies the transaction to be performed and sends it to the bank's financial middleware to process the transaction.
  • The middleware in turn sends a message to the core banking system deployed at the bank to get the balance in the customer account.
  • The core banking system gets the account balance from the database and returns it back to the middleware in a particular message format and the message is propogated all the way back to the customer.
It is to note that this is a typical integration project with 4 systems interfaced and integrated in a sequence. There're messages being passed to and fro, hence a message format is agreed between any two systems.

The following phases are involved in such integration project:
  • Business & Technical Requirements Analysis
    Product Features are compared with the Client's Requirements and required features with customizations/configurations are documented, whereas added requirements are analyzed further with the product team and either included or excluded in the scope. Simulators can be developed during this phase so that testing of integration/interfacing can be performed.
  • Offsite Design, Development & Testing
    Customization at the development center in the product is done as per the requirements. Test cases are developed by the testing team. Screen level testing can be performed as well as the services testing for components. For integration level testing with other product(s), simulators can be used to simulate those systems. This is required as the actual systems developed by other vendors are unavailable at the development premises.
  • Onsite Implementation & Integration
    Implementer takes the system to the Client premises where the actual integration of multiple systems can be performed. In this onsite implementation phase, the customized/configured product is deployed on the provided hardware and network is configured to connect with the other interfacing software.
  • Onsite System Integration Testing
    System Integration Testing (SIT) is performed to test each and every interface end-to-end. During this phase, the test results mostly show system interfacing issues and internal task processing of your product and very rarely the UI level issues. These are fixed by all vendors on their particular systems until all the issues are resolved and a complete end-to-end solution of transaction processing is ready.
  • User Acceptance Testing
    Once the system is integrated by all the vendors involved, the whole solution is prepared for UAT. During this phase, the Client side UAT testers (mostly business users) test the system as per the requirements and the UAT test scripts (test cases), being developed by them. Usually multiple bug-reporting cycles are performed during the UAT testing and at the end of each cycle the implementers fix the reported issues and provide a new release before the start of new cycle. Once all the issues are fixed, the UAT testers provide the sign-off for the whole solution to be ready for Soft or Public Launch.
  • Soft Launch/Live Launch of the System
    Each software by each vendor is prepared for the Launch, either Soft or Public Launch and a production environment is setup on the new hardware. Smoke testing is performed by the UAT team and go-ahead is provided to the implementation team. The software implementation team performs the steps for launch of the solution in an integrated environment and the system is launched for either internal or public use.
  • Post-live
    Once the solution has gone live, the systems are monitored by the implementation teams for at least a week for any post-live related issues. Issues are resolved and deployed on the production environment as per the process defined. Once the systems are stable, the software is moved into warranty period or support phase as per the agreement.
This is a typical life-cycle of any integration project. There are of course many if"s and but"s involved in the overall cycle which vary as per the project nature, size and the amount of complexity.

No comments: