Continuous Integration and Continuous Delivery for Mobile
Essa apresentação faz parte do material do 22º CocoaTalks BH, onde abordei os temas de Integração contínua e Entrega contínua. Fiz algumas alterações no texto original para ficar mais explicativo os slides.
software onde os integrantes de uma equipe agregam sua cópia de trabalho frequentemente, normalmente diversas vezes ao dia. Os passos costumam ser de integrar, ‘buildar' e testar o código. Esse termo originou-se com o processo de desenvolvimento XP (Extreme Programming) como uma das doze práticas originais. Qual a importância? Garantir que todos estão trabalhando com o mesmo nível de qualidade de desenvolvimento, onde em cada commit avalia- se o código como um todo e como ele se comporta sendo integrado ao restante do código. Provê um rápido feedback em relação à possíveis problemas e aumenta a confiança para se desenvolver em cima de um código que já foi submetido a uma bateria de testes anteriormente. Qual o valor para o negócio? Pequenas entregas durante todas as fases de desenvolvimento e cada uma dessas entregas são confiáveis o bastante para estar em um ambiente de produção. Códigos com mais qualidade, auto-testáveis e coesos. Dificuldades conhecidas Quebra de paradigmas e processos não ágeis nos times, alinhamento com o resto do negócio, priorizar a qualidade das entregas em relação a prazos enxutos, comprometimento de todos.
as mudanças realizadas para o ambiente de produção através de uma interação de um usuário de um jeito seguro, rápido e sustentável. Qual a importância? Reduz o risco do deploy, progresso de desenvolvimento comprovado e feedback rápido para o usuário. Qual o valor para o negócio? Transfere a responsabilidade de deploy para a área de negócios. Implementar Continuous Delivery significa ter certeza que toda alteração que passa com sucesso pela pipeline de deploy estará em um estado “ready to deploy”, mesmo que tenha sido alterada centenas de vezes por diversas pessoas. Com isso essas alterações estarão prontas para irem para produção com um clique em um botão, demorando segundos/minutos para terminar todo esses processo.
fixing the build.” - Kent Beck “Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.” - Martin Fowler