We follow the basic rooted mantras of software engineering practices
Analysis, Planning, Design, Development, Testing and Deployment.
First is to define detailed scope of the requirements. This is done through a detailed study by the project manager to know the requirements. This process starts even before the project is awarded to us as our estimates are based on the amount of work involved and technological challenges. To estimate these we keenly study the project and the application scenario in real world before giving a quote.
Plan and design
Once the project is awarded to us, a SRS (Software Requirements specifications), Prototype with supporting High Level Designs (HLD), User Interface, Class Diagram and Database Diagrams are prepared. These design documents and prototype are sent to clients for approval.
Upon approval, we start coding. All our codes are well commented and follow naming conventions. We have a well defined multi-tier architecture and each developer adheres to it.
Testing phase begins with the planning. As soon as HLD is frozen, we prepare test plans and cases. Application is tested parallel to development making sure that there are no errors. Once the development is completed, the application is tested from scratch to make sure all modules are well integrated.
The testing results are then converted in actions for debugging and solving the bugs. Once all the bugs are fixed by the developers Quality team verifies the bugs and reports any reproduced bugs. This process continues till all bugs are fixed.
Project leader reviews the application and makes sure that the application fulfils the Service Level Agreement (SLA) and is in line with other functional and non functional requirements. Upon approval application is deployed to the production server.
Quality is the most important part of the development process. We have a dedicated Software Quality Assurance team. The team is responsible for the quality of the applications used in the development process. Each application goes through the process of testing as per well developed checklists.
Once project planning and documentation is completed, the QA team prepares test plans and test cases. These are executed by Quality Testing Engineers. The application goes through various types of testing like Validation testing, functional testing, performance testing, load testing, stress testing, usability testing and more. Once the bugs are removed, optimization issues and other quality concerns are fixed by the developers. The application is tested by the Quality team again to make sure each and every issue is fixed. This type of testing is known as regression testing. Any reproduced issue is sent to the developers again for fixing. This process continues till all issues are closed successfully.
To manage this process, we have a comprehensive quality and bug management system. Bugs are tracked closely and developers are answerable if any bug is reproduced two times. The quality process does not end with deployment of the application. Once the application is completed, Quality Manager is responsible for generating report for each developer comparing improvement from the previous project. Developers are answerable for repeated mistakes. This ensures continuous improvement.
To conclude Quality is a priority at Semantic Solution