Building Trust in Code — The Release Candidate (RC)

Sercan DUMANSIZ
3 min readOct 30, 2023

The Etymology of “Candidate”

The term “Release Candidate” (RC) carries historical connotations related to trust and reliability. It derives from the Latin word “candidatus,” which referred to someone dressed in white during ancient Roman elections. This attire symbolized honesty and purity. The Latin word “candidatus” itself came from “candidus,” meaning “bright, shining white,” which connects it to concepts of trust and brightness.

The Concept of Trust in Code

In software development, trust in code is crucial. The code should be reliable and free from issues before it’s released to users. Let’s focus on the steps of building trust in code, particularly during the release phase.

Release Candidate Branch

To ensure the reliability of code during the release phase, a dedicated release candidate branch is created. This branch contains all the tested features and is often referred to as an “RC” or “Release Candidate.” The term “candidate” is fitting because, at this stage, the code is a potential candidate for the final release.

Code Freeze

The creation of a release candidate branch represents a “code freeze.” This means that no further changes or additions are allowed in the codebase, ensuring that the code remains consistent during testing.

The “code freeze” during the release candidate phase is essential for building trust in code. It provides assurance that the code remains unchanged while it undergoes rigorous testing. If significant issues are discovered, they are addressed without introducing new changes.

Testing in the Release Candidate Phase

Once the release branch is established, the testing phase begins. This phase is critical for building trust in the code. Here’s what it typically involves:

Functional Testing
This creates a test plan based on the functional requirements and compares the results with the expected results.
Regression Testing
This test ensures that bug fixes or new features shouldn’t break the existing behaviors.
Load Testing
This tests the application’s performance by simulating different loads to calculate its capacity.
Stress Testing
Deliberate high-load scenarios test whether the systems can function normally.
User Acceptance Testing
Involve users or stakeholders to validate that the software meets their requirements.

Release Candidates as Trustworthy Code

The term “Release Candidate” embodies the concept of trust in software development. By creating a release candidate branch, enforcing a code freeze, and conducting thorough testing, developers can build trust in their code. This trust is vital for delivering reliable and high-quality software to users.

By following these best practices, software development teams can ensure that their “candidates” for release shine brightly, just like the candles that light the way for users of their software.

References
https://www.merriam-webster.com/dictionary/candidate

https://www.linkedin.com/posts/alexxubyte_systemdesign-coding-interviewtips-activity-7123333778965458945-GM0J

--

--