Sunday, May 16, 2010

Environment for Software Development

The application during development has to go several phases in the SDLC. So large projects usually have several independent environment for different users, so that they can work on their phase independent of each other.
Environments:

Development Environment : Developers use this environment to code and work on the application to add new features, fix bugs reported by testers etc.Development environment is usually separate for each developers. It facilitates the developers to work on his code and restart server or database as many time as required without hindering development of other developers.

The caching is usually disabled becuase developer needs to see changes of his code and hence the latest page. He also needs to get maximum information from exceptions and erros thrown.

Test Environment : After developers have developed thier module and unit tested it. It moves into test environment. Testers use this to test the application automatically or manually.
In case the module fails it moves back to Development Environment for developers fix the bugs. If modules passes this testing it moves to staging environment.

Test Environment is also usually separate for each testers or automatic test environment. It needs to facilitate reloading data and starting from point required by the testing scenario.
His environment should match the Production to get the view seen by the end-user.

Staging Environment: Customers use this environment to test the features of the application and report bugs. In case of problem, issues are logged and reported to developers for fixing the code which may be in fixed modules or related module.

Module only after passing the acceptance testing by the customers moves to the production.

Staging Environment is also usually separate for each testers or automatic test environment. It needs to facilitate reloading data and starting from point required by the testing scenario. His environment should match the Production to get the view seen by the end-user.

Producton Environment: Production environment is used by the actual public or end-users. It is working with live data. Module after passing all kind tests can move to this environment so that there is minimum risk of failure.

This environment has all optimization enabled, caching enabled , only error logging at server level, customized exception understandable to the end-user, load balancing, scalability , firewall etc. all are enabled properly configured.


No comments:

Post a Comment