Regardless of how well an app is written and the quality of the server it runs on, stability will be disappointing unless there is an efficient release management process and unless there are suitable development and staging environments. It's important to invest time upfront into establishing reliable and repeatable procedures that will be familiar to all involved before the app reaches production. A typical web project might require three completely separate environments:
Development environment
This should closely mirror the Test and Production environments. Developers should be relatively free to make changes.
In many sites, all developers have their own "pre-development" sandbox on their own workstation. This is often a Windows workstation, while the development and staging servers will often run a flavor of Unix. Although the use of different operating systems introduces some risk, since the JVMs cannot be identical, its benefits in productivity may make it a worthwhile approach, as developers may need to perform other tasks on their local machines that are not best served by the production operating system. Release management is the task of ensuring that the progress of an app release through Development, Test, and Production is reversible and repeatable. It is vital that every organization develops a release management strategy accepted by all team members before app development begins. The issues addressed by a release management strategy will include:
"Labeling" all sources in a version control system so that it's easy to extract a snapshot of the artifacts included in each release. Thus a release management strategy will be substantially based around the version control system in use.
Important |
Successful J2EE projects depend not only on good app and app server software, but also on sound release management practices and suitable staging environments between developers' local machines and live servers. It's vital to invest sufficient time and involve all project personnel in developing a sound and workable strategy in these areas. |