# Software Development with Feature Toggles: Practices used by   Practitioners

**Authors:** Rezvan Mahdavi-Hezaveh, Jacob Dremann, Laurie Williams

arXiv: 1907.06157 · 2021-03-30

## TL;DR

This paper empirically investigates how software practitioners use feature toggles, identifying 17 best practices across management, initialization, implementation, and cleanup to improve their effective and safe use.

## Contribution

It provides a comprehensive empirical analysis of feature toggle practices used by practitioners, categorizing and documenting 17 specific practices to guide better usage.

## Key findings

- All surveyed companies use dedicated tools for feature toggles.
- Frequent practices include documenting metadata, setting default values, and logging changes.
- Identified practices can help improve feature toggle management and safety.

## Abstract

Background: Using feature toggles is a technique that allows developers to either turn a feature on or off with a variable in a conditional statement. Feature toggles are increasingly used by software companies to facilitate continuous integration and continuous delivery. However, using feature toggles inappropriately may cause problems which can have a severe impact, such as code complexity, dead code, and system failure. For example, the erroneous repurposing of an old feature toggle caused Knight Capital Group, an American global financial services firm, to go bankrupt due to the implications of the resultant incorrect system behavior. Aim: The goal of this research project is to aid software practitioners in the use of practices to support software development with feature toggles through an empirical study of feature toggle practice usage by practitioners. Method: We conducted a qualitative analysis of 99 artifacts from the grey literature and 10 peer-reviewed papers about feature toggles. We conducted a survey of practitioners from 38 companies. Results: We identified 17 practices in 4 categories: Management practices, Initialization practices, Implementation practices, and Clean-up practices. We observed that all of the survey respondents use a dedicated tool to create and manage feature toggles in their code. Documenting feature toggle's metadata, setting up the default value for feature toggles, and logging the changes made on feature toggles are also frequently-observed practices. Conclusions: The feature toggle development practices discovered and enumerated in this work can help practitioners more effectively use feature toggles. This work can enable future mining of code repositories to automatically identify feature toggle practices.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1907.06157/full.md

## Figures

6 figures with captions in the complete paper: https://tomesphere.com/paper/1907.06157/full.md

## References

50 references — full list in the complete paper: https://tomesphere.com/paper/1907.06157/full.md

---
Source: https://tomesphere.com/paper/1907.06157