SlideShare una empresa de Scribd logo
1 de 23
Feature Flags
Produktkonguration ohne Branching




Alex Bepple
it-agile-Konferenz München, 8. Juli 2011
Minimal Marketable Feature



Feature A ausliefern,
Feature B (noch) nicht
Wartungsrelease

Bugs beheben,
während das nächste
Release entwickelt wird


Wie viele Versionen
warten Sie?
Kundenwünsche


Kunde 1:
Features A & B
Kunde 2:
Features B & C
Branching
Konguration im VCS
Wartungsbranches
Feature-Branches
Kombinatorische
Explosion
Mördsch-Hölle


Strukturelle Konikte


Semantische Konikte
Integrationsrisiken

✦   Wie stellt man sicher,
    dass sich alle benötigten
    Kombinationen integrieren lassen?
✦   Gar nicht mehr!
✦   Integration aus Feature-Branches erst sehr spät.
✦   Continuous Building ≠ Continuous Integration
Schneller zum
Big Ball of Mud


 Branches erschweren
 Refactoring
Ein Branch
Weichen …

Feature bits
Latent code patterns
Feature toggles
Gatekeeper
Weicheschalter (!)
if
(schalter)
 fuehre_tolle_neue_berechnung_durch
end
… und Stellvorrichtungen


Feature Flippers


Runtime vs Buildtime
Beispiel Flickr
Alternativen zum If


✦   Im UI verbergen
✦   Dependency Injection
✦   GoF-Patterns
    ✦   Command, Strategy, Chain of Responsibility
Nicht vergessen:
nachträglich ausbauen
Wer macht’s?
Und in auslieferbaren
Produkten?


 Jede Einstellung ist
 eine Weichen-
 Stellvorrichtung.
Weiche zu mir

✦   Produkt exibel kongurieren,
    aber Continuous Integration erhalten


✦   Continuous Deployment
✦   A/B-Testen
✦   Feature bei Problemen schnell wieder abschalten
Frohes Schalten!
Zum Nachlesen


http://martinfowler.com/bliki/FeatureToggle.html
http://code.ickr.com/blog/2009/12/02/ipping-out/

Más contenido relacionado

Destacado

Building React Applications with Redux
Building React Applications with ReduxBuilding React Applications with Redux
Building React Applications with ReduxFITC
 
Entwickeln ist gut, Releasen ist besser
Entwickeln ist gut, Releasen ist besserEntwickeln ist gut, Releasen ist besser
Entwickeln ist gut, Releasen ist besserSimon Hohenadl
 
React + Redux Introduction
React + Redux IntroductionReact + Redux Introduction
React + Redux IntroductionNikolaus Graf
 

Destacado (8)

React Redux React Native
React Redux React NativeReact Redux React Native
React Redux React Native
 
Building React Applications with Redux
Building React Applications with ReduxBuilding React Applications with Redux
Building React Applications with Redux
 
Entwickeln ist gut, Releasen ist besser
Entwickeln ist gut, Releasen ist besserEntwickeln ist gut, Releasen ist besser
Entwickeln ist gut, Releasen ist besser
 
The Road To Redux
The Road To ReduxThe Road To Redux
The Road To Redux
 
Redux Universal
Redux UniversalRedux Universal
Redux Universal
 
Using redux
Using reduxUsing redux
Using redux
 
How to Redux
How to ReduxHow to Redux
How to Redux
 
React + Redux Introduction
React + Redux IntroductionReact + Redux Introduction
React + Redux Introduction
 

Similar a Feature flags

DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungDevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungMarc Müller
 
PHP vs Architektur ATAM Gruppenarbeit
PHP vs Architektur ATAM GruppenarbeitPHP vs Architektur ATAM Gruppenarbeit
PHP vs Architektur ATAM GruppenarbeitMayflower GmbH
 
Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Torsten Kleiber
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenCarola Lilienthal
 
Einführung in das Alvine Handelsframwork
Einführung in das Alvine HandelsframworkEinführung in das Alvine Handelsframwork
Einführung in das Alvine Handelsframworkschukai GmbH
 
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickTaugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickPhilipp Burgmer
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & DominoUlrich Krause
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for BeginnersUlrich Krause
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Jürg Stuker
 

Similar a Feature flags (9)

DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungDevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
 
PHP vs Architektur ATAM Gruppenarbeit
PHP vs Architektur ATAM GruppenarbeitPHP vs Architektur ATAM Gruppenarbeit
PHP vs Architektur ATAM Gruppenarbeit
 
Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
 
Einführung in das Alvine Handelsframwork
Einführung in das Alvine HandelsframworkEinführung in das Alvine Handelsframwork
Einführung in das Alvine Handelsframwork
 
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickTaugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 

Feature flags

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n