Development of quality software is a complex process. It is invaluable to have formally approved company-wide document that describes steps leading to creating of applications with required functionality within defined time frame. We adopted best practices of software development companies like ours, and invented some unique techniques that have led to high quality of our services
Initially client provides us with system requirements specification or design prospectus. (If Requirements do not exist yet, please check the FAQ page for the prework process). Additionally, it is very helpful to have discussions with the client regarding the system functionality. This process may include interviews with expected users, and reviews of existing software or documentation. Based on the project specification, the Project Coordinator formulates a draft project plan. This document is used to coordinate project management, scheduling, and communication. Ractors system analysts present the analysis of the project requirements as a draft of the Software Requirement Specification (SRS). This specification will be used in the next phase to build the first prototype.
This preliminary mockup of the application being developed is made available on our Prototype Server. It demonstrates the architecture and interface design. Building a prototype early in the development process has several benefits:
- Demonstrates system interface/functionality
- Exhibits application “look and feel”
- Provides a core system for use in Phase 4
Formulation of the System Design Specification (SDS) and Test Plan is made. The SDS is a detailed schematic for coding, including:
- Database Design (Logical and Physical)
- Protocols and Software Interfaces
- Algorithm Descriptions
- Variable & Function Definitions
The Test Plan outlines specific reproducible tests, manual or automated, to verify the accuracy of implementation. Test criteria include:
- Database Integrity
- Functional Correctness
- Fault Tolerance
- Stability and Reliability
Code and Unit Testing
Unit testing is the most efficient way to detect as many errors as possible. Each module or method of the application is tested it by itself. The main advantage to unit testing is that it puts you much closer to the errors in a particular piece of code, thereby making error detection quicker and easier. Unit testing prevents many errors from occurring, catches existing errors as early as possible, achieves the fullest possible coverage of your methods, and uncovers problems that later levels of testing are unable to detect. The developer is responsible for unit testing all methods and modules of his code, results of the unit test are formally peer reviewed by other members of the development team.
Although we pay close attention to in-development unit and application testing, everyone knows that bugs in released systems are inevitable. Each released application automatically gets account within our Bug Tracking system. This system has Web and Email interfaces and allows owners or users of the application to submit bug/issue reports to us and monitor bug fixing process. Additional advantage of this mechanism is to allow accumulating of users suggestions on improving of the product. These suggestions that can form invaluable base for improvements/features list of the next version of the application.
Beta testing is a cyclic process of release and revision, ultimately resulting in the final release version. Testing is conducted according to the Test Plan after the production of each beta version. The test results and the software itself are reviewed and once the software satisfies quality requirements and has been accepted by the client, developers create the final release version.
To ensure that operations proceed smoothly after installation is complete Ractors offers a range of post-deployment and support services, including:
- Site Administration
- Site Monitoring
- Data Migration
- Content Management
- 24×7 Technical Support
- Software Updates
- Content Conversions