Qualidade:
Pensando fora da caixa




       @jorgediz
    www.maps.com.br
Agenda

    Contexto, mecânica

    3 eixos arbitrários:
    −   gestão,
    −   fatores humanos
    −   engenharia

    Provocações

    Reflexões

    Conclusões → dever de casa
Esclarecimentos

    Uso de boa fé de imagens de outros

    Opiniões são minhas, não necessariamente
    as das pessoas com quem trabalhei

    História não é necessariamente factual

    Posso estar errado, e vc tb

    Não sou politicamente correto o tempo todo
Personagens
Provocações
Saindo da caixa
O que anda acontecendo ?
Software como serviço
Segurança física
Privacidade ?
Redes sociais
Tempos
Ubiquidade
Complexidade
Procurar defeitos
Minimizar risco
Sexagem de código
Valores ágeis


    Fluidez na comunicação

    Transparência,

    Foco em entrega de valor,

    Sustentabilidade do esforço,

    Compreensão dos fatores humanos

    Reavaliação constante:
Seu gestor promove qualidade ?
Escritório de projetos
Modelo de Fábrica
Recursos Humanos
Linha de montagem
Cascata
Regra 10x de Myers
'
    Modelo V
Modelo V
Wilfredo Pareto: regra 20/80




                               31
Cobertor sempre é curto
Recursos escasos

    Tempo

    Atenção

    Capacidade de aprendizagem

    Remuneração das pessoas

    Licenças de Software

    Hardware
Just In Time
Quanto do software é usado
Standish Group, 2002
Estimativas
Expectativas
Dinâmica de sistemas
Qualidade vs Produtividade
'
    Erro
'
    Defeito
'
    Falha
Fluxo ponta-a-ponta

 erro                       defeito            falha              diagnóstico         correção




                                                         ão, ão
         k e , te                                    ta ç cu ç              de s ,
      y o f or                                     en x e                 o
                                                                        tã ncia e                         ão
    a- m                                s        m e                s                               s   s
 ok ge                  t             te     tr u de s         ia te Ges dê o d ção          gr
                                                                                                e
P a                   es           es      ns ha õe itor luen           ci tã ra
  tip             to
                     t            T       I l
                                               i eç ud s f            in es gu          Re
               au                           P c a o
                                                 x / ad                  G n fi
                                                E g c
                                                   o di                    co
                                                  L e
                                                    Pr
               Integração contínua / agile operations
Lei de Murphy
Precisamos de heróis
Precisamos de heróis
Controle de qualidade
Garantia de Qualidade
Promoção de Qualidade
“Preciso de um template”
Bebendo na fonte do XP

    Pareamento

    Automação de testes de aceitação

    Automação de testes do programador

    Testes como especificação

    Retrospectivas

    Integração Contínua

    Metáforas

    Refatoramento

    Propriedade coletiva do código
Dev+Ops

    Gestão de configuração

    Provisionamento declarativo

    Deployment contínuo

    Monitoramento / alarmes
Fazer certo? da primeira vez?
caixa preta X caixa branca
A verdadeira caixa preta
A verdadeira caixa branca
Toda ocorrência será registrada

    << carimbo, funcionário de cartório>>

Só acredito vendo
Ambiente de homologação
“Isso é técnico”
Todo bug será corrigido
Métricas definem comportamento
Depois do periodo de garantia, não
          me procurem
Context-driven testing
Documentação




               69
Quadrantes de Marick
                       Negócio


                             Q3: Exploratório,
           Q2: GUI, regras     usabilidade,
             de negócio         aceitação




                                                 Produto
Processo




                                 funcional


           Q1: Unitários,    Q4:Desempenho,
           componentes          segurança




                      Tecnologia
Teste de Interface Usuário




                             71
Teste de Unidade (XUnit)




                           72
Teste de Serviços / Negócio




                              73
Pirâmide de Cohn




                   74
Pirâmide Invertida (Naresh Jain)




                               75
Pirâmide de testes: frágil
   Mundo Real Padrão de Mercado


                                á rio
                 Inter face usu
Pirâmide de testes: frágil
         Mundo Real “somos ágeis”
                         Interface usuário




                             unidades
Mundo Real




             78
Abrindo caminho através de um
        campo minado
Limpando um campo minado




                           80
Teste Exploratório




                     81
O que já sabemos

    Quanto maior a distância entre o erro e a
    correção, muito maior o custo de corrigir e o
    risco de não corrigir

    Uso ingênuo de métricas geralmente tem
    efeito oposto ao esperado

    Registrar o que não é necessário atrapalha a
    comunicação.

    Um sistema só começa a gerar valor depois
    de entrar em produção.
O que já sabemos

    Registro não garante comunicação

    Inspeções / revisões são úteis

    Testes através da interface usuário são
    caros e frágeis

    Ciclos precisam ser de poucas semanas no
    máximo

    Estimativas furam

    Intermediários geram ruído
Então por que ...?

    … não desapegamos do modelo em cascata /
    V?

    … investimos tanto esforço em teste
    automatizado através da interface de
    usuário ?

    … documentamos com o principal objetivo de
    tirar o nosso da reta ?

    … definimos padrões de codificação onde
    código bom = código comentado ?
Nem ele explica
?
       ! !   ?
    ?    !
      ?

Qualidade - pensando fora da caixa