At Nichetech, we follow the traditional Waterfall techniques to Iterative Rational Unified Process methodologies to develop individual software depending upon each project. We follow stringent communication techniques for projects in our offshore model. We have state-of-the-art communication infrastructure facilities where we communicate with our client on a daily basis for requirements, project status updates, and other project-specific details. We propose to follow the development approach as described below:
Requirements will be gathered using industry-standard practices and reviewed both internally by peers and externally by clients, and findings of reviews shall be tracked to closure. Each requirement is assigned a Requirements ID, which is further used to track the requirement from definition, design, implementation and testing phases. This also helps to easily track and verify that all the requirements are catered to.
Agile development model is based on the belief that every project needs to be handled uniquely and the existing methods need to be tailored to best suit the project requirements. In agile the tasks are divided to time boxes (small time frames) to deliver specific features for a release.
Iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer.
Following are the Agile Manifesto principles
Individuals and interactions – In agile development methodology, self-organization and motivation are important, as are interactions like co-location and pair programming.
Working software – Demo working software is considered the best means of communication with the customer to understand their requirement, instead of just depending on documentation.
Customer collaboration – As the requirements gathering cannot be completed in the beginning of the project itself due to various factors, continuous customer interaction is very important to get proper product requirements.
Responding to change – Agile development is focused on quick responses to change and continuous development.
A comprehensive Project plan will be prepared, which outlines all the critical aspects related to the smooth project execution. These include:
Detail Design shall define and map the entire system in details, as well as the functional process flow. The main content of the design document will contain the following items:
Actual coding is done according to the organizational coding guidelines for different technologies. Internal and inline commenting is done along with the coding activity. Completion of each module results in preparation of test cases and unit level testing. Code reviews are also done to ensure that the developed code adheres to the organizational guidelines for coding. This ensures that coding is done according to laid out guidelines and that code is readable, clean and maintainable.
Below are various levels of testing that have been defined and followed