2. pen4education
Agenda
• What are feature-flags?
• Common practices
• Types
• Longevity versus dynamism
• Release flags
• Real cases from Moip
• Not a silver bullet
• The superhero: IFMAN DEMO!
3. pen4education
What are feature-flags?
• Flags = Toggles = Bits = Flippers = Switches
• Variables used in conditional statements / strategy pattern
• A way to modify system behavior
• Enable/disable features
8. pen4education
Release flags
• Trunk-based development
• Continuous integration, delivery and
deployment
• Small commits / testing culture
• Reduce deployment risks
• Reduce costs of long lived branches
• Escape from merge hell
9. pen4education
Real cases from Moip
• Contestation central
• Third party transfers
• Two factor authentication
• Checkout
• OAuth 2.0
• Registered "boleto"
10. pen4education
Not a silver bullet
• Feature flag hell
• More test scenarios
• Keep track of feature-flags' states
• Harder to support, debug and replicate
problems
• Technical debt - "Toggle removal task" onto
the team's backlog
• Expiration dates (TTL) / fail a test
• Limit on the number of dynamic feature
flags in a system
11. pen4education
"Your first choice should be to break the feature
down so you can safely introduce parts of the
feature into the product. The advantages of doing this
are the same ones as any strategy based on small,
frequent releases."
- Martin Fowler