Uma Visão Geral Sobre Entrega Contínua De onde vem? O que é? Considerações finais Fábio...
Transcript of Uma Visão Geral Sobre Entrega Contínua De onde vem? O que é? Considerações finais Fábio...
Uma Visão Geral Sobre Entrega Contínua
De onde vem? O que é? Considerações finais
Fábio Nogueira de LucenaInstituto de Informática (UFG)
“O que observamos não é a
natureza,
mas a natureza exposta ao
nosso método de
questionamento.”Werner Heisenberg
“A chave para a autonomia
humana
é o conhecimento.”Sandra Bozza
15º. Congresso Pensar11/10/2014Goiânia
Top-down Programming:
“módulos são integrados
à medida que são escritos”Mills, Harlan D.,
"Top Down System Development" (1970). The Harlan D. Mills Collection.
“Meu principal critério para julgar se
programação top down foi usada é a
ausência de dificuldades na integração.”
1988
“... a equipe de desenvolvimento produzirá muitas
liberações internas, poucas serão passadas
adiante. Estas internas representam a integração
contínua do sistema,
e existem para forçar a qualidade.”
1994(segunda edição, página 256)
1999
Construir com qualidade
12 práticas, dentre elas:
Integração contínua:
“Construa o sistema
várias vezes ao dia, toda
vez que uma tarefa é
realizada.”
“Integre e teste
mudanças tão logo sejam
introduzidas.”
“Nossa maior prioridade é
satisfazer o cliente, através da
entrega adiantada e contínua
de software de valor.”Primeiro princípio do Manifesto Ágil (2001)
Princípios:• ...
• Construa com qualidade
• Entregue rápido
(liberar para
produção com
frequência)• ...
2003
2004
“Todo o trabalho realizado é unido e a consistênciaobtida com frequência, onde problemassão detectados e corrigidos rapidamente.”
Integração contínua
“Integração Contínua: melhorar a qualidade do software e reduzir riscos”
2007
http://www.integratebutton.com/
2009
• Vivemos em um mundo
de incertezas
• Informações valiosas estão constantemente surgindo
• Feedback rápido para
alimentar decisões
Não insira requisitos, obtenha mudanças do feedback.
2011
“Inovação contínua paracriar negócios de sucesso.”
Além de integrar continuamentetambém precisamos“validar continuamente”
2011
2011
“Se alguém tem uma boa ideia, como entregá-la aos usuários o mais rápido possível?Este livro mostra como resolver este problema.”
Primeiro parágrafo:
“O primeiro texto acerca deintegração contínua é o livrodo Kent Beck (XP Explained).”
Página 55:
O que é
Entrega
Contínua?
“Entrega contínua permite que
você
entregue software e
manutenções mais rápido e
com menor risco.”The Business Value of Continuous Delivery (CloudBees)
“Entrega contínua é uma técnica
de desenvolvimento de software
projetada para assegurar que
código está pronto para
produção mais rápido.”Jenkins and Continuous Delivery: Handing developers more power
Sacha Labourey (CloudBees).
“Entrega contínua é uma
metodologia que visa assegurar
que o software está sempre em
um estado entregável por todo
o seu ciclo de vida.”2014 State of DevOps Report
“Tem o foco na redução de
custo, tempo e risco na entrega
de mudanças incrementais aos
usuários.”Adopting Continuous Delivery, Jezz Humble, 2013
• Por todo ciclo de vida o software está
entregável
• Entregável tem prioridade sobre novas
funções
• Feedback rápido para qualquer mudança
• Selecione uma versão, um ambiente e
aperte um botão para implantar
Martin Fowler
“Práticas que habilitam o fluxo
contínuo de funcionalidades
liberadas para produção de forma
segura e sem defeitos.”Lean Software Development: A Tutorial, Poppendieck e Cusumano, IEEE Software, 2012
“Entrega contínua é uma
estratégia que busca oferecer
novos recursos aos usuários de
forma tão eficiente
quanto possível.”5 things you need to know about Continuous Delivery Software Development,
Network World, 2013
Documentos formais (não fazem referência)
• ISO/IEC/IEEE 24765
System and Software Engineering Vocabulary,
2010
• SWEBOK V3
Guide to the Software Engineering Body of
Knowledge, 2014
Integraçãocontínua
Entrega contínua
Implantação (deployment) contínua
Relação com outros termos
Integraçãocontínua
Entrega contínua
Implantação (deployment) contínua
Equipe de desenvolvimen
to
Liberação
No ambiente de produção
htt
p:/
/conti
nu
ou
sdeliv
ery
.com
Continuous deliveryhttp://en.wikipedia.org/wiki/Continuous_delivery
CompilaTestes de UnidadeAnálise estática
Cria instaladores
Testes de aceitação
Testes de capacidade
Testes manuais Liberação
Pipeline
Commit inicia uma“instância” do pipeline
Requisitos funcionais Requisitos não
funcionais
?
Ok
Erro
Ok
Ok
Ok
Ok
Erro
Erro
Erro
Erro
Erro Erro
?
?
?
Informação sobre o que está acontecendo
Feedback, visibilidade
Existem três formas de fazer as coisas: o jeito certo, o jeito errado e o meu jeito, que é igual ao jeito errado, só que mais rápido.
Homer SimpsonOs Simpsons
“Práticas específicas, por mais que sejam valiosas em outrassituações, raramente são a melhor solução para o problema
emquestão. Trate-as como pontos de partida”.
Lean Software Development: A TutorialMary Poppendieck e Michael CusumanoIEEE Software, 2012