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.
Discovery
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.
Requirements
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.
Design
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.
Build
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.
Deploy
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.
Based on our experience in executing Enterprise scale engagements, we recommend a 3-tiered setup consisting of the following environments.
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.