Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Entrega contínua,

No description
by

Saulo Andrade

on 5 September 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Entrega contínua,

Entrega contínua
no desenvolvimento de um framework
em uma empresa tradicional

Saulo Andrade Almeida
sauloandrade@gmail.com

Agenda
Quem sou eu
Cenário Java antes de 2007
Framework Corporativo
Entrega Contínua no framework
Resultados
Conclusão
Quem sou eu
Saulo Andrade Almeida
Nascimento: Fev/79 - Salvador
Gosto: Família; Música (ouvir e tocar); Fotografia e Desenvolver software
Quem sou eu
Desenvolvedor há 15 anos
Sempre trabalhei com plataforma web
Trabalhei: Empresas privadas em Salvador, SERPRO/BA, Petrobras
Confusão na evolução da carreira
Concurso público em 2007
Quem sou eu
Como comecei com a Agilidade
Ouvi sobre Scrum em 2007
Curso com o Toledo em 2008
Primeiras técnicas em 2009
Implementação Scrum by the book em 2010
Conversas com Scrummasters mais experientes
Certificação em 2012
Cenário Java antes de 2007
Relato de uma gerência da empresa
Trabalhava com Fábrica de Software
Processo de desenvolvimento rígido
Foco em Gerenciamento de Projetos
Pouco conhecimento sobre tecnologia
Aplicações Javas de má qualidade
Cenário Java caótico
Conflitos com a Infra
Projetos falhavam constantemente
Cenário Java a partir de 2007
Novos empregados com skill técnico
Novas técnicas no desenvolvimento
Uso de novas ferramentas, ainda de maneira informal
Criação de uma fábrica de software interna
Projetos começam a dar certo :-o
Framework Corporativo
Investimento da Arquitetura Corporativa
Tinha por objetivo organizar a bagunça arquitetural vigente
Stack mista (JEE, Spring)
Desde o início do seu desenvolvimento, release a cada 30 dias
Projetos com duração de 6 meses

Framework Corporativo
Componentes:
Framework em Java
Gerador de código
Templates do gerador
Aplicação gerada usando o Framework
Documentação
Material de treinamento

Framework Corporativo
Dependência entre os componentes

Framework Corporativo
Como entregava isso tudo funcionando a cada 30 dias?
Gerar uma aplicação a cada release
Deploy da aplicação gerada no ambiente padrão de Infra-estrutura
Testes manuais sobre a aplicação gerada
Três ou quatro dias para gerar um novo release
Achar erros era algo factível

Entrega Contínua no Framework
Palestra do Martin Fowler na PUC em 2010 (organizado pelo Toledo)
REST, DSL e Continuous Delivery
Entrega Contínua no Framework
Como foi construído o pipeline:
Reorganização dos testes unitários e de integração
Gerador foi modificado para gerar uma aplicação por linha de comando
Construída uma suite de testes de aceitação para a aplicação gerada com funcionalidades automáticas
Entrega Contínua no Framework
Como foi construido o pipeline:
Suite de testes de aceitação para testar funcionalidades que não eram geradas automáticamente
Build rápido (menos de 5 min)
Build com cenários de aceitação executava a noite
Dois meses de trabalho de um desenvolvedor
Entrega Contínua no Framework
Build Pipeline
Solução para o meu problema
Entrega Contínua no Framework
Como isso tudo passou a ser entregue
Aplicação gerada todas as noites
Deploy da aplicação gerada no ambiente padrão de Infra
Testes de aceitação da aplicação gerada
Release em duas horas
Erros eram raros e corrigidos rapidamente
Resultados
Burnup sem entrega contínua
15 Histórias planejadas
4 Histórias entregues
Resultados
Burnup com entrega contínua
23 Histórias planejadas
35 Histórias entregues
Resultados
Cenários Java em 2012
Melhora não foi apenas do Framework
Contribuição ativa das equipes de desenvolvimento, respeito técnico mútuo
Times maduros, que experimentam ferramentas para melhoria do processo de desenvolvimento
Resultados
Cenários Java em 2012
Estimativas mais acertivas
Diminuição dos conflitos com infra
Melhorar relacionamento com fornecedores de software externos
Novos contratos usando esse aprendizado
Conclusão
Evolução parcial da entrega contínua
Sem releases únicos
Sem testes não funcionais
Sem rodar a cada commit
Trouxe o resultado que esperava:
Melhoria da forma de trabalho
Produtividade
Auto-estima do time
Conclusão
Dúvidas
Obrigado
Solução
do meu
problema
Novos problemas
gerador
templates
app gerada
app 1
app 2
app n
.
.
.
framework
commit stage
testes unitários
testes integração
framework
gerador
templates
acceptance stage
gerar nova aplicação
deploy ambiente production like
testes aceitação func. automática
testes aceitação func. manuais
gerar app
deploy UAT
acc. autom
acc. manual
Production
artifact repository
framework
templates
Entrega Contínua no Framework
Jobs no Hudson
gerador
templates
framework
deploy UAT
accep func
manuais
gera app
accep func
automaticas
analise estat
app gerada
app1
app2
app n
Full transcript