Web Development Processes and Technical Environments
The process of Web application development is critical to the success of web-based projects. The proper processes can not be enforced unless technical environments are properly setup. Technical environments are required for development, test and production.
Web applications architecture (
http://www.sysoptima.net/architecture/technical_architecture.php ) is typically in 3-tiers. Applications are developed on NT platforms, and deployed to production on UNIX platforms. Without streamlined procedures and proper environment settings, deployment and testing is not only a frustrating experience, but also a major detriment in application failure and budget overrun.
Development and test environment may be powered by less powerful computers, but the configurations should be the same for all three environments. Development and test environments should be populated with production data periodically.
Development Environment
Role - The development environment is a place where development team develops and tests the applications. If applications are developed on NT, deployment to UNIX environment helps developers to port NT applications to UNIX environment and test UNIX specific tasks, such as shell scripts and cron jobs.
Security Concerns - Development team should have full control of and access to the environment, though installation of new software should be consulted with UNIX admin and DBA.
Test Environment
Role - The test environment is a place where QA team (configuration management and software testing
http://www.sysoptima.net/software_testing/software_testing_procedures.php ) practices deployment. The deployment of large and complex applications may take many trials.
Security Concerns - QA team is fully responsible for the test environment. Development team should not be aware of the existence of the test environment. In reality, development team members are often involved with deployment to test environment largely because organizations trend to place staff with less technical expertise on QA team.
Production Environment
Role - The production environment is a place where you serve your customers. The deployment from test to production should be automated using deployment scripts to avoid the potential human errors and to reduce the deployment cost.
Security Concerns - Both development team and QA team should not be aware of the existence of production environment. It is the sole responsibility of operation team to maintain the production environment.
The procedures and technical environment settings described above have been proven to be valuable in eliminating many problems in web-based system implementation. The successful implementation of the procedures, however, depends on management commitment and the technical competency of all teams involved.
Bruce Zhang has over 10 years experiences in architecting (
http://www.sysoptima.net/architecture/ )and developing web-based applications. He operates a website
http://www.sysoptima.net/ that accumulates knowledge of web development.
He maintains a knowledge base for Customer Relationship Management (CRM) at
http://www.sysoptima.com/crm/ for understanding CRM software from a systems perspective.