Development Methodology

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:

Customer Requirement:

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 Methodology

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.

agile_methodology

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.


Project Management

A comprehensive Project plan will be prepared, which outlines all the critical aspects related to the smooth project execution. These include:

  • General Planning and Milestones
  • Scope Management
  • Team formation and Engagement
  • Integration Planning
  • Communication Planning
  • Quality Management
  • Risk Management and Mitigation
  • Procurements Management
  • Tracking and Control Mechanisms

Detail Design

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:

  • Block Diagram
  • Overall System Architecture
  • Class Diagram
  • Screen Shots and field validations
  • Flow diagram/Sequence diagram
  • Database diagram
  • Deployment View

Development

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.

Testing

Below are various levels of testing that have been defined and followed

  • Unit Testing
  • Functional testing
  • Integrated Testing
  • System testing
  • User Acceptance Test