Whenever we take a project, we ensure that it is executed in a very organized and planned manner. As the diagram below (Fig. 1) shows, there is a defined team structure for every project.

TeamStructure_Graphic

A project goes through several phases of development and the development life-cycle (Fig. 2) that we follow is described in brief below:

SDLC_Graphic

SPECIFICATION (Requirement Analysis): This is where we do an in-depth analysis of the client's requirements. We try to answer the following questions:

  • What is the input data?
  • What data is valid and what data is invalid?
  • Who will use the software, and what user interface (GUI) should be implemented?
  • What error detection and error messages are required?
  • What assumptions are possible?
  • Are there any special cases?
  • What is the form of the output?
  • What documentation is necessary?
  • What enhancements to the program are likely in the future?

To improve our understanding of the concept we develop a prototype of the actual application. This also makes it easier for our developers to come up with clarifications required from the client.

DESIGN: Once we have completed the Specification phase, we get down to designing a solution to the problem, that is, what should be the flow of the application. Breaking down the project into various modules makes the task of designing easier and more efficient. We specify each module's purpose, assumptions, input and output.

RISK ANALYSIS: Developing software entails risks. Some risks are the same for all software projects and some are unique to the one at hand. It is possible to predict some of these risks and some are unpredictable. As risks can affect a project's timetable or cost, and the basic purpose of the software, we carry out a detailed analysis of the risks that are known or can be predicted.

VERIFICATION: In this phase, we review the design and verify whether it is modular, reusable and extensible. Also, Algorithms, if used, are verified for correctness.

CODING: The Coding phase involves translating the design into a particular programming language and removing the syntax errors. It is always our aim to abide by the coding standards that we have developed with time and experience.

TESTING: During the Testing phase, we remove as many logical errors as we can. Test cases are generated in Matrix form. Testing is carried out using automatic tools such as JUnit - for this, test stubs are generated along with the code. Integration test plans are also created and bugs are tracked against pre-defined quality standards. We believe that testing is both a science and an art.

REFINING: The result of all the above phases is a working program, which we have tested extensively and debugged as necessary. However, some amount of refining is required that takes care of minor discrepancies.

ON-SITE TESTING: In-spite of all our testing at our development center, it is possible that some problems may arise when the application is installed at the client-site. So on-site testing is carried out and our engineers fix any problems on the spot. This saves the client the post-delivery burden of having to use a problematic application till someone comes and fixes it.

PRODUCTION (Delivery and Acceptance): Once the application is complete and running smoothly, we make a final delivery and an acceptance document is signed by the client after he is satisfied with the delivery.

SUPPORT: Maintaining a program is not like maintaining a car. Software does not wear out if you neglect it. However, users of the application may detect errors or limitations that we did not discover during the testing phase. Correcting these errors is part of maintaining the application. We offer a full year's (from the date of acceptance) support to our clients during which period, any bugs that are detected are fixed without any added cost. However, any enhancements or functional modifications to the existing application are treated as separate projects.

DOCUMENTATION: As the Software Development Life-Cycle graphic shows, Documentation is at the core of the entire Software Development Life Cycle. It is not a separate phase, but it is integrated into every phase of development. Precise documentation is vital to the success of a project.

Twitter Updates

Facebook Updates

Quality Policy

"To efficiently deliver quality solutions and services driven by effective processes, path-breaking technology, a team that strives for excellence and the continuous effort to maximize customer benefits."

Japan Focus

CMMI Level 3

*CMMI is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University

part_advan_mark_or_blu_assoc_onWhite

epclogo

Follow Us On Facebook