Development Approach

OffshoreDotNetDevelopment is committed to delivering solutions of the highest quality. We lay emphasis on a transparent communication channel between clients and the members of the project team ensuring clear understanding of the requirements.

Engagement Models

We offer to deliver solutions through various engagement models, these are:

Fixed Duration/Cost In this engagement model, the duration and the cost of the project are usually fixed. This model is ideal for small to medium sized projects wherein the client is the end user of the product. Read More

Dedicated Developers In case you would rather have a team of programmers, or just a programmer at your beck & call, then there is no better way than hiring dedicated developers. This approach involves the devotion of a dedicated resource(s) to your project, resources that you control and coordinate. With no definite scope of services defined, customers attain maximum flexibility with this approach. Read More

Methodology

The adoption of a cohesive methodology derived from combining industry leading principles and concepts, is critical to successful development. OffshoreDotNetDevelopment specializes in a variety of development methodologies to offer a wider scope of development services to its clients. We choose the best suited software development methodology based on important project considerations, such as project scope, deliverables, and requirements, to name a few.

Any project's development process begins only after an appropriate software development methodology has been decided. Based on the project suitability, we follow the Agile and Waterfall development methodologies.

Waterfall Development Model

The waterfall model enables us to effectively divide project responsibilities between delivery teams, ensuring complete control over tracking/monitoring, delivery and quality. The requirement gathering phase in the Waterfall Model is extremely elaborate and ensures that each and every detail is accounted and planned for. Development begins at a rapid pace and each phase leads on to the next, till the project is tested and delivered to the client. For the client, the accuracy of our estimations before commencement is baffling and the relatively low costs are definitely something that they harp on about.

The model is followed in situations where in the project requirements fixed and not likely to change much during the course of the development. The entire requirements are identified at the start of the project. The various stages of the Waterfall model include:

Requirement Gathering the first step in delivering a solution is a proper study and gap-analysis of the requirements. The requirements are documented in the form of a functional specification document (FSD) that lays down the roadmap for the development. The FSD contains a detailed description of all features and functionalities to be included in the solution. The development process begins only after the FSD has been verified and approved by the client.

Architecture & Design Once the FSD has been approved the next step is to design the database architecture and the GUI prototype. These are designed keeping in mind the requirements mentioned in the FSD.

Implementation & Integration With the architecture and design in place, the actual coding of the solution begins. We have in place a set of coding standards that all code adheres to. Regular reviews are done to ensure compliance to standards. Individual code modules are integrated to form a whole.

Deployment & Testing The integrated solution is deployment on a testing server for the QA to test the solution. Various test such as functional tests, compatibility tests, regression tests etc are performed to ensure that the solution meets the requirements and conforms to the standards. Errors identified during testing process are recorded in an issue tracker. The developers work to remove the errors that have been identified. The testing cycle is repeated till all errors have been removed. After a successful verification, a final version of the software is released to the client.

Agile Development Model

OffshoreDotNetDevelopment has also perfected the "art" of the Agile Development Framework, a highly effective development methodology, as it provides us complete control over processes.

Agile is an iterative and incremental mode of development wherein the entire development life cycle is broken down into small iterations. The project scope and requirements, at a very broad level, are laid down at the start of the development. Plans regarding the number of iterations, the duration and the scope of each iteration are laid down.

Following the Agile model makes it much easier to adapt to changes during the development process as each iteration involves a cycle of requirement analysis, design, implementation, testing and then release to the client. Project risks are minimized to a great extent because of work is done is a number of iterations, problems and issues can be identified early on.

The Agile model can be implemented using various methods. At OffshoreDotNetDevelopment, the Agile methods that we use include:

Extreme Programming
SCRUM

The various stages of the Agile Model include:

Project Inception At the start of any project, we work in close coordination with the client to understand and analyze the requirements. Upon a detailed analysis initial estimations as to the broad level project scope, duration etc are made.

Planning With the initial estimations in place, planning as to the number of iterations required and the broad level scope and duration of the iterations are laid down. The plans are sent to the client for approval. Upon approval, the process of developing the first iteration begins.

Iterations Based on the scope defined for the iteration, detailed functional requirements, for the iteration, are laid down. With the requirements in place, the designs are made and the coding process begins. Once the coding process is completed testing is conducted. Any bugs or issues identified are rectified and a release is made to the client. Client feedback, if any, is incorporated and after approval from the client we move on to the next iteration. Every iteration that has been completed is integrated with the previous one. Proper testing is done to ensure that no issues arise out of the integration.

The above mentioned process if followed for all iterations.

System Testing On completion of all the iterations, we conduct a final testing on the fully integrated solutions. Issues are any are sorted out and the solution is released to the client. Upon approval from the client the solution is made live.

In developing solutions using the Agile model, we make use of:

. MbUnit - for performing unit tests
. Team Foundation Server - Agile Template - to manage work item tracking, version tracking, etc