RMS Software Development Life Cycle (SDLC)
- Source code control - Microsoft Team Foundation Server
- Source code scanning - Puma Scan Build - Microsoft TFS
- Build integration testing - Microsoft TFS Build Task/Release
- Management - Atlassian Jira
- Project management - Asana
The Software Development Life Cycle (SDLC) for RMS Cloud encompasses a number of phases, each concluding with a major milestone. Assessments are conducted after each phase to determine if objectives have been satisfied. Skilled software engineers are utilised throughout all phases, which results in a thorough and uninterrupted process from beginning to end. Specifically, SDLC activities for internally-developed systems/applications consist of the following procedures and phases:
New system/application and feature development
This is the implementation of a new service or addition of new features and functions to the current product. The same processes are also involved when adding major enhancements to existing functionality.
Request for new system/application or features
The process begins with the request for a new system/application, feature or tool. Authorised personnel will initiate the request. Enhancements are also taken from the suggestion box. All requests are appropriately logged in the ticketing system.
Once a request is received, RMS analyses and evaluates its market opportunity and/or operational impact. After identifying the benefits, RMS conducts a feasibility study with the assistance of multiple teams. Based on the requirements, if the feature requested can be done in a reasonable fashion, a work estimate to implement it is prepared. For complete new systems and applications, RMS estimates the market size and develops a business case.
Estimate and HW/SW requirements
Along with estimating the effort and time required to implement the new feature, an estimate of hardware and software required for development and final deployment is conducted. These estimates are passed on to management for final approval.
After reviewing the business rationale, RMS decides whether the cost/benefits and strategic direction warrant the development to proceed. A review of the business rationale for a completely new project includes studying market opportunity and conducting a competitive analysis. As soon as the project is approved, the process progresses to the development and deployment phases.
A detailed requirements analysis is conducted and documented in the form of a requirements specification. Activities include obtaining copies of documents used and interviewing personnel for major activities during this phase.
Technical personnel develop a detailed design of the various activities involved, which is reviewed by the design and development team. The final version is presented in a design specifications document. If the feature or tool is to be a part of an existing system/application, the existing design document may be modified in lieu of creating a new document. Test plans and procedures for system tests are also developed.
Once the design is finalised, the actual implementation of the system/application, feature or tool begins with a test in a development environment. Once any errors found during the testing stage are corrected, the application code is ready for compilation and scanning.
Compilation and scanning
Once implementation is complete and the build becomes a release candidate, code is compiled and scanned on the build server to ensure no critical, high or medium security defects are present. Present defects are rectified before the build is released. Low-risk items are analysed by a senior member of the development team and fixed if required. Once the build passes security scanning, it is released to a test server.
Quality assurance and testing
Once the modules are moved to a test server and integrated into the test environment, any necessary test database tables and stored procedures are also created on the test server(s). The test environment is configured as a replica of the production environment or a specific client environment; however, there may be external interfaces that, at times, may not be duplicated, and approximations may be used. Testers then assess the new modules in this test environment. Test cases and scripts are written and documented as required. Any discrepancies are resolved with the development team, and any other additional testing is conducted. Customers and/or third-party users may be involved at different levels in this phase of the project cycle, based on a mutual understanding of verification requirements. Test results are documented and reviewed with development personnel and management for final approval.
Release for production
Once the system/application, feature or tool is successful in the test environment, RMS approves the release for production. Modules are moved to the production servers where functionality is tested after all modules are updated.