Software Configuration Management is the process of keeping track of your progress and history for applications you develop.
It is a daunting task, but critical to the quality and overall success of application development. Web-based ecommerce development
experiences rapid change and many iterations of development within short period of time as a result of ever changing marketplace..
Configuration management does places extra burden on web development teams, use of software configuration management tool can
ease the process and improve the quality and productivity of ecommerce application development.
The principles of software configuration management revolve around four key areas: version control, build management, release management,
and process control.
Version control tracks the changes of a particular file over time so that the developers can roll back to a previous version of a the file
as needed, compare two versions of a file for differences, or create branches for parallel development. Branching is not recommended
as it requireds effort of merging branches. Branching can be avoided by proper project management.
All version control software maintain one copy of the file in a repository and track the changes to that file for each version.
Each time someone needs to edit a file, they check it out for exclusive editing and then check it back in to the repository when finished,
thus creating a new version.
Build refers to the action of assembling software components into a workable software system. Build is usually automated in build scripts.
While version control is at individual file level, build management deals versions at software system level.
Release management is closely tied to build management. It is the process of moving a version of build into production environment.
Release management includes the deployment process outlined in a deployment plan. Post production testing is performed to ensure
the proper deployment of software systems. After the successful release of a software system, all file in version or source control
repository are marked for that software version.
Process control is the institutionalization of best practice in configuration management - version control, build management and release management.
It is not about the control of the processes. A problematical process is worse than luck of the process since it limits the freedom of following
common sense in software development.
Java Application Servers for Web Development
Development Processes and Technical Environments
Software Testing - Unit Testing, Integration Testing, Regression Testing, System Testing and User Testing
Software Testing Procedures