Skip to main content
Erschienen in: Empirical Software Engineering 1/2021

01.01.2021

Software development with feature toggles: practices used by practitioners

verfasst von: Rezvan Mahdavi-Hezaveh, Jacob Dremann, Laurie Williams

Erschienen in: Empirical Software Engineering | Ausgabe 1/2021

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

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.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Anhänge
Nur mit Berechtigung zugänglich
Fußnoten
1
Feature toggles are also called feature flags, feature bits, feature flippers, and feature switches (Fowler 2010).
 
2
Dark launching is a practice in which code is incrementally deployed into production but remains invisible to users (Parnin et al. 2017).
 
Literatur
Zurück zum Zitat Dale NB, Weems C, Headington MR (2003) Introduction to java and software design: swing update. Jones & Bartlett Learning, Burlington Dale NB, Weems C, Headington MR (2003) Introduction to java and software design: swing update. Jones & Bartlett Learning, Burlington
Zurück zum Zitat Feitelson DG, Frachtenberg E, Beck KL (2013) Development and deployment at facebook. IEEE Internet Comput 17(4):8–17CrossRef Feitelson DG, Frachtenberg E, Beck KL (2013) Development and deployment at facebook. IEEE Internet Comput 17(4):8–17CrossRef
Zurück zum Zitat Garousi V, Felderer M, Mäntylä MV (2016) The need for multivocal literature reviews in software engineering: complementing systematic literature reviews with grey literature. In: Proceedings of the 20th international conference on evaluation and assessment in software engineering, pp 1–6 Garousi V, Felderer M, Mäntylä MV (2016) The need for multivocal literature reviews in software engineering: complementing systematic literature reviews with grey literature. In: Proceedings of the 20th international conference on evaluation and assessment in software engineering, pp 1–6
Zurück zum Zitat Garousi V, Felderer M, Mäntylä MV (2019) Guidelines for including grey literature and conducting multivocal literature reviews in software engineering. Inf Softw Technol 106:101–121CrossRef Garousi V, Felderer M, Mäntylä MV (2019) Guidelines for including grey literature and conducting multivocal literature reviews in software engineering. Inf Softw Technol 106:101–121CrossRef
Zurück zum Zitat Garousi V, Felderer M, Mäntylä MV, Rainer A (2019) Benefitting from the grey literature in software engineering research. arXiv:1911.12038 Garousi V, Felderer M, Mäntylä MV, Rainer A (2019) Benefitting from the grey literature in software engineering research. arXiv:1911.​12038
Zurück zum Zitat Hammarberg M, Sunden J (2014) Kanban in action. Manning Publications Co., Shelter Island Hammarberg M, Sunden J (2014) Kanban in action. Manning Publications Co., Shelter Island
Zurück zum Zitat Humble J, Farley D (2010) Continuous delivery: reliable software releases through build, test, and deployment automation (Adobe Reader), Pearson Education, Upper Saddle River Humble J, Farley D (2010) Continuous delivery: reliable software releases through build, test, and deployment automation (Adobe Reader), Pearson Education, Upper Saddle River
Zurück zum Zitat Kohavi R, Longbotham R, Sommerfield D, Henne RM (2009) Controlled experiments on the web: survey and practical guide. Data Mining and Knowledge Discovery 18(1):140–181MathSciNetCrossRef Kohavi R, Longbotham R, Sommerfield D, Henne RM (2009) Controlled experiments on the web: survey and practical guide. Data Mining and Knowledge Discovery 18(1):140–181MathSciNetCrossRef
Zurück zum Zitat Lefebvre C, Manheimer E, Glanville J (2008) Searching for studies. Cochrane handbook for systematic reviews of interventions:, Cochrane book series, pp 95–150 Lefebvre C, Manheimer E, Glanville J (2008) Searching for studies. Cochrane handbook for systematic reviews of interventions:, Cochrane book series, pp 95–150
Zurück zum Zitat Likert R (1932) A technique for the measurement of attitudes. Arch Psychol Likert R (1932) A technique for the measurement of attitudes. Arch Psychol
Zurück zum Zitat Meinicke J, Wong C-P, Vasilescu B, Kaestner C (2020) Exploring differences and commonalities between feature flags and configuration options. In: Proceedings of the 42nd international conference on software engineering - software engineering in practice (ICSE-SEIP) Meinicke J, Wong C-P, Vasilescu B, Kaestner C (2020) Exploring differences and commonalities between feature flags and configuration options. In: Proceedings of the 42nd international conference on software engineering - software engineering in practice (ICSE-SEIP)
Zurück zum Zitat Moore GA (2009) Crossing the chasm: Marketing and selling technology project. Harper Collins, New York Moore GA (2009) Crossing the chasm: Marketing and selling technology project. Harper Collins, New York
Zurück zum Zitat Neely S, Stolt S (2013) Continuous delivery? easy! just change everything (well, maybe it is not that easy). In: 2013 Agile conference. IEEE, pp 121–128 Neely S, Stolt S (2013) Continuous delivery? easy! just change everything (well, maybe it is not that easy). In: 2013 Agile conference. IEEE, pp 121–128
Zurück zum Zitat Parnin C, Helms E, Atlee C, Boughton H, Ghattas M, Glover A, Holman J, Micco J, Murphy B, Savor T et al (2017) The top 10 adages in continuous deployment. IEEE Software 34(3):86–95CrossRef Parnin C, Helms E, Atlee C, Boughton H, Ghattas M, Glover A, Holman J, Micco J, Murphy B, Savor T et al (2017) The top 10 adages in continuous deployment. IEEE Software 34(3):86–95CrossRef
Zurück zum Zitat Rahman AAU, Helms E, Williams L (2015) Chris Parnin Synthesizing continuous deployment practices used in software development. In: Proceedings IEEE Agile Conference, pp 1–10 Rahman AAU, Helms E, Williams L (2015) Chris Parnin Synthesizing continuous deployment practices used in software development. In: Proceedings IEEE Agile Conference, pp 1–10
Zurück zum Zitat Rahman MT, Querel L-P, Rigby PC, Adams B (2016) Feature toggles: practitioner practices and a case study. In: Proceedings of the 13th International conference on mining software repositories. ACM, pp 201–211 Rahman MT, Querel L-P, Rigby PC, Adams B (2016) Feature toggles: practitioner practices and a case study. In: Proceedings of the 13th International conference on mining software repositories. ACM, pp 201–211
Zurück zum Zitat Rahman MT, Rigby PC, Shihab E (2018) The modular and feature toggle architectures of google chrome. Empir Softw Eng, 1–28 Rahman MT, Rigby PC, Shihab E (2018) The modular and feature toggle architectures of google chrome. Empir Softw Eng, 1–28
Zurück zum Zitat Rodríguez P, Haghighatkhah A, Lwakatare LE, Teppola S, Suomalainen T, Eskeli J, Karvonen T, Kuvaja P, Verner JM, Oivo M (2017) Continuous deployment of software intensive products and services: A systematic mapping study. J Syst Softw 123:263–291CrossRef Rodríguez P, Haghighatkhah A, Lwakatare LE, Teppola S, Suomalainen T, Eskeli J, Karvonen T, Kuvaja P, Verner JM, Oivo M (2017) Continuous deployment of software intensive products and services: A systematic mapping study. J Syst Softw 123:263–291CrossRef
Zurück zum Zitat Saldaña J (2015) The coding manual for qualitative researchers. Sage Saldaña J (2015) The coding manual for qualitative researchers. Sage
Zurück zum Zitat Sayagh M, Kerzazi N, Adams B, Petrillo F (2018) Software configuration engineering in practice: Interviews, survey, and systematic literature review. IEEE Trans Softw Eng Sayagh M, Kerzazi N, Adams B, Petrillo F (2018) Software configuration engineering in practice: Interviews, survey, and systematic literature review. IEEE Trans Softw Eng
Zurück zum Zitat Schermann G, Cito J, Leitner P (2018) Continuous experimentation: challenges, implementation techniques, and current research. IEEE Softw 35(2):26–31CrossRef Schermann G, Cito J, Leitner P (2018) Continuous experimentation: challenges, implementation techniques, and current research. IEEE Softw 35(2):26–31CrossRef
Zurück zum Zitat Schermann G, Cito Jürgen, Leitner P, Zdun U, Gall HC (2018) We’re doing it live: A multi-method empirical study on continuous experimentation. Inf Softw Technol 99:41–57CrossRef Schermann G, Cito Jürgen, Leitner P, Zdun U, Gall HC (2018) We’re doing it live: A multi-method empirical study on continuous experimentation. Inf Softw Technol 99:41–57CrossRef
Zurück zum Zitat Schneid K (2017) Branching strategies for developing new features within the context of continuous delivery. In: CSE@ SE, pp 28–35 Schneid K (2017) Branching strategies for developing new features within the context of continuous delivery. In: CSE@ SE, pp 28–35
Zurück zum Zitat Stephens R (2015) Beginning software engineering. Wiley, New York Stephens R (2015) Beginning software engineering. Wiley, New York
Zurück zum Zitat Tang C, Kooburat T, Venkatachalam P, Chander A, Wen Z, Narayanan A, Dowell P, Karl R (2015) Holistic configuration management at facebook. In: Proceedings of the 25th symposium on operating systems principles, pp 328–343 Tang C, Kooburat T, Venkatachalam P, Chander A, Wen Z, Narayanan A, Dowell P, Karl R (2015) Holistic configuration management at facebook. In: Proceedings of the 25th symposium on operating systems principles, pp 328–343
Zurück zum Zitat Wohlin C (2014) Guidelines for snowballing in systematic literature studies and a replication in software engineering. In: Proceedings of the 18th international conference on evaluation and assessment in software engineering. Citeseer, p 38 Wohlin C (2014) Guidelines for snowballing in systematic literature studies and a replication in software engineering. In: Proceedings of the 18th international conference on evaluation and assessment in software engineering. Citeseer, p 38
Metadaten
Titel
Software development with feature toggles: practices used by practitioners
verfasst von
Rezvan Mahdavi-Hezaveh
Jacob Dremann
Laurie Williams
Publikationsdatum
01.01.2021
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 1/2021
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-020-09901-z

Weitere Artikel der Ausgabe 1/2021

Empirical Software Engineering 1/2021 Zur Ausgabe

Premium Partner