At Parsv Technologies., we follow a well-defined process, enabling us to provide quality services in a planned manner, thereby, actually minimizing changes and quality issues after development.
We follow the basic mantras of software engineering practices-Analysis, planning, design, development, testing and deployment. A brief explanation of the terms is as under.
Define: - It is extremely important to define the complete scope of the requirements. This involves a detailed study by the project manager to ascertain the requirements. The process starts even before the project is awarded to us as our estimates are based on the amount of work involved and the technological challenges presented. To estimate these we keenly study the project and the application scenario in the real world before giving a quote.
Plan and design: - Once the project is awarded to us, a SRS (software requirements specifications), prototype with High Level Designs (HLD), User Interface, Class Diagram and Database Diagrams are prepared. These design documents and prototypes are then sent to the client for approval.
Develop: - Upon client's 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.
Test: - The testing phase begins with planning. As soon as HLD is frozen, we prepare the test plans and cases. Application is tested parallel to the development making sure that there are no errors. Once the development is complete, the application is tested from scratch to make sure that all modules are well integrated.
Debug: - The test results are then put into action for debugging. Once the developers fix all the bugs our quality team verifies the bugs and reports any reproduced bugs. The process continues until all the bugs are fixed.
Deployment: - Project leader reviews the application and makes sure that the application fulfills the Service Level Agreement (SLA) and is in line with other functional and non-functional requirements. Upon approval, the application is uploaded & deployed on to the production server.
Salient features of our development life cycle: -
Prototype and High Level Diagrams: - Documentation, though, is always necessary in a well-defined process but it is very difficult for customers to figure out upfront as to what they will be buying. Prototype and High-level diagrams help the clients to have a clue of what will be delivered after coding.
Module releases: - Every project is divided into multiple modules. As soon as a module is completed, we send the demo version to the customer. This enables the customer to track progress and notify us the change in flow if any.
Periodic review and update to the client: - The project leader reviews the project every week and the update is provided to the client about the schedule, completed targets and planned targets for the next week.
Checklist method: - Right from planning to deployment, we follow the checklist method, thereby, dramatically reducing the commonly made mistakes made by the developers while coding, releasing and deploying.
Well defined architecture: - We have created a well-defined architecture. This helps us to train the newly recruited developers and leaders quickly. Since the same architecture is followed in all the projects, it enables us to manage our work force efficiently, as every one is familiar with the architecture & can be deployed on any project within no time.
Common Libraries: - We have coded a set of libraries, which the developers use while coding the application. These are the common functions required while coding of any project. This helps in facilitating the development and virtually eliminates bugs, as these libraries are well tested and optimized.
Knowledge management: - Common functions and solutions to challenges & issues are added in our knowledge management application. We believe in solving a problem or coding commonly used function only once. This also helps us in reducing the development time.
Task and bug tracking system: - Tasks during development and bugs during debugging are the most important aspects of the projects. Generally, it becomes very difficult to manage bugs, when many quality engineers and developers are working on an application. To counter this, we have a project management application to manage/track both bugs and tasks. Use of the above-referred application with advanced reporting, tracking and auditing features not only makes it easily manageable, but also enables improvements in each project.
Source code and version control system: - Developing an application without source code and version control is a big risk. Therefore, we use Visual Source Safe for Microsoft technologies and Concurrent Version System (CVS) for other technologies.
Frequent review of SLA and planning documents by Project Leader: - Project leader is responsible for meeting all the requirements. Therefore, it is imperative for a project leader to review the development and SLA documents, regularly, to make sure that the project is on track. The reports are submitted to the management every 15 days.