Our Software Development Process
We believe only a disciplined approach results in quality software.
Quality software is often the result of talented system designers, programmers,
suitable processes and knowledgeable program management. The basic software development
process is iterative. Each successive version is intended to be closer to its target
than its predecessor. Therefore, all software development activities can be seen
as re-iterative cycles that produce different base line of code for a given system.
1. Design Process
After requirements are analyzed and agreed to with the customer, our engineers
perform the design required and would provide the specification to clients if previously
agreed for review.
- Architectural design
- Abstract specification
- Interface design
- Component design
- Data structure design
- Algorithm design
2. System Testing
We believe in the adage Test Early, Test Often and
Test with open Mind.
Testing Stages
We plan multiple stages of tests during development. These are:
- Unit testing -Individual components are tested Module testing
- Related collections of dependent components are tested Sub-system testing
- Modules are integrated into sub-systems and tested. The focus here should be on
interface testing System testing
- Testing of the system as a whole. Testing of emergent properties Acceptance testing
- Testing with customer data to check that it is acceptable
3. Our Testing Philosophy
Combined development with sustained testing. It is easy to write code but it takes
efforts and planning to make it error free.
Classic regression test with following characteristics
- Automatic
- Yields unambiguous pass/fail
- Test cases added for all new failures
- Run on all platforms of interest
- Test early, Test often
The steps below provide our typical development process
- Scope Clarification: Through an interactive consulting process
with the client, the project manager defines and specifies the challenges and details
of the project.
- Building Requirement specification: Project description, deadlines,
and milestones are documented in order to provide complete transparency of the development
process. During this phase the specific team with required skill sets is put together.
- Project planning and System design: This phase involves creation
of site structure, database design and a risk management plan. During this phase
the whole project is broken up into different phases depending on the complexities
involved.
- Coding: The most crucial period of development. During this
time programmers keep themselves busy building the logic and writing codes and scripts.
- Validation: During this period, codes are written to ensure
such functionalities that check the validity of entered data.
- Integration: Now that the different modules of codes are ready,
they are integrated into a whole to implement the functionalities of the application.
- Testing: During this phase, the whole application is tested
from the user's perspective to find out if any logical loopholes persist.
- Debugging: The programmers take intense care to rectify the
logical errors found during testing.
- Deployment: This is the closing phase of the whole development
process, where the application is made live.