To protect our clients from unexpected problems we only move applications into ‘production’ when they have been tested and approved by our clients. That way they know exactly what they are getting.
The production application is our end goal. It may be a public facing site, intranet, or other internal application. This is the final site used by our clients (or theirs) on a day-to-day basis, and it is expected that it will be up and running properly when it is needed.
In order to keep the site running smoothly, we never make changes directly in production. Instead, we set up multiple copies of a project for internal development and testing. This structure may vary slightly depending on the magnitude of the project, but generally it looks something like this:
This is where the cycle begins. Whether we are beginning something completely new or taking over development of an existing site, we will set up one or more development environments internally. This may be an isolated computer, server, or a sandbox account, on which we can make changes without affecting anything valuable. Generally we will begin with a clone of our clients existing website and database.
We use tools such as Git to track the progress of our development in case something needs to be reverted or merged with another developer’s changes.
Our clients rarely see work in the development environment. When things are working well enough to demonstrate or test they get moved to a different server for the next phase…
Staging / UAT Environment
The staging server is where we push our working code to be reviewed both internally and by our clients to make sure it is working according to specifications. This is generally on the internet and may or may not require a password to access. The important thing is that no one except our clients knows where to find it. It does not get indexed by Google or other search engines.
The staging server gives our clients an opportunity to see progress, test concepts, and most importantly perform user acceptance testing (UAT). Once the client has tested, and is satisfied with the quality of the UAT site they can sign-off and we will migrate the code to the…
As briefly outlined above, this is it. This is the final version of the working code, ready for use on a day-to-day basis. This code belongs to our clients, so it important that they are happy with it before it gets this far.
Occasionally a change will be requested to the production site that was overlooked during testing. That means back to step one! It sounds scary, but the cycle can be run very quickly, and ensures our clients that what goes into production is working properly.
At DOMIC, we are not opposed to surprising our clients, but want all of our surprises to be good.