We currently have three environments:
1) Dev (on the developers workstation, pointing to Test DB)
When we encounter an issue, or we make a significant change we’ll work it out in Dev/Test first, then push the change to Prod. We are working very very hard to keep both environments free of custom code. We find that any change we make adds dozens of hours to future patch releases. Since Jive is still working on the open source ‘Release early, release often’ model, we need to keep the LOE for patch updates low.
For each major update, we refresh the DB from Prod back down to Test so the content matches before we begin development.
So, to sum up – code / FTL fixes go Dev – Test – Prod. DB changes go Test – Prod. And once in a while we flash Prod – Test before a significant project.
this is really helpful Will. For better or worse, we've got a considerable number of customizations that require quite a bit of testing in both environmnets (UAT and Prod) for every bug fix and code drop. But i'm happy to hear you validate that Prod --> UAT DB refresh before any significant code work takes place.
Thanks again for sharing.
We are currently hosted and have a highly customized code base. Once the code is developed in a DEV environment it is implemented to UAT for QA testing. We go through "fixes" from UAT feedback, but all the dev is done in a different environment and then implemented to UAT for validation. Once all is tested we implement the approved code to PROD.
In regard to discovering issues and bugs, depending on the environment we find them in, we check them against the other environment and against other instances of Jive that we have (We are currently running 3 different sites on Jive) and report the issue accordingly. That way if we find an issue in PROD we can see if the code to come that is in UAT will resolve the issue or not. If it is an issue we find in UAT, we test PROD to make sure there isn't a bug we haven't found or if there is a new bug being introduced in the latest code.
Bottom line for us is that we do not intentionally put anything in to PROD without vetting it in UAT first.