Qualidade
guilherme.silveira@caelum.com.br
       @guilhermecaelum
qualquer um desenvolve
qualquer um desenvolve
    com qualidade?
2002 guj.com.br
 2003 vraptor
2004 extreme programming
       2006 scrum
           ...
2009 restfulie




http://restfulie.caelumobjects.com/
2001 - hoje
2001 - hoje

ime.usp.br
2001 - hoje

ime.usp.br
2004 caelum




www.caelum.com.br
que diabos eu faço?
2 partes
2 partes
podemos melhorar
2 partes
podemos melhorar
podemos melhorar
sistema financeiro
eu: emite boleto
meu amigo gente boa:
emite nota fiscal eletrônica
1 mês depois
vamos juntar
notebook
roubado
malandro que é
malandro faz backup!
o pen-drive
estava na bolsa
1 mês depois
integramos
1 mês de código
super avançado
LEGAL
mas eu mudei a lógica
eu também!
integrar depois de tanto tempo, dói
integrar depois de tanto tempo, dói
integrar continuamente
todo instante que ok
parece, mas não dói
se doer

    faça mais
frequentemente
mas funciona?
na minha máquina
na máquina dele
no servidor top de linha
não funcionou
o mercado somos nozes
deploy =
deploy = script manual
abre ticket
aguarda 5 dias
aguarda 5 dias
aguarda 5 dias
deploy em 2 dias
deploy em 2 dias
deploy em 2 dias
depende de um ser
     humano
quem fará o deploy?
medo
não funciona!
PROBLEMA?
caca
não é ágil!
1 - fazer algo errado


        ........
2 - não funciona como
       no script
3 - tela inicial não
     funciona
3 - nem tudo é uma
      boa idéia
ligue djá!




4 - venda não funciona
algumas horas sem o
      sistema
deploy =
deploy = script manual
muito tempo depois
prejuízo
sugestões
automatizar testes
qualquer um pode
   executá-los!
teste unitário
teste
teste

end
teste

end

 to
teste

end

 to

end
ambiente de build
roda todos os testes
após cada commit
mais garantias
coloco em produção
teste humano
teste humano em produção?
homologação
1 dia para deploy
2 dias para testar
vários dias para corrigir
1 dia para deployar
reza braba
1 dia para testar
diversos dias no escuro
automatizar deploys
one click
one click homologa
deploy e ...
feedback
2 dias para deploy
ambiente de build
one click deploy




  eu aprovo!
one click deploy
feedback
deploy instantâneo
parte 2
casa
minha casa
comprei minha casa
AHN?
comprei casa,
 minha casa
comprei uma casa,
   minha casa
comprei uma casa,
  é minha casa
comprei uma casa,
que agora é minha casa
comprei uma casa,
que agora é minha casa
comprei uma casa,
que agora é minha
PASSOS
aprendi a programar
aprendi TDD
aprendi Scrum/Lean/
      Kanban
código curto
    ==>
    bom
não
código curto
    ==>
    bom
não
código curto
    ==>
    bom
      necessariamente
conciso
 ==>
 bom
!
conciso
 ==>
 bom
qualidade de código
        =>
       teste
qualidade de código
        =>
       teste
          necessariamente
não
qualidade de código
        =>
       teste
          necessariamente
teste
        =>
qualidade de código
não
       teste
        =>
qualidade de código
não
       teste
        =>
qualidade de código
          necessariamente
teste
       <==>
qualidade de código
não
       teste
       <==>
qualidade de código
estranho?
qualidade de código
conciso
qualidade de código
somente com as
palavras necessárias
falar tudo
  somente com as
 palavras necessárias
somente com as
palavras necessárias
deixar com as
   somente
           óbvio
  palavras necessárias
pensar no outro
que manterá o código
melhor do que 1 bom
melhor do que 1 bom
   são 200 bons
melhor do que 1 bom
   são 200 bons
ensino é fundamental
programar é fácil
só programar
      é
uma vergonha
ensinar e
aprender
 é difícil
www.caelum.com.br
guilherme.silveira@caelum.com.br

Software de qualidade e qualidade de código