More than ever, software development teams have to continuously improve their processes to speed up releases and decrease the time to market. Quality assurance is essential and most companies have invested massively in better Test Management over the last years.
However, to perform their job successfully, testing teams (or QA/testers embedded in Agile/Scrum teams) need available and stable Test Environments, which are often under the responsibility of separate teams like infrastructure or operations.
What is Test Environment Management?
Test Environment Management (TEM) is an essential practice to streamline the software delivery process by making sure everyone in the delivery team can get working Test Environments when they need them, to execute test scenarios or reproduce bugs.
TEM is divided into 3 components that we will explore further:
- A Test Environment Inventory accessible to all relevant stakeholders
- A transparent Test Environment Schedule with a clear booking process
- An Environment Self-service for giving more autonomy to non-technical people
Test Environment Management may be the responsibility of a specific team on the paper, but a successful TEM process is always the result of improved communication between teams, which is eventually coming from the contribution of all the teams involved.
Why is TEM so important?
Your team may be using top-notch Environment Management tools for deploying test and production environments. Others are less fortunate, with everything locked away in decentralized spreadsheets and emails.
As you can imagine, this makes version control a nightmare that often leads to configuration gaps causing important delays in the software delivery and a longer time to market. Managing our environment landscape the right way is becoming business-critical in today's agile world where organizations need hundreds (or even thousands) of environments.
Without a central source of truth, environment management can be time-consuming in the extreme – and cost companies millions every year.
An effective Test Environment Management gives answers to questions like:
- How to avoid utilization conflicts between Developers, QA/Testers, and Release Managers when using a shared environment?
- What is the best way to coordinate all release tasks across teams and environments?
- Is the information regarding our shared environment availability accurate?
- Could we re-use the same test environment or should we build a new one?
- How effectively track the release deployment across all environments?
Main benefits of Test Environment Management
Increase team productivity
Chats, e-mails, spreadsheets, and shared calendars are replaced by a fit-for-purpose tool.
Better resource usage tracking helps teams to share environments, prevent the creation of extra test environments, and to release unused (or underutilized) resources. Eventually, it reduces your AWS / Azure / GCP bills.
Improve time to market
R&D and QA processes standardization and better coordination speed up the software delivery.
What are the key TEM components?
As explained above, we like to define 3 TEM components:
Test Environment Inventory
Sometimes also called "Test Environment Registry", the Test Environment Inventory is a single source of truth for your Test Environments. It should be stored in a single tool (for no duplication) and available to all relevant stakeholders in real-time. Each Environment should have:
- The history of all software versions deployed on the Environment
- Deployment details with information like build number, release notes, etc.
- Current status (up, down, slow...) and history, ideally per component
For small teams, a shared spreadsheet may be sufficient to keep track of that information, but large teams dealing with many Test Environments will require a proper TEM tool.
Test Environment Schedule
If your Test Environments are shared between several people, projects, or teams, you need a scheduling process. It usually combines:
- An Environment Booking System for users to request a Test Environment with a specific configuration and for a specific period, including approval workflow and conflict detection
- The Environment Schedule is updated in real-time and accessible to anyone
- Granular reporting for tracking usage and optimizing costs
Allocation of Test Environments across teams and projects requires discipline and common tools. If a shared Calendar may be a good option at the beginning, it soon becomes unusable as the number of people involved increases.
Test Environment Self-Service
DevOps practices are pushing teams to automate repetitive and manual tasks. Even though deployments are now fully automated, it often requires someone technical to trigger the deployment of a version, i.e. clicking on a button in a deployment tool (Jenkins, Bamboo, TeamCity, etc.). What if non-technical people could do that click, without the need of accessing a deployment tool?
This is what Environment Self-Service is all about:
Giving superpowers to non-technical people!
- From a centralized tool, they can trigger the deployment of a specific application version on a specific Test Environment
- And if all Environments are already allocated, they could even provision a new Test Environments in a click!
Of course, depending on the application complexity and its integrations, such a level of automation may not be worth the investment - always start with an ROI analysis.
How to implement TEM in your company?
There are different ways to organize Test Environment Management. Usually, companies start with shared spreadsheets, shared calendars, and manually created dashboards they update regularly. All those solutions have their pros: they are already available and look simple, at first glance.
Unfortunately, this manual work is time-consuming and even if people involved (Environment Managers, Release Managers, QA Testers, Developers, System Engineers) are disciplined at the beginning, information will be less and less accurate as you go.
If your team has the chance to use Atlassian Jira already, there is no need to purchase and integrate an extra platform. You can activate the Golive Jira App in a few clicks and start populating your Environment Inventory and enabling your Booking System to rely on the Jira issue's powerful capabilities. Try it free for 30 days and if you decide to continue, the App will be added to your Atlassian bill (easy purchasing process - no new vendor registration).
Apwide Golive is a Jira App for more visibility and control over your environments.
Leading companies are already using Apwide Golive for Test Environment Management as it integrates smoothly with their DevOps toolchain.
Check out our free trial on Jira Server/DC or Jira Cloud!