Glossary

Simpson’s Paradox

Simpson’s Paradox, otherwise known as the Yule-Simpson Effect, is a reversal paradox where the correlation found in each of several groups either disappears or even reverses when the groups are combined. It’s relevant in the context of many non-experimental studies, including A/B tests. Examples of the Paradox One classic example…

How to Branch by Abstraction with Feature Flags

Branching by abstraction is a technique used for making large-scale changes gradually, while simultaneously continuing to release the system. This is an important part of trunk-based development, and is critical for creating a continuous integration and continuous delivery (CI/CD) pipeline. In a non-CI/CD situation, the standard way to make these…

Type I Error

A type I error (or type 1 error), also called a false positive, is a type of statistical error where the test wrongly gives a positive result, when a perfect test would report a negative. It is one of four possible results from a hypothesis test. What is Hypothesis Testing?…

Type II Error

A type II error (type 2 error) is one of two types of statistical errors that can result from a hypothesis test (the other being a type I error). Technically speaking, a type II error occurs when a false null hypothesis is accepted, also known as a false negative. In…

What is CI/CD?

CI/CD is the acronym in software development for the combination of continuous integration (CI) and continuous delivery (CD). It can also be expanded to include continuous deployment, but to avoid confusion in this article, we’ll be using CD to refer to continuous delivery. It’s an extremely useful agile process for…

What is Trunk-Based Development?

Trunk-based development (TBD) is a branching model for software development where developers merge every new feature, bug fix, or other code change to one central branch in the version control system. This branch is called “trunk”, “mainline”, or in Git, the “master branch”. Trunk-based development enables continuous integration – and,…

Feature Flag Management

What are feature flags? A feature flag (or feature toggle) is a piece of conditional code which allows a software development team to separate code deployment from feature release. They’re used for A/B testing on both the front- and back-end, for canary deployment, and to make continuous integration and continuous…

Feature Flags in the Software Release Life Cycle

We have been well familiar with the Software Development Life Cycle (SDLC) for some time now.   SDLC is a broad framework for defining development methodologies. It’s an overarching definition to include any project management framework that follows a standard set of procedures for developing software. Often when we hear…

What is Continuous Integration, and Why You Need It Now

As a software development team increases in size and the functionality becomes increasingly complex, it becomes more important to frequently verify the integrity of the product build. Many development and QA professionals have come to realize that some degree of automation is the only feasible approach to effectively manage frequent…

Reduce Risk in Your Database Migration

What comes to your mind when you think of feature flags? If you’ve heard of them, you probably think of them in the context of turning on and off new features. But feature flags have back-end use cases too – including but not limited to reducing risk in database migrations.…