Approach to Implementation
We believe there isn’t a one best approach to project implementation. Every project is different and thereby the implementation will differ. That said, we do believe that building a system iteratively and keeping the business users constantly involved throughout the process gives us the best chance of success. Our methodology combines the best practices of Agile and Waterfall into an end 2 end software development approach.
Requirements Validation
Our experience has show that details defined prior to project start can differ from the actual requirements from the project. Here is when we plan to assess the current state and understand what is needed to accomplish the project goals. We do this using the following activities as a guide.
Review baseline requirements
Identify gaps between requirements and expected future state
Compile list of prioritized requirements in the form of user stories/backlog items
Plan sprints and define sprint completion criteria
Outputs Include: Project Charter. Project Management Plan, Gap Analysis Document, User Stories/Work Items, Sprint Planning Document
Configuration Setup
Setting up the environments is a key part of setting up the project for success. An enterprise project, whether deployed to the cloud or hosted on premise requires multiple environments each serving a specific purpose. Here is when we plan, work with the infrastructure teams and setup the environments needed. At a minimum, our activities will include:
Setup project management site
Setup project requirements management site
Setup development/test/UAT/staging/production environment
Setup project code/release management process
Outputs Include: PMO Site, Team Foundation Server Site, Development Environment, Test Environment, UAT Environment, Staging Environment, Production Environment.
Development
This is the central phase of our methodology on any enterprise application development project. This is where we actualize the requirements into a working functioning system. We do this in iterative manner where we are constantly validating the coded functionality through a series of user demos. During development, our focus is around the following activities:
Select user stories/backlog items for sprint
Conduct daily standups to address requirements/clear bottlenecks
Design UI based on stories
Develop functionality based on stories
Test functionality based on acceptance criteria within the story
UAT functionality to ensure compliance with business objectives
Conduct sprint retrospective
Outputs Include: Sprint Backlog, Wireframes, Software Increment, Test Scenarios, Burn-down Chart
Data Migration/Conversion
We include this phase on projects where to need to phase out any existing systems and replace it with the new application. In such cases, we move data from the existing systems into the new through a series of mock conversions and migrations. We also follow an iterative method to achieve the data conversion/migration objectives. Each mock conversion is an iteration. The activities in this phase will include the following activities:
Define data conversion/migration scope
Develop conversion approach i.e. number of cycles, scope/cycle, users to verify converted data
Apply conversion logic
Verify converted data
Make changes to source data
Provide reconciliation information
Repeat conversion cycle
Outputs include: Final Data Model, Conversion Specifications, Verification Samples, Data Update Items, Reconciliation Document
Testing
With the testing phase, we will aim to get the system ready for rollout. We will do this through an alpha, beta and final release. With each release we will undertake activities to ensure system functions, performance and security accreditation aspects are completed as planned. The activities include:
Develop End 2 End test scenarios
Test with converted data
Complete security testing
Complete Performance testing
Implement Alpha followed by Beta releases
Outputs Include: End to End Test Scenarios, Test Results/Recommendations, Security Accreditation Document, Performance Metrics/Results
Deployment
Deployment is final phase of our methodology that includes activities to complete rollout of the proposed system. We will create an deployment checklist using a formal cutover process. The activities will include:
Implement cutover plan
Implement training plan
Finalize code/release notes
Go-Live
Outputs Include: Cutover Checklist, Training Plan, Implementation Plan, Support Plan