It’s easy to understand, in a very theoretical way, that some systems are more “professional” than others, or meant for a more “expert” level than others. But what does this mean in practice?
Today, we’re going to dive into one difference: why setting up a staging environment matters; and which platforms have that, or not.
First, reminder: a staging environment is, in layman’s terms, a copy of your site — but one that isn’t live. It’s a place where you or your developers can make changes, trying out anything – without effecting in any way the live site. There are more complex variations — you could have multiple environments, like a dev environment and a staging and a testing environment, for example — but let’s start out with the simpler case of “no staging environment” vs “only one staging environment” and we’ll leave the “one vs multiple staging environments” analysis for later.
So, let’s think for a moment about the history of ecommerce. Long, long ago, in a universe far far away, someone said, “Oh, we should make it easy for people to sell things online. Let’s just write software we can give to them to do that… for free!”. This is, for example, how Magento was born – and the reason why it’s open source.
But as a result, it’s just software. Someone takes that software, makes it live – and you have a store. That’s it.
Shopify took that same insight, but with a twist: instead of giving the software to the user, let’s just give them access to that same sort of software, but all “in the cloud” (as we say today).
But Salesforce Commerce Cloud — then called “Demandware” (RIP) — came from a different approach. They asked themselves: what are the best-in-the-world features that a high-end, intense, demanding user could expect from an ecommerce platform?
One of those features is a staging environment — the ability to make changes to your site, small or substantial, without effecting the live site.
For a small ecommerce presence, a staging environment isn’t that important. You want to update an image? Just go upload it. You want to change a color here? Go change the CSS.
Indeed, the vast majority of ecommerce platforms don’t have one. Take WordPress, for example – which powers about 1/3rd of all websites. No staging environment. Like with Shopify — you want to make a change, go to it, and BAM, it’s live.
But for the high-end user, a staging environment has enormous benefits. Let’s list some.
- If you make any changes, you can test them before they go live — thus preventing critical bugs to the site. This is worth emphasizing because, imagine trying to make a change to a live-site and not being able to test it — we can just imagine the thousands of tiny little ways it can go wrong!
- Now, imagine the broader version of that: it’s impossible to make non-trivial changes to a site if you can’t test it out beforehand. Yes, you — technically — don’t need to test out a tiny change like text or images. But imagine trying to change a template, or the design of a page? Put simply, there is no way to make small changes without creating a whole separate site just to test it out on! (If you ask any Shopify client who has tried to upgrade his theme… you will universally hear horror stories.)
- You can experiment with different styles and content until you find the one right for you. If you’re making a change to a live site, you can’t just change the color or content or any other detail because it could have severe ramifications. But on a test environment, you can say, “Let’s try out this theme and see what it looks like!” and then, 10 minutes later, “No, I don’t like it, let’s keep the original theme.” That’s something close to suicidal for an ecommerce store!
- You can take your time. If you’re making changes to a live site — every little change is reflected immediately. So, imagine a change you’re making involves updating 11 templates — if you change one but not the other, that could be fatal to the site. But you have to update the templates linearly, one by one. So in the minutes between update to template file A, and to template file B — the site could be broken and maybe even stop your ecommerce. But if it’s not live, you can take your sweet, sweet time.
- You can get away with less planning. If any changes you make are reflected on the live version immediately — you need to not only be absurdly careful, you need to plan out every little detail. But when you can just put up a different theme or look or changes onto a staging version, you don’t need to plan out every minor detail: you can put it up, see what you like, and change and tweak it until it’s ready — then launch it!
- With more than one staging environment, you can separate out various different uses. Not only is it deeply useful to have a staging environment separate from a production environment, but if you have more than one staging environment, you can do more complex things: a developer can be making serious template/design updates, while a content specialist could be writing lots of content, while a QA tester could be doing a massive test–all at once. These could, and commonly do, interfere with each other.
- Similarly, testing and design & content development won’t delay software development. It is dangerous to change multiple parts of a system at the same time — what if a developer is building X while a designer is changing that same thing at the same moment, while a writer is changing the text at the same moment, and the QA guy or girl is trying to figure out what happened at that moment? No one would know what is happening! As a result, without a staging environment, all these need to happen serially, one at a time — and this delays software development tremendously. But a separate staging from production environment allows dev to continue in parallel.
The result of these benefits is that a staging environment, or environments (plurality matters!), is that it’s a requirement for a serious, non-tiny online store.
And guess which is the largest ecommerce cloud platform that includes a staging environment? Hint: it’s not Shopify. You guessed it: Salesforce Commerce Cloud.