Optivem Journal

Optivem Journal

Share this post

Optivem Journal
Optivem Journal
TDD in Legacy Code - Release Stage
Copy link
Facebook
Email
Notes
More
Test Driven Development

TDD in Legacy Code - Release Stage

In Legacy Code, releases might be manual, which is inconvenient for ATDD. Let's see how to introduce automated releases, before starting ATDD.

Valentina Jemuović's avatar
Valentina Jemuović
Oct 03, 2024
∙ Paid
10

Share this post

Optivem Journal
Optivem Journal
TDD in Legacy Code - Release Stage
Copy link
Facebook
Email
Notes
More
40
3
Share

🔒Hello, this is Valentina with a premium issue of the Optivem Journal. I help Engineering Leaders & Senior Software Developers apply TDD in Legacy Code. This article is part of the TDD in Legacy Code series. To get these articles in your inbox every week, subscribe:


Legacy Code often has Manual Releases

In Legacy Code, the release process might be manual. This means there’s a written procedure that documents all the deployment steps - for example, manually setting up the environment, manually deploying the artifacts to an environment, manually running database migration scripts, and manually opening up the app after the deployment to make sure that it’s up and running.

Manual Releases are inconvenient for ATDD

The problem with manual releases is that they are time-consuming and error-prone. Manual Releases are not reliable. For example, we can deploy to the UAT Environment, and it’s fine, but if we make a small error in the deployment to the Production Environment, the system doesn’t work for the end users.

Furthermore, Manual Releases would make it inconvenient for us to practice ATDD. Since we may need to run Acceptance Tests on the pipeline multiple times a day, this isn’t practical if the releases are manual.

We should have a Release Stage to support ATDD

Before we start with ATDD, we need to ensure that we set up an automated release process. That’s why we need a Release Stage in our Pipeline. The Release Stage automates environment configuration and deployment of our system environments, as well as basic smoke testing of the system. By eliminating manual activities in the deployment process, we gain both safety and speed, eliminate deployment errors, and perform deployment fast anytime.

Previously, we set up the Commit Stage, which resulted in publishing the Docker Images for the Docker Registry. In this article, we will be looking at the Release Stage - deploying the Docker Images to environments.

Here are the steps for adding the Release Stage to Legacy Code. You’ll get tasks to implement in your GitHub Sandbox Project. ⬇️⬇️⬇️

This post is for paid subscribers

Already a paid subscriber? Sign in
© 2025 Valentina Jemuović, Optivem
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share

Copy link
Facebook
Email
Notes
More