It’s like that great looking turkey that you finished cooking but want to taste it first before serving it to your guests.
It’s done, and you want it live, but not quite for all the customers. Just in case things go haywire, or it turns out not to be exactly how it should be. This is staging. Think of it as “almost into production”. Like “you’re almost there” but “not quite yet”! And because there’s no room for error, staging came to life.
Staging is a kind of production environment, isolated from the actual production environment. It’s nicely filled with live data, actual information and actually works like the real thing, but only you can see it. That’s why staging should have the same infrastructure as production, and more importantly, the same software running on it.
This is the last “stage”, before your work reaches your users or customers.
Of course, all of this only applies if you’re building some web app or mobile app that has a web API or something. So stop reading if you’re building the next Flappy Bird or Total Commander plugin.
What’s that? Only you can see it so it’s just a boring version of the real thing? Nope.
This isn’t everything. Staging is also the place where you can have your closed beta group taking a look at new features. You DO have a beta group, right? You know, the people that get to try new features before everybody else in order to get the feeling and provide feedback. It doesn’t matter if it’s your friend or mom, you definitely should have someone outside of your company that can provide you with feedback by getting a fresh look at your product. Sometimes they’ll just say “nice”, other times they’ll give you a stupendous “Are you out of your mind?!?!” email about something that you got really wrong.
I remember when I worked on the first version of Monitive, I showed it to a friend telling him that I’ve got this great uptime monitoring service that will alert him when his website is down. After insisting on trying it (yeah, you have to do that sometimes), he set it up and he said “Okay, where do I see what’s the CURRENT status of my website?! Is it up? Down? Something?” and I was like “Oh… uhmm… well… you don’t. Yet.”
So you can truly get out with the RIGHT product if you pay attention to the stages of development.
Move Fast And Break Things? Really?
I’ve heard this a thousand times, usually as an excuse when something in production broke. “Move fast and break things” is a really nice motto, but make sure you break things during staging at most, so you don’t break other people’s trust, business, reputation, bones or anything else. Yeah, go get that huge poster from Startup Vitamins and place it on your wall but always remember where to draw the line. If your car would break every day, you wouldn’t grow very fond of it, would you?
Staging as Beta (or before launching)
When starting development on a service or just a completely new version of an existing product, you might think of staging as the beta version. The one that contains the new, juicy stuff, but could also have bugs and break stuff.
Are you just starting out and you haven’t launched your product yet? Staging is the only production environment you’ll need for now.
So, as you can see, dear reader, staging should exist even before the production environment (which we’ll briefly cover in tomorrow’s article). So remember: It’s never too early to have a working staging environment!