The forward movement of technology is rapidly changing the landscape for software development. Unsurprisingly, DevOps teams have to change the way they support development. What worked four or five years ago for the average software team is being phased out. What appeared to be new and innovative just one year ago is already being targeted for an early expiration date. So what is one thing that team managers can do to keep ahead of the curve in software development and IT team management? The answer is as simple (and complex) as two simple words: “Preview Environments.”
Preview environments exist to help a development team holistically review code changes in a feature branch before merging it. It’s like getting a full review of your code changes without having to worry about all the changes everyone else on your team is actively making. Each feature can progress in its own isolated test channel unimpeded by conflicts!
Monumental, right? The implications are enormous for productivity and efficiency. Think about what it means. The same group of people is able to accomplish 50% more in any given time frame. Below are the top three benefits of establishing a preview environment capability for your development team.
1. Preview environments act as quality gates.
One of the best things about preview environments is that they help you maintain a stable code base. Rather than merging code with potential regressions or breaking changes, the preview environment lets you check over your hours of tedious labor in an isolated, production-like environment. It’s 10x easier to fix a bug before merging—and that’s exactly what preview environments enable.
The preview environment enables you to make adjustments before the new code is merged. And because of their ephemeral nature—you can have one for every feature branch/pull request.
Due to its temporary nature and automated creation/deletion, teams can provision as many full-stack preview environments as they need, when they need them, and for as long as they need them. This means the speed of your feedback loops—develop, test, develop, test, develop, test—dramatically increases.
2. Previews synergize your cross-functional team.
Another dynamic role that preview environments play is in enhancing the synergy among your whole team—from developers to testers to product and beyond. The earlier that the product team and other key stakeholders can review a new feature, the faster changes can be made, and the faster changes can be made the faster the feature can be rolled out to end users.
Preview environments enable near real-time review of in progress feature development. Developers don’t have to worry about code freezes, managing merge conflicts, or the impacts of their code on all the other changes when they spin up a preview environment. Your teammate doing peer review doesn’t have to pull a branch to run locally and your product manager doesn’t have to ask “Can I see it yet?” because the answer is “Yes!” Everyone is working off the same “sheet of music” which in this case means the preview environment.
With preview environments you’ve freed up your developers to make the necessary changes to get the feature approved without having to worry about all the second order effects. They lead to a better review method, quicker turnaround times, and a boss that’s a bit more content than yesterday.
3. Preview environments save money.
The final thing to hold onto as you think about using preview environments for your development team is that it will save your company money on your cloud bills. Given the economic downturn and incredibly competitive business world we live in today, cutting costs is absolutely necessary.
The implementation of previews save money for many reasons. If you’re producing more work with the same team in a given period of time that is one way to look at the savings. While the productivity increase is the main benefit, teams will also literally save money on their cloud bills.
When you have persistent test environments they run 24/7/365 at an average cost of around $1,000/month (that’s for small projects). Preview environments only run when they are needed—which it turns out is usually less than a day or less than 3% of the month. You can run several for short periods before you reach the cost of a traditional persistent test environment.
How does your team save money with the efficiency and synergy that preview environments provide? The following progression makes it incredibly clear.
- Code Quality: Pre-Merge Testing vs. Post-Merge Testing
- Testing in Isolation vs. Batch Testing
- Bringing Your Cross-Functional Team into the Development Process
- Giving Environments a Life-Cycle that Matches Your Feature Branch Life-Cycle
One example and industry leader that exists to help companies advance workflows and the overall process of development is Uffizzi. The continuous preview environments they provide are the preferred choice. They work for many of the world’s most popular open source projects and teams seeking high performance development.
Preview environments provide a competitive edge.
Almost every team today has version control, CI/CD, and cloud-native infrastructure. Once you’ve got these basic building blocks in place, make the next game-changing move. Upgrade your test environment strategy by implementing an ephemeral preview environment solution.
There will be a learning curve. You will have to make process changes. However, the transformation will be more than worth it. With a preview environment capability you’ll never look back at how you did it before. Your team will enjoy the mental and tactical freedom that preview environments create.