Our Software Development Process
After the signoff of the contract with the client. Identified individuals forms a team for a project, This team formation initiates the team building activities, We consider the investment in the 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 of the team members. The team in mean-time ensures all the client specific and project specific relevant information is with its latest version is available with them. The development environment is also created as the part of the project kick-off process.
Along with the client and project's information, following documents are generally provided to start the project:
- Functionality Matrix Document
- Effort Estimation Document
- Project Understanding and Solution Approach
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 these specifications are provided by client, then the team understands these requirements and analyses the requirements for its completeness.
Different documents that are created or referred by team are:
- Software Requirement Specifications
- Functional Requirements Specifications
- Non-functional Requirement Specifications
- Requirement Clarification Documents
- Project Vocabulary
- Requirement Change Impact Document
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 Neosoft prepares the communication plan which is to be approved by 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 Neosoft and client's side.
One of the key aspects of Neosoft 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. Neosoft 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.
- Software Project Management Plan
- Software Development Plan
- Risk Mitigation, Monitoring and Management Plan (RMMM Plan)
- Communication Plan
- Project Team Structure
- Project Schedule
- Project Review Plans
- Software Planning Data
- Software Engineering Facilities and Support Tools Plan
The design and execution of the project is carried out as per the decided software process model. Neosoft 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 Neosoft leadership.
Neosoft emphasis on the review of the each of the activity that is being carried out at Neosoft. This includes reviewing the document to the review of the code. Different review mechanisms we generally followed are:
- Peer reviews
- Code Walk-through
- Formal Reviews of Selected Milestones
Neosoft critically looks into the requirement change control procedure. We understand and respect the real world's business fact that the requirements that were considered at the start of the project can change being the dynamic business scenario with the need to keep pace with competitors. For the requirement changes, Neosoft confirms the requirement changes from client, analyses and validates the changes in requirements. Understanding the business needs the appropriate solutions are suggested. Neosoft prepares the Requirement Change Impact Document to analyze the impact of the change on the different aspects of Project execution including but not limited to system architecture, design, schedule, deliverables, testing and commercials.
To facilitate the better and transparent communication on the status and monitoring and management of the project, Neosoft has customized the Project management solution to fit the needs of Neosoft client. This Project management tool is online and project coordinators and team updates the current status of the project which can be viewed by client anytime from anywhere. Documents that are being generated and used by project team are:
- Project Status Reports
- Meeting-Minutes, Communication Log
- Revisions of Software Development Plan
- Requirement Change Impact Document
- Project Coding Standards and Code Repository
- Project Tracking and Recording Procedures
- Neosoft Project manager
Organization wide, Neosoft has implemented the project management and development follows the best industry practices and are ISO 9001-2000 complaint. We have compiled 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. The ISO 9001-2000 certification confirms the effectiveness of the QMS and continuous/continual improvement.
While a project is being executed at Neosoft, Neosoft follows a set of documentation, project development methodology and testing techniques, some of those can be written down:
- Software Quality Assurance Plan
- Policy for Implementation of SQA
- Deviations in Software Activities and Software Work Products Procedure
- SQA Participation Procedure
- SQA Reports
- SQA Reviews Procedure
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:
- SCM Activities Plan
- SCM Policy
- Changes to Baselines Procedure
- Software Baseline Library Product Creation and Release Control Procedure
- Configuration Items/Units Status Review Procedure
- Standard Software Configuration Management Reports
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.
- Functionality Testing
- Integration Testing
- Usability Testing
- Performance Testing
After the project is completed, it is deployed across an enterprise by working closely with its internal IT team and training is imparted to the end-users of the system.
While delivering the application in the production environment ( final release) Neosoft provides the delivery-kit which includes the set of all the latest documents designs and the code as per contractual arrangements.
- Enterprise-wide Deployment
- End-user Training
- System/Helpdesk Training
- Documentation Handover
- Known Issues
Our maintenance phase covers steady-state system health maintenance including database, application and network maintenance. Application feature enhancements whenever requested by client are planned and are developed and executed as with the consideration of the existing system and its existing data.
- System Health Maintenance
- Feature/Application Enhancements