Work the Workflow: Dev, Test, Live
Version control is the start of a good development workflow. The next step is to create a development ecosystem that includes three separate environments:
- Dev, for developing code.
- Test, to review and QA a running website before taking new code live. Sometimes called Staging.
- Live, where only tested and functional code is allowed. Sometimes called Prod or Production.
First standardize on this concept, then make it happen. You need all three, don’t make exceptions. This standard is older than the web: it is the standard model of “Application Lifecycle Management.”
Doing development in the live environment is like riding a bike with no helmet. You can look cool for a while, but when you hit a tree, it’s all over. The same goes for pushing code from Dev straight to Live. The best case scenario is you have inefficient review processes, and the worst case is the site falls down live for your client and their customers.
Note: If you find yourself in a situation that requires an urgent update to the live site, follow a best practice hotfix workflow to mitigate risk. To save yourself headache, you and your team should determine what warrants a hotfix prior to facing an emergency situation or urgent ticket.
Katy Pool, Developer, Kalamuna
The Dev/Test/Live workflow is essential to our development team. We use the Dev environment to merge in features and code changes from various team members, and then once those changes are ready to be QA’d by our clients, we’re able to demonstrate new functionality with an exact copy of their live site content with just a push of a button. We also make use of Pantheon’s added Multidev functionality, which makes developing multiple features concurrently extremely easy, flexible, and timely.
At the very least, I will usually explain the Test environment to the client so they can test new features without fear of altering their Live environment. Usually their main question is ‘Can we continue to use our site and update it with new content while we are testing a feature?’ And thanks to Pantheon’s Dev/Test/Live workflow, the answer to that is almost always yes. Depending on the project and the familiarity of our clients already have with the development process, I will sometimes explain a little more about how we utilize Multidev environments and push up code.
Beyond the three environments, you need a controlled way for changes to move around. You need a workflow. And because websites are full of content, content has to be part of the equation.
The best workflow for website development is one where code is pushed “up” from Dev to Test to Live, while content is cloned “down,” always treating the live website as the canonical content source.
Ideally you also have a way to make sure these environments are consistent in terms of their configuration and performance. Otherwise you may have some unpleasant surprises when you deploy. Features or designs that “worked on my machine” could break, or worse, you could see a performance bottleneck or unexpected regression when the code goes live.
With environment configuration in place, you can continue to build out a best practice workflow by managing configuration in code. This is most beneficial when moving from one environment to another (Dev>Test>Live), and provides visibility into what configuration has changed, who changed it, and when it was changed. Keeping these changes in version control allows you to quickly revert configuration changes if necessary. Wouldn't it be nice to deploy a new feature and not have to click through its configuration in the site admin?
Aaron Bauman, Senior Software Engineer, Message Agency
As anyone in web design will tell you, there are a number of moving pieces in every project. The consistency of a three-environment setup is a crucial facet of our development process. A combination of Pantheon’s Multidev and isolated Dev/Test/Live environments gives us the flexibility necessary to coordinate feature releases, client acceptance testing, and content staging. As a result we manage all of our project workflows through Pantheon, even if the site may ultimately be launched on another platform.
We don’t believe in holding clients hostage when it comes to hosting. Many firms prefer to resell hosting because of the efficiency and consistency it gives them in the support cycle. We advocate that clients own their hosting accounts, whether on Pantheon or with another vendor, and recommend they use Pantheon. Developing on Pantheon provides the consistency we need to streamline our processes, giving us the ability to deploy the solution on the platform of the customer’s choice with ease.
It’s important to be an advocate for Dev/Test/Live with your clients. Try to standardize as much as possible, even if the client won’t allow for all three environments to be on the same platform.
We believe Dev/Test/Live is a non-negotiable part of a good workflow. So we built it into the Pantheon platform. We make it easy to spin up test environments that are a perfect match for your live configuration.