Our software development process includes project Kick-off, software requirements analysis and management, software project planning, software project tracking and management, software quality assurance, software configuration management, testing, release & maintenance.
After the signoff of the contract with the client, identified individuals form a team for the project. The team formation initiates the team building activities. The investment in team building activities helps team-members understand skills and strengths of other team members, which helps team coordinate amongst them with a greater effect.
The Project team identifies different roles to be performed for the current software development along with the responsibilities of each team member. The team collects all the pertinent project documents / information. The development environment is also created as the part of the project kick-off process.
Along with client and project information, following documents are provided to start the project:
We do a thorough analysis of customer requirements to determine needs (elicitation); address needs (triage) and document the desired external behavior of the systems (specification). If the client provides these specifications, then the team understands these requirements and analyses the requirements for its completeness.
Different documents that are created or referred by team are:
Planning is one of the critical phase of the project management. It encompasses different activities like creating and reviewing the software project management plan containing high-level architecture, delivery and deployment schedules for software development, information and capacity architecture, and third-party integration activities.
While planning, especially in the software development outsourcing environment we realize the communication (or lack of it) has the biggest impact on the outcome and smooth execution of the project. To highlight and streamline the communication process FIPSAR prepares the communication plan, which is to be approved by the client at the commencement of the project. The communication plan outlines the periodicity, channel and responsibility of the communication. It also details about the overlap time (overlap of the working hours) for the real-time discussions along with the preferred timings of availability of the identified project team members and coordinators from the FIPSAR and client’s side.
One of the key aspects of FIPSAR’s planning process is the risk identification and preparing plans for risks’ mitigation, monitoring and management. It is the systematic process of identifying, analyzing, and responding to project risk. FIPSAR has developed the risk-aware (not risk-averse) culture that requires a proactive approach to the management of risks in all aspects of the organization.
The design and execution of the project is carried out as per the decided software process model. FIPSAR ensures the execution of the project is as per the laid down plan and the status of the project is being communicated to the client on the regular basis. The project is monitored for the risks and anticipatory actions are taken by project coordinators under the guidance of FIPSAR leadership.
FIPSAR emphasis on the review of the each of the activity that is being carried out at FIPSAR. This includes reviewing the document to the review of the code. Different review mechanisms we generally followed are:
Organization wide, FIPSAR has implemented the project management and development follows the best industry practices. We have consumed the best practices from SEI-CMM level 5 and Six Sigma Methodology and constantly work towards optimizing our processes and reducing defects.
The Quality Management System (QMS) is based on the ANAAR philosophy, which focuses on the customer satisfaction, results through processes and the involvement of each of the team member.
While a project is being executed at FIPSAR, FIPSAR follows a set of documentation, project development methodology and testing techniques, some of those can be written down:
We understand software development as process where bugs are inevitably injected in the application under development when software is modified while application is in debugging mode. Under such incremental change scenario of code development, version controlling becomes one of the important aspects of software development process. Same is true for documents and reports that are prepared in project development and testing phase of the project and are frequently updated and referred.
The configuration management of the project specific documentation and code is planned and executed by an identified responsible project team member. Documented created and used by team members other than the configuration management tools are:
After the various components are developed, they are integrated and rigorously tested as a complete solution. Application behavior is compared with the initial specifications and any deviations are identified and corrected.
The testing team also validates the bugs received from client if any n the trial implementation phase of the project. A thorough regression testing is done to ensure all the test-cases are being passed and the testing approach and schedule is as per the Test plan.