Why so many software swim lanes and environments

Software moves through different phases on its way to production. It starts as raw software that becomes more refined as it is tested and then moved to production. Partner teams often need to test their current code against your new code to make sure there were no breaking changes. Software versions currently in production must be available to other teams so that they can test their changes against your code that will be in production when their new changes are actually deployed. Some companies can get by with as few as 3 environments. Others can have over 7 or 8.

Click to expand

The Video Walkthrough

The Development Track

This is the normal promotion process from development through test and into production. There can be some orchestration through shared environments or through environments that are integrated with other teams.  The development and test groups own the blue horizontal bar.  They only coordinate internally if there are resource constraints.

Cross-team integration testing complexity

Teams end up supporting at least two environments for partner integration testing.  They maintain one environment for the current production versions of their services/components. They maintain a second environment running the next version of their services.  Partner teams connect to one or the other of those two based on their specific needs.

You end up with a matrix that looks something like the following for each of the partner teams.  You maintain your two environments.  They connect to the one that meets your needs.

Your Next Version Your Current Production
Their Next Version
Their Current Production

Updating Integrated environments after a release

There is a series of post-production deployments that happen in the hours/days following a release.  The integration testing environments that contain current are updated to reflect the new current production.

Smoke Test

The smoke test environment is a transient environment where deployments happen and integration tests are run.  Truly agile shops probably do this in their dev or integration environments.

Load Test

Load Test environments have a very specific purpose. They exist outside the normal promotion path in most organizations.


This is an update to https://joe.blog.freemansoft.com/2016/09/an-environment-for-every-season.html

Created 2022 03 05


Popular posts from this blog

Understanding your WSL2 RAM and swap - Changing the default 50%-25%

Installing the RNDIS driver on Windows 11 to use USB Raspberry Pi as network attached

DNS for Azure Point to Site (P2S) VPN - getting the internal IPs