Why do I need a staging environment? Let me tell you

Does this match your experience?

You have a developer working on your website. Whether they're working on it locally (on their own computer), or on some hosting that they have set up for themselves, one thing thing is clear. They aren't coding it on your hosting account.

You think nothing of it, because every time they show you stuff, things are progressing well.

Then the day comes when they're done and they “give you your site.” Sometimes it means they send you files. Other times they tell you that they'll copy it to your hosting. Other times your host will migrate the site over.

Either way, the surprises start after it's on your hosting account.

  • Things break.
  • Some things never work.
  • The pages look different.
  • The performance isn't right.

Your hosting company, who you initially complain to, says it's the code. They point to the developer. 

The developer tells you it worked find on their environment. They point to the hosting company.

It doesn't matter who is to blame. You're just unhappy. And nothing is great.

Have you ever experienced this?

You have a site that has a little issue. It's small – you just know it. So you call your developer and let them know that something is off. And they see it right away.

So they ask for your sFTP credentials or they ask for a login to your site (the WordPress admin interface), and you give it to them.

Suddenly while fixing something, 3 other things go wrong.

They don't know why it happened. You don't know why it happened.

It doesn't matter what happened. You're just unhappy. And your site is broken.

Wait – let's see if this sounds familiar?

You purchased a hosting account and bought a domain name. But you didn't have a website so you went looking for a developer.

Once you hired one, they got started on your project right away. And it was so awesome. And after a few weeks, you're in love.

Until they transfer it to your hosting plan and they can't get it to load. At all.

And they tell you that your hosting sucks (nicely) and that you need to host with the company they use, because it supports the code that they've written.

You've wasted money on your initial hosting, and now you're having to spend even more to get your site live.

Frustration doesn't begin to describe the emotion you're feeling.

You may not believe me but…

Each of these issues can be solved with a staging environment.

You may not know what one is, and I'll get there. But here's what I can assure you:

  • A staging environment protects you from poor performance being a surprise
  • A staging environment protects you from finger pointing between hosts and developers
  • A staging environment protects you from making fixes on your production environment
  • A staging environment protects you from code that doesn't work with that particular host

So what's a Staging Environment?

Let me explain it with an image.


What you should notice right away is the dotted lined box around the staging and production environments. That will help you understand this definition.

A staging environment is an environment that duplicates the production environment (same hardware, same software, same settings) so that any evaluation of code can be tested before being placed into production.

In the old days, people would code locally, on their own computers and then push it to a server to see if it worked. That server was called “production” and they were using hope as a strategy. And worse, if it didn't work, sometimes they'd just log into the production environment and make a few tweaks.

If you've ever heard of “Cowboy Coding” – that's what it means. To make changes to code directly on a production server (hoping it won't break). In other words, playing “fast and loose.”

Why should staging matter to site owners?

By now you're likely thinking, “Great Chris, sounds like this is a cool and needed technical solution for developers, but what does it have to do with me, if I'm a site owner and not a developer?”

Great question. Let me explain.

You are the client. The site is owned by you. You're in charge.

I'm telling you these things even though you already know them. I'm telling them to you because sometimes, in the middle of a project, you forget these things.

Suddenly you find yourself in a doctor's office with the doctor talking to you in gobblygook and you have no idea what they're saying, and so you tell yourself, “you're the expert,” and you just let them make the call.

This is what you should do with your doctor. But the same isn't exactly true with your website developer.

Hopefully they're a professional. But they don't all go thru the same training that doctors go thru.

You are the client. The site is owned by you. You're in charge.

When a developer starts explaining things about why the site works or doesn't, when they start telling you it's the hosting company's issues, or when they send you to the support line for the host – they may be right.

Or they may be wrong.

The easiest way to tell is to test the code on the staging environment to see what's going on.

And if you've picked the right host, and you're telling your developers that they need to deliver their code on that host's staging environment, and it doesn't work or works slowly, then it's time to challenge that developer.

But now you're asking, “How do I know if they're the right host?” and here's my quick answer.

They have a staging environment. They understand how important it is, and they've included it in their plans.

If a web hosting company doesn't give you a staging environment where you can test code, test changes, and test your developer, then maybe you want to look for a new hosting company.

But I have good news – every account at Nexcess.net support staging and offers you a staging environment – even at $19/month.

Trust me, you'll want one.