Dear Staging — It’s not working out anymore. I would say it’s not you, it’s me, but actually — it is you. You have several flaws that make working with you impossible.
Staging — You’re Expensive
First, you’re very expensive to maintain. Even if you just have the basic architecture, with web servers and application servers that query a database, and a memory-based cache, you still cost me over $100k per year! And that’s not even including the cost of software licenses, infrastructure, or support. Since efficiency is the name of the game, and costs matter, you’re just going to have to go.
Staging — I Can Test Better
Also, your test results do not always match production test results because the data that you have does not match the data in production. I can’t tell you how many times I have implemented test flows that pass with you, and as soon as the tests run in production, they fail. This is completely unacceptable. How am I supposed to gain confidence in you if you consistently let me down? TL;DR, I can’t.
Staging — You’re Not Production
I don’t know how to say this lightly, but no one cares about you. No one is going to get a call in the middle of Thanksgiving dinner if you are down. I have tried to get you fixed numerous times when you have been down so that I can test what I need to, but it’s hard to get anyone to care enough to work on you. You’re just not a high priority like production is. When production is down, people are on it.
At the end of the day, I don’t care if my features work with you, I care if they work in production. I want to know that my features are working in the environment in which they will live, not a wannabe environment like you.
For these reasons, we need to part. I will now be testing all of my code in production, and I don’t need you anymore.
Learn More about Testing in Production and Feature Flags
If you’re interested in learning how to test in production with feature flags, check out these posts:
- 5 Best Practices for Testing Feature Flags in Production
- 4 Benefits of Feature Flags in Software Development
- Testing in Production