MARS Model for Offshore Development

Based on the experience we have gained over the years, we have developed an approach to the successful delivery of complex development projects that relies on the right skills at the right place integrated through a robust communication and liaison process. Our approach integrates Onsite and Offshore components to maximize the value received while minimizing the cost and risk.

Our Onsite team will work side by side with you at your local office. This team is responsible for gathering your User Requirements and packaging them for delivery to our Offshore team in India. All communication with our Offshore team will be managed by our Onsite team. This reduces the possibility of misinterpreting your requirements and reduces the potential frustration of communicating across time, distance and culture.

The onshore team is also your initial point to go for Issue Resolution. They are committed to your satisfaction and the overall quality of our work.

Our Offshore team is the development factory for completing the technical tasks required to meet your needs. Working under the direction of our Onsite team, the Offshore team will assist in design, develop the application/component, configure and test the solution that fulfills your User Requirements. This team is also fully committed to your satisfaction and the overall quality of our work.

In summary, the two groups of teams connected by a common methodology, effective and constant communications, are committed to the success of your engagements.

Phased Approach

MARS utilizes a phased approach to implementing solutions for our clients. There are well-defined milestones and deliverables for each phase. MARS believes in working closely with our clients throughout the engagement and through all the phases of development. The approach that we will adopt for the client will be based on this time-tested methodology and will be customized to the specific needs of this engagement.

During the Discovery phase, we try to understand your vision and objectives of the engagement. Often, we are engaged to help our clients to strategize and define the solutions that may be required to meet the vision and objectives.

The requirements for the envisioned solution are determined through interviews and interactions with the various stakeholders. We typically schedule interviews and discussions with the appropriate client personnel to validate and confirm the requirements and to uncover specific details and features relating to individual processes and components.

During this phase we will also identify the specific needs for integration with other systems and for data migration, if any. We will work with the client to define the 'acceptance criteria' for the solution to ensure compliance with the requirements. This definition will be used during final acceptance of the implemented solution.

By the end of this detailed requirements phase, we will firm up the technical architecture of the proposed solution and develop a detailed project plan that identifies all the tasks and the resources.

Based on the detailed requirements and the technical architecture identified, we will develop the detailed design specifications for the solution. We will also identify any specific hardware, software, networking needs, sample data and test instances for systems with which the solution will need to integrate.

At the end of this phase, a programming guideline document will be created that will define the approach to application coding. We will also update the project plan with the specific tasks and resources required for the build phase.

During the Build Phase, we will develop the solution based on the design specifications. This will include the database as per the data model developed during the Design Phase.

In this phase, the developed components are tested individually and then integrated. The integrated system is completely tested for functional compliance with the requirements.

As part of this phase, we identify the relevant milestones such as unit testing, integration testing, and delivery for QA and testing by the client's IT team. The project plan will identify junctures for controlled release(s) of the solution modules for QA and testing, to ensure effective testing, review, feedback and fixes, each step designed to ensure that the final deliverable meets the project requirements.

Once the various modules have passed through QA and testing, we will support the client through the integration, QA, testing, acceptance and deployment process, based on the criteria defined by the client.

Project Delivery Setup

Based on our experience in executing Enterprise scale engagements, we recommend a 3-tiered setup consisting of the following environments.

  • Development Environment
    • This is the environment in which all the development takes place. The Development team deploys the application on the Development server, tests it and prepares it for deployment on the Staging server.
  • Staging Environment
    • This environment is identical to the Production environment and is primarily used as an approval bed from the client. All the code from the Development server is moved to the Staging Server. The client verifies and validates the implemented functionality and also approves them before moving it to Production.
    • Acceptance typically happens in this environment
  • Production Environment
    • This is the "Live" environment where the application will be hosted.
    • This is the environment where all the final code will be deployed from the Staging environment.

The process recommended is very strict and is intended to ensure that the "Live" environment is not corrupted accidentally. The Production server is never updated directly from the Development environment. Any updates to the application will be first hosted on the Staging environment for verification and, once approved the code is moved by the client IT team from the Staging servers to the Production servers.

In this case, given that development will primarily take place off-shore in India and given the other security and connectivity concerns, we propose the following approach.

A development environment will be established at MARS development center in India and the staging/test environment at the client. During the course of the project, when the editions have been developed, tested and deemed ready for review by the client, we will create a VMware image of the entire application and post it via VPN to the staging environment. The client will review the application on the staging server and provide us feedback. MARS will deliver the appropriate updates via VPN. During the maintenance phase, every release will follow a similar process.