1
00:00:00,040 --> 00:00:04,200
Olá bem vindas e bem vindos. 
A nossa exploração de hoje. 

2
00:00:04,800 --> 00:00:08,560
Vamos falar de um conceito 
assim, bem importante na 

3
00:00:08,560 --> 00:00:12,480
engenharia de software Moderna. 
São as featur flags. 

4
00:00:12,840 --> 00:00:15,840
Já ouviu falar? 
Às vezes chamam de featur toggle

5
00:00:15,840 --> 00:00:18,160
também. 
Isso mesmo, é um nome que 

6
00:00:18,160 --> 00:00:21,200
aparece bastante. 
E pra nossa conversa, a gente tá

7
00:00:21,200 --> 00:00:24,640
se baseando num trecho do livro 
engenharia de software Moderna, 

8
00:00:24,680 --> 00:00:28,040
do Marco Túlio Valente. 
Ele explica direitinho como 

9
00:00:28,040 --> 00:00:30,520
funciona e porque é tão, tão 
útil, né? 

10
00:00:30,920 --> 00:00:32,720
É um ótimo material de 
referência, sim. 

11
00:00:33,120 --> 00:00:37,000
O nosso objetivo aqui é simples,
entender o que são essas tais 

12
00:00:37,000 --> 00:00:39,280
flag, sabe? 
E como elas resolvem um 

13
00:00:39,280 --> 00:00:42,480
problemão do desenvolvimento 
ágil, principalmente com 

14
00:00:42,480 --> 00:00:45,840
deplemento contínuo, e também 
descobrir uns usos bem 

15
00:00:46,200 --> 00:00:49,000
interessantes Pra Elas. 
Preparados? 

16
00:00:49,360 --> 00:00:52,760
Então, tá, vamos começar a abrir
essa caixa, vamos lá, imagina só

17
00:00:52,760 --> 00:00:55,680
o cenário, equipes lançando 
software novo. 

18
00:00:55,840 --> 00:01:02,360
Não toda semana, mas todo dia, 
às vezes várias vezes no mesmo 

19
00:01:02,360 --> 00:01:04,720
dia. 
Isso é o tal do deployment 

20
00:01:04,720 --> 00:01:10,280
continuo, entrega constante. 
Mas aí, né, vem a pergunta, como

21
00:01:10,280 --> 00:01:13,640
é que você lida com aquela 
funcionalidade que ainda está na

22
00:01:13,640 --> 00:01:18,160
metade ou que não foi 100% 
testada ou que talvez pese no 

23
00:01:18,160 --> 00:01:21,120
desempenho? 
Como fazer isso sem travar todo 

24
00:01:21,120 --> 00:01:23,160
o fluxo de entrega para o 
usuário final? 

25
00:01:23,320 --> 00:01:25,160
É complicado. 
Exato. 

26
00:01:25,400 --> 00:01:28,560
Esse é o dilema. 
Antigamente, bom, a solução mais

27
00:01:28,560 --> 00:01:31,840
comum era deixar essas partes 
incompletas em pranches 

28
00:01:31,840 --> 00:01:34,600
separado, sabe? 
Longe do código principal, o 

29
00:01:34,600 --> 00:01:37,720
Trump. 
Só que essa separação por muito 

30
00:01:37,720 --> 00:01:41,080
tempo acabava criando o que o 
pessoal chama de inferno da 

31
00:01:41,080 --> 00:01:45,480
integração, o integration hel. 
Ah, sim, aquele caos na hora de 

32
00:01:45,480 --> 00:01:47,920
juntar tudo de volta, né? 
Pois é. 

33
00:01:49,080 --> 00:01:53,040
Era um momento super propenso a 
erros, depois de semanas, às 

34
00:01:53,040 --> 00:01:58,360
vezes meses, com o código 
separado e as práticas modernas,

35
00:01:58,360 --> 00:02:02,600
como integração contínua e o 
desenvolvimento baseado no trunk

36
00:02:02,600 --> 00:02:06,240
quer dizer, integrar o código no
principal o mais rápido 

37
00:02:06,240 --> 00:02:10,000
possível, nasceram justamente 
para evitar esse problemão. 

38
00:02:10,199 --> 00:02:15,000
E aí, nesse ponto exato que as 
featur flags entram como 11 

39
00:02:15,000 --> 00:02:17,480
luva, né? 
Uma solução bem elegante. 

40
00:02:17,880 --> 00:02:21,440
A ideia central é até que 
simples, você integra o código 

41
00:02:21,440 --> 00:02:24,760
novo no Trump, mesmo que ele não
esteja pronto pra todo mundo 

42
00:02:24,760 --> 00:02:27,440
ver. 
Mas você mantém ele desligado na

43
00:02:27,440 --> 00:02:30,680
produção. 
Por padrão, ele não roda na 

44
00:02:30,680 --> 00:02:32,160
prática. 
Como funciona? 

45
00:02:32,560 --> 00:02:36,800
O código novo fica dentro de uma
condição, tipo um if, que checam

46
00:02:36,800 --> 00:02:39,600
a variável. 
Essa variável é o flag. 

47
00:02:40,000 --> 00:02:44,280
Se o flag tá desligado, ou seja 
falso, o sistema simplesmente 

48
00:02:44,360 --> 00:02:46,280
pula aquele pedaço de código 
novo. 

49
00:02:46,600 --> 00:02:48,880
Ele tá lá no meio dos outros, 
mas inativo. 

50
00:02:48,880 --> 00:02:51,600
Pensa no interruptor de luz? 
Simples assim. 

51
00:02:52,040 --> 00:02:56,520
Enquanto a funcionalidade nova, 
sei lá, a busca avançada não tá 

52
00:02:56,520 --> 00:03:00,640
pronta para o público. 
O interruptor flag nova busca 

53
00:03:00,800 --> 00:03:04,400
fica desligado. 
O código tá lá integrado, 

54
00:03:04,400 --> 00:03:08,200
convivendo com o resto, mas não 
afeta ninguém na ponta. 

55
00:03:09,080 --> 00:03:12,560
Isso permite uma coisa chave, 
separar o diployment, que é 

56
00:03:12,560 --> 00:03:15,280
colocar o código no servidor do 
Elise. 

57
00:03:15,520 --> 00:03:17,440
Que é liberar a funcionalidade 
para o usuário. 

58
00:03:17,720 --> 00:03:22,440
São 2 coisas diferentes agora. 
Boa analogia do interruptor, o 

59
00:03:22,440 --> 00:03:25,560
livro que a gente tá usando. 
Ele traz um exemplo legal também

60
00:03:26,080 --> 00:03:28,560
de uma página nova para um 
sistema. 

61
00:03:28,760 --> 00:03:30,960
A equipe tá refazendo uma página
inteira. 

62
00:03:31,320 --> 00:03:35,200
Aí eles criam flag. 
Acho que era nova PAD no exemplo

63
00:03:35,920 --> 00:03:39,880
por padrão desligado. 
Todo mundo vê a página antiga, 

64
00:03:39,920 --> 00:03:42,640
certo? 
Mas os desenvolvedores lá na 

65
00:03:42,640 --> 00:03:47,440
máquina deles ou num ambiente de
teste, eles podem ligar o flag. 

66
00:03:47,640 --> 00:03:51,600
Quando o nova pag está ligado, o
sistema carrega a versão nova 

67
00:03:51,600 --> 00:03:55,080
para eles poderem testar. 
Exato, e é importante notar uma 

68
00:03:55,080 --> 00:03:58,360
coisa, nesse exemplo da página, 
pode rolar uma duplicação de 

69
00:03:58,360 --> 00:04:00,360
código temporária. 
Ah, é? 

70
00:04:01,640 --> 00:04:03,640
Como assim? 
É, você vai ter a lógica da 

71
00:04:03,640 --> 00:04:07,280
página antiga e a lógica da nova
convivendo ali no mesmo código 

72
00:04:07,280 --> 00:04:10,520
por um tempo. 
Mas assim, é uma duplicação 

73
00:04:10,520 --> 00:04:14,080
controlada, passageira. 
Assim que a página nova está ok,

74
00:04:14,280 --> 00:04:18,360
validada, liberada para geral, 
aí o código antigo e o próprio 

75
00:04:18,360 --> 00:04:20,839
flag, novo página, são 
removidos. 

76
00:04:20,959 --> 00:04:24,160
É uma transição, sabe? 
Não vira dívida técnica se for 

77
00:04:24,160 --> 00:04:27,320
bem gerenciado. 
Entendi é um mal necessário e 

78
00:04:27,320 --> 00:04:29,120
temporário, então? 
Isso. 

79
00:04:29,840 --> 00:04:32,400
Se tiver disciplina para limpar 
depois isso. 

80
00:04:32,400 --> 00:04:34,840
Não é só teoria, né? 
O pessoal usa para valer. 

81
00:04:35,360 --> 00:04:38,800
O livro cita um estudo bem 
interessante, pesquisadores lá 

82
00:04:38,800 --> 00:04:40,880
do Canadá. 
Sim, de universidades 

83
00:04:40,880 --> 00:04:43,120
canadenses. 
Eles fizeram uma análise bem 

84
00:04:43,120 --> 00:04:46,000
profunda. 
Eles pegaram 39 versões do 

85
00:04:46,000 --> 00:04:51,000
Google Chrome num período de 5 
anos 5 anos de desenvolvimento 

86
00:04:51,000 --> 00:04:53,240
do Chrome. 
É, e os números que eles acharam

87
00:04:53,240 --> 00:04:57,040
são impressionantes, dão uma 
ideia da escala disso. 

88
00:04:57,320 --> 00:05:01,600
Nesses 5 anos, eles 
identificaram mais de 2400 

89
00:05:01,600 --> 00:05:03,920
feature flags diferentes no 
código do Chrome. 

90
00:05:04,080 --> 00:05:10,080
Nossa, mais de 2400 é? 
E a evolução é clara, a primeira

91
00:05:10,080 --> 00:05:14,600
versão que eles olharam tinha 
263 flags, a última já tinha 

92
00:05:14,600 --> 00:05:18,600
2409. 
Uau e o mais legal que você 

93
00:05:18,600 --> 00:05:21,640
comentou é a dinâmica disso, né?
Exato. 

94
00:05:21,880 --> 00:05:25,080
O estudo mostrou que, em média, 
cada versão nova do Chrome 

95
00:05:25,200 --> 00:05:29,800
adicionavam uns 73 flags novos e
removia outros 43. 

96
00:05:29,800 --> 00:05:31,880
Isso mostra que não é só 
acumular, né? 

97
00:05:31,880 --> 00:05:35,400
Tem um ciclo de vida, cria, usa,
remove. 

98
00:05:35,400 --> 00:05:39,680
Com certeza esses números altos 
de adição e remoção eles não 

99
00:05:39,680 --> 00:05:43,600
indicam bagunça, pelo contrário,
mostram um processo super ativo 

100
00:05:43,600 --> 00:05:48,160
adaptativo, novas ideias são 
testadas com flags validadas, 

101
00:05:48,280 --> 00:05:50,960
liberadas aos poucos e ponto 
crucial. 

102
00:05:51,160 --> 00:05:53,560
Os flags temporários são limpos 
depois? 

103
00:05:53,880 --> 00:05:57,440
Isso mostra maturidade na 
gestão, ainda mais num projeto 

104
00:05:57,440 --> 00:05:59,800
gigante e rápido como um 
navegador. 

105
00:05:59,920 --> 00:06:03,320
É a dá para imaginar a 
disciplina que precisa ter para 

106
00:06:03,320 --> 00:06:09,080
gerenciar isso tudo no Chrome? 
Mas a utilidade dos flags não 

107
00:06:09,080 --> 00:06:12,640
para só em esconder código em 
desenvolvimento, certo? 

108
00:06:12,640 --> 00:06:15,080
Não mesmo. 
Eles viram ferramentas 

109
00:06:15,080 --> 00:06:18,480
estratégicas importantes mesmo 
depois que a funcionalidade 

110
00:06:18,480 --> 00:06:21,000
está, digamos, pronta 
internamente. 

111
00:06:21,480 --> 00:06:25,000
Um uso muito comum nessa fase é 
o release Canário. 

112
00:06:25,080 --> 00:06:27,000
Release Canário, adoro esse 
nome. 

113
00:06:27,400 --> 00:06:30,720
Para quem não conhece, a 
história vem dos Mineiros, né? 

114
00:06:30,760 --> 00:06:34,400
Isso os Mineiros de carvão 
levavam canários para as Minas. 

115
00:06:34,680 --> 00:06:37,480
Os passarinhos são mais 
sensíveis a gases tóxicos. 

116
00:06:37,480 --> 00:06:40,480
Se tivesse algum vazamento 
perigoso, Canário passava mal 

117
00:06:40,480 --> 00:06:43,000
primeiro e alertava os Mineiros 
para saírem correndo a? 

118
00:06:43,000 --> 00:06:47,000
Analogia para o software é bem 
direta, você usa um featur flag 

119
00:06:47,160 --> 00:06:50,600
para liberar uma função nova que
já está pronta, testada, mas só 

120
00:06:50,600 --> 00:06:54,960
para um grupo pequeno de 
usuários reais, tipo 1%, 2%, 

121
00:06:54,960 --> 00:06:58,560
talvez 5% do total. 
Esse grupinho funciona como o 

122
00:06:58,560 --> 00:07:02,240
nosso Canário. 
Ah, entendi se essa função nova.

123
00:07:02,480 --> 00:07:06,240
Causar algum pepino inesperado, 
um bug que passou batido, um 

124
00:07:06,240 --> 00:07:08,720
consumo de memória absurdo, 
qualquer coisa. 

125
00:07:08,960 --> 00:07:11,320
O impacto fica só naquele grupo 
pequeno. 

126
00:07:11,480 --> 00:07:14,800
Você detecta o gás tóxico antes 
de afetar todo mundo. 

127
00:07:14,800 --> 00:07:16,200
É isso? 
Exatamente. 

128
00:07:16,360 --> 00:07:19,800
E o melhor, se tudo correr bem 
com esse grupo inicial, se a 

129
00:07:19,800 --> 00:07:23,120
função se mostrar estável, você 
usa o mesmo flag para ir 

130
00:07:23,120 --> 00:07:25,960
aumentando. 
A exposição passa para 10%, 

131
00:07:25,960 --> 00:07:30,520
depois 25%, 50%, sempre 
monitorando claro, vendas 

132
00:07:30,520 --> 00:07:34,240
métricas, o feedback. 
Até chegar em 100% é um jeito 

133
00:07:34,240 --> 00:07:37,760
muito mais seguro de fazer 
lançamento, reduz muito o risco.

134
00:07:37,760 --> 00:07:41,200
Faz todo sentido, dá uma 
tranquilidade bem maior para 

135
00:07:41,200 --> 00:07:43,720
colocar coisa nova no ar, né? 
Com certeza. 

136
00:07:44,000 --> 00:07:47,560
E tem mais um uso estratégico 
bem forte, os testes AB. 

137
00:07:48,280 --> 00:07:51,200
A gente já falou deles aqui 
antes, mas vale conectar com os 

138
00:07:51,200 --> 00:07:54,640
flex. 
A ideia do teste AB é mostrar 2 

139
00:07:54,640 --> 00:07:58,560
ou mais versões de algo. 
Sei lá, a versão AEAB ao mesmo 

140
00:07:58,560 --> 00:08:00,600
tempo para grupos diferentes de 
usuários. 

141
00:08:00,600 --> 00:08:06,120
Tipo, um grupo vê o botão de 
comprar verde e outro grupo vê o

142
00:08:06,120 --> 00:08:09,920
mesmo botão azul b pra ver qual 
converte mais. 

143
00:08:09,920 --> 00:08:13,560
Exatamente esse tipo de coisa. 
E os featur flag são um motor 

144
00:08:13,560 --> 00:08:17,440
por trás disso, eles que 
permitem direcionar o usuário 

145
00:08:17,680 --> 00:08:21,560
pra um grupo A, ou BE garantir 
que ele veja sempre a mesma 

146
00:08:21,560 --> 00:08:24,120
versão. 
Aí você coleta dados reais. 

147
00:08:24,320 --> 00:08:28,080
Quem clicou mais, quem comprou 
mais, quem passou mais tempo e 

148
00:08:28,080 --> 00:08:32,520
decide qual versão a ou b é 
melhor com base em dados, não só

149
00:08:32,520 --> 00:08:35,679
em achismo. 
Entendi os flags são a 

150
00:08:35,679 --> 00:08:38,640
infraestrutura para poder fazer 
esses experimentos de forma 

151
00:08:38,640 --> 00:08:41,840
controlada. 
Isso tomar decisão baseada em 

152
00:08:41,840 --> 00:08:44,400
evidência. 
Os flags viabilizam isso em 

153
00:08:44,400 --> 00:08:48,520
larga escala. 
Bom, com tanto uso, esconder 

154
00:08:48,520 --> 00:08:52,040
código release Canário, teste 
AB. 

155
00:08:52,680 --> 00:08:56,200
E vendo o caso do Chrome, o 
número de flags pode ficar 

156
00:08:56,200 --> 00:08:59,960
gigante. 
Isso me faz pensar, como é que 

157
00:08:59,960 --> 00:09:04,920
as equipes gerenciam isso? 
Dezenas, centenas, talvez 

158
00:09:04,920 --> 00:09:07,880
milhares de flags? 
Não vira uma bagunça. 

159
00:09:07,960 --> 00:09:10,960
Ótimo ponto. 
Conforme o uso cresce, o 

160
00:09:10,960 --> 00:09:15,080
gerenciamento vira fundamental. 
O livro até menciona usar 

161
00:09:15,080 --> 00:09:19,000
estruturas de dados, tipo mapas 
ou tabelas, para guardar o 

162
00:09:19,000 --> 00:09:23,080
estado de cada flag ligado ou 
desligado e as regras. 

163
00:09:23,200 --> 00:09:27,840
Imagino, tipo, um lugar central 
onde o sistema vai lá e 

164
00:09:27,840 --> 00:09:31,880
pergunta, e aí, o flag, novo 
carrinho compras, está ativo pra

165
00:09:31,880 --> 00:09:34,680
esse usuário aqui antes de rodar
o código? 

166
00:09:34,680 --> 00:09:38,840
Serviços SAS mesmo só para 
gerenciar o ficture flex são 

167
00:09:38,840 --> 00:09:42,080
ferramentas bem sofisticadas, 
elas permitem segmentar o 

168
00:09:42,080 --> 00:09:44,640
usuário tipo. 
Ligar um flag só para quem está 

169
00:09:44,640 --> 00:09:48,280
no Brasil ou só para quem é 
cliente premium permitem agendar

170
00:09:48,280 --> 00:09:49,520
ativação? 
Tem. 

171
00:09:49,520 --> 00:09:59,800
Painéis de controle a. 
Agilidade é muito maior. 

172
00:10:00,320 --> 00:10:03,040
A principal vantagem é poder 
mudar o estado de um flag 

173
00:10:03,040 --> 00:10:06,920
remotamente, muitas vezes por 
uma interface web, sem precisar 

174
00:10:06,920 --> 00:10:11,680
mexer no código fonte, compilar,
testar, fazer deploy de tudo de 

175
00:10:11,680 --> 00:10:16,720
novo. 
OPA, isso é interessante. 

176
00:10:17,200 --> 00:10:20,480
Deu um problema grave com uma 
função nova em produção, você 

177
00:10:20,480 --> 00:10:24,600
entra num Painel e, pá, desliga 
o flag na hora ou tá fazendo um 

178
00:10:24,600 --> 00:10:27,360
Canário e quer aumentar de 5% 
pra 10? 

179
00:10:27,760 --> 00:10:30,920
Muda lá na hora. 
O teste AB acabou e a versão b 

180
00:10:30,920 --> 00:10:34,120
ganhou. 
Liga o flag da b pra 100%. 

181
00:10:34,360 --> 00:10:36,640
Tudo isso sem tocar no código 
que tá rodando. 

182
00:10:36,720 --> 00:10:41,160
Nossa, isso muda o jogo mesmo 
esse controle externo e dinâmico

183
00:10:41,160 --> 00:10:45,160
é poderoso. 
Mas com tanto flag, a gestão 

184
00:10:45,160 --> 00:10:49,480
continua sendo crítica, né? 
Quais os riscos se o pessoal não

185
00:10:49,480 --> 00:10:52,960
cuidar disso direito? 
Sem dúvida, o maior risco é 

186
00:10:52,960 --> 00:10:55,840
acumular o que chamam de dívida 
técnica de flags. 

187
00:10:56,240 --> 00:10:59,280
Se aqueles flags que eram para 
ser temporários de release de 

188
00:10:59,280 --> 00:11:03,720
experimento não são removidos 
depois, o código fica cheio de i

189
00:11:03,720 --> 00:11:07,200
felse velho fica mais difícil de
ler, de testar, de dar 

190
00:11:07,200 --> 00:11:10,280
manutenção e a própria lógica 
para decidir se um flag está 

191
00:11:10,280 --> 00:11:13,840
ativo ou não para alguém. 
Pode ficar super complexa, cheia

192
00:11:13,840 --> 00:11:16,400
de regras cruzadas e virar fonte
de bug. 

193
00:11:16,400 --> 00:11:19,240
Também precisa ter disciplina 
para limpar a casa. 

194
00:11:19,240 --> 00:11:21,920
Faz sentido. 
Tem que ter um processo para o 

195
00:11:21,920 --> 00:11:25,800
ciclo de vida do flag também, 
não só da funcionalidade. 

196
00:11:26,160 --> 00:11:28,640
O livro fala de mais algum tipo 
diferente de flag. 

197
00:11:28,640 --> 00:11:32,560
Sim, tem uma distinção útil que 
ele faz a maioria dos que a 

198
00:11:32,560 --> 00:11:36,160
gente falou, esconder. 
Código Canário AB são os releas 

199
00:11:36,160 --> 00:11:39,720
e flags, geralmente temporários 
para controlar o lançamento. 

200
00:11:39,960 --> 00:11:43,280
Mas tem outra categoria 
importante, os Business flags, 

201
00:11:43,400 --> 00:11:47,280
os flags de negócio. 
Flags de negócio Hum, qual a 

202
00:11:47,280 --> 00:11:49,840
diferença principal deles para 
os de release? 

203
00:11:49,880 --> 00:11:53,720
A diferença chave é que os 
Business flags normalmente não 

204
00:11:53,720 --> 00:11:56,960
são temporários. 
Eles são pensados para ser parte

205
00:11:56,960 --> 00:12:00,680
mais permanente da arquitetura. 
São usados para gerenciar 

206
00:12:00,680 --> 00:12:04,720
versões diferentes do produto ou
níveis de acesso ou pacotes de 

207
00:12:04,720 --> 00:12:05,560
função. 
Sabe? 

208
00:12:06,000 --> 00:12:10,160
Baseado em regra de negócio. 
O exemplo clássico é um software

209
00:12:10,160 --> 00:12:12,600
com plano grátis e plano pago. 
Hã, tá? 

210
00:12:13,840 --> 00:12:17,240
As funções que só tem no plano 
pago podem ser controladas por 

211
00:12:17,240 --> 00:12:19,920
um Business flag. 
Exatamente a mesma base de 

212
00:12:19,920 --> 00:12:23,440
código serve pros 2 tipos de 
usuário, mas os flags ligam ou 

213
00:12:23,440 --> 00:12:25,960
desligam recursos, dependendo da
conta do cliente. 

214
00:12:25,960 --> 00:12:29,280
Que interessante. 
Isso simplifica muito as coisas,

215
00:12:29,280 --> 00:12:31,160
né? 
Não precisa ter 2 códigos 

216
00:12:31,160 --> 00:12:34,040
diferentes pra manter. 
Precisamente, você mantém um 

217
00:12:34,040 --> 00:12:37,120
código só, o que facilita a 
manutenção, a evolução. 

218
00:12:37,480 --> 00:12:39,720
Mas consegue oferecer produtos 
diferentes para clientes 

219
00:12:39,720 --> 00:12:42,800
diferentes. 
É a mesma técnica do if, mas com

220
00:12:42,800 --> 00:12:44,640
o objetivo de negócio de longo 
prazo. 

221
00:12:44,640 --> 00:12:47,640
Entendi nossa quanta coisa dá 
para fazer com esses flags. 

222
00:12:48,000 --> 00:12:52,240
Então resumindo nossa conversa 
feature flag são bem mais que um

223
00:12:52,240 --> 00:12:56,600
if simples no código, né? 
São uma ferramenta estratégica 

224
00:12:56,600 --> 00:13:00,360
mesmo na engenharia de software 
atual, permitem integrar código 

225
00:13:00,360 --> 00:13:04,440
direto no trunk, mesmo 
incompleto, separando o deploy 

226
00:13:04,440 --> 00:13:06,080
do release. 
Exato. 

227
00:13:06,440 --> 00:13:10,240
E além disso, como a gente viu, 
possibilitam lançamentos mais 

228
00:13:10,240 --> 00:13:14,560
seguros com o release Canário, 
reduzindo o risco e são a base 

229
00:13:14,560 --> 00:13:18,760
para experimentar e otimizar com
testes AB, usando dados para 

230
00:13:18,760 --> 00:13:21,680
decidir. 
E ainda tem os Business flags 

231
00:13:21,680 --> 00:13:24,520
para gerenciar versões 
diferentes do produto com o 

232
00:13:24,520 --> 00:13:27,720
mesmo código. 
É realmente bem versátil. 

233
00:13:27,720 --> 00:13:32,560
Com certeza dão uma mistura de 
agilidade, controle e segurança 

234
00:13:32,560 --> 00:13:34,160
para o ciclo de vida do 
software. 

235
00:13:34,800 --> 00:13:38,320
Permitem inovar mais rápido, mas
com mais confiança. 

236
00:13:38,720 --> 00:13:42,080
São assim fundamentais hoje em 
dia para quem quer entregar 

237
00:13:42,080 --> 00:13:45,400
software de qualidade nesse 
ritmo acelerado. 

238
00:13:45,440 --> 00:13:50,280
Bom, esperamos que essa nossa 
exploração sobre featurflex, 

239
00:13:50,280 --> 00:13:54,480
baseada lá no livro engenharia 
de software Moderna, tenha sido 

240
00:13:54,480 --> 00:13:57,640
útil, tenha esclarecido as 
coisas. 

241
00:13:57,640 --> 00:13:59,440
Foi um prazer conversar sobre 
isso. 

242
00:13:59,600 --> 00:14:02,400
Igualmente é um tópico bem 
relevante. 

243
00:14:02,560 --> 00:14:06,200
Obrigada por nos acompanhar 
nessa exploração, até a próxima.

244
00:14:06,200 --> 00:14:06,920
Até lá?
