O que é qualidade de software (na real) e como ela influencia na cultura DevOps

O que é qualidade de software (na real) e como ela influencia na cultura DevOps

“O que é qualidade de software” é uma pergunta que pode ser respondida de vários jeitos. Algumas pessoas vão citar testes automatizados, outras vão falar de software sem bugs, ou de entregas frequentes. Mas você já parou pra pensar o que realmente significa qualidade de software no seu projeto atual? Já pensou em que estratégia deveria abordar para conseguir a satisfação dos usuários? Claro que funcionalidade “funcionando” é muito importante, mas e além disso? Que outras características são importantes? Acessibilidade, compatibilidade, escala? Vamos conversar sobre a visão de qualidade como um conjunto de componentes que agrega valor ao usuário final e como isso influencia na cultura DevOps

D0e2beb1970140f2b36a8aa334c068a8?s=128

Samanta Cicilia

October 27, 2018
Tweet

Transcript

  1. None
  2. None
  3. O que é qualidade de software (na real) e como

    ela influencia na cultura DevOps
  4. Samanta Cicilia QA Manager #Concrete Mãe da Luna #diversidade #MinistryOfTesting

    INICIATIVAS http://agiletesters.com.br/ https://www.facebook.com/totinitiative/ CONTATOS @samantacicilia samycici@gmail.com https://www.linkedin.com/in/samantacici/
  5. "Working software is the primary measure of progress." Manifesto Ágil

  6. Por que precisamos mudar?

  7. “A High Performance Organization is an organization that achieves financial

    and non- financial results that are exceedingly better than those of its peer group over a period of time of five years or more, by focusing in a disciplined way on that which really matters to the organization.” (André de Waal – HPO Center)
  8. “A High Performance Organization is an organization that achieves financial

    and non-financial results that are exceedingly better than those of its peer group over a period of time of five years or more, by focusing in a disciplined way on that which really matters to the organization.” (André de Waal – HPO Center)
  9. In 2017, we found that the high performers have: •

    46 times more frequent code deployments • 440 times faster lead time from commit to deploy • 96 times faster mean time to recover from downtime • 5 times lower change failure rate (changes are 1/5 as likely to fail) DevOps State Report 2017
  10. Why? What? Who? How? Why? - aumentar competitividade What? -

    alta performance em Entrega de Software Who? - clientes, stakeholders, time de desenvolvimento How? - investindo em Qualidade
  11. How

  12. Como medir? ◦ Lead time ◦ Frequência de Release ◦ Tempo para Restaurar

    o Serviço ◦ Taxa de Erros
  13. Princípios ◦ Construir qualidade em conjunto ◦ Trabalhar em pequenas entregas ◦ Automatizar

    tarefas repetitivas ◦ Melhoria Contínua ◦ Responsabilidade de todos
  14. “Implementar CD significa criar múltiplos loops de feedback para garantir

    que software de alta qualidade é entregue aos clientes mais frequentemente e de forma confiável” Dr. Nicole Forsgren, Jez Humble & Gene Kim Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
  15. “Implementar CD significa criar múltiplos loops de feedback para garantir

    que software de alta qualidade é entregue aos clientes mais frequentemente e de forma confiável” Dr. Nicole Forsgren, Jez Humble & Gene Kim Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
  16. Mas o que é qualidade de software?

  17. Definindo o que é Qualidade

  18. O primeiro passo é definir o que é Qualidade dentro

    da sua realidade.
  19. “Software product quality has many components” Lisa Crispin & Janet

    Gregory Agile Testing: A practical Guide for Testers and Agile Teams
  20. portabilidade manutenção usabilidade confiabilidade eficiência funcionalidade segurança instalabilidade testabilidade operabilidade

    acessibilidade estabilidade complexidade performance funcionalidade confidencialidade
  21. None
  22. Testes de Interface (Workflows/Lógica de Negócio)/ Instrumentados 2 Testes Unitários,

    Componentes e Banco de Dados 4 Testes de Serviço 3 Testes Manuais e Exploratórios 1 Testabilidade Funcionalidade Performance Segurança Estabilidade Usabilidade
  23. Depois disso definido é possível priorizar o que faz sentido

    para sua organização e como implementar.
  24. Vamos refletir Definindo o que é Qualidade

  25. Faz sentido implementar Continuous Deployment para todo e qualquer tipo

    projeto?
  26. Faz sentido implementar Continuous Deployment para todo e qualquer tipo

    projeto? Financeiro Rede Social Varejo Saúde Mídia
  27. Faz sentido se preocupar com escalabilidade para todo e qualquer

    tipo projeto?
  28. Faz sentido se preocupar com escalabilidade para todo e qualquer

    tipo projeto? Sistema Interno utilizado por 10 pessoas
  29. Faz sentido se preocupar com compatibilidade para todo e qualquer

    tipo projeto?
  30. Faz sentido se preocupar com compatibilidade para todo e qualquer

    tipo projeto? Software que será utilizado internamente numa empresa onde apenas o IE é homologado
  31. Faz sentido automatizar testes em todos os níveis para todo

    e qualquer tipo de projeto?
  32. Faz sentido automatizar testes em todos os níveis para todo

    e qualquer tipo de projeto? Landing Page Grupo de controle de usuários para validar hipótese Funcionalidade sazonal Microserviços
  33. Mas e o que isso tem com DevOps e Qualidade?

  34. nem tudo se aplica a todos os contextos

  35. Princípios ◦ Construir qualidade em conjunto ◦ Trabalhar em pequenas entregas ◦ Automatizar

    tarefas repetitivas ◦ Melhoria Contínua ◦ Responsabilidade de todos
  36. Pontos de impacto ◦ Estrutura Organizacional Silos? Colaboração? ◦ Stack Tecnológica ◦ Como

    lidar com débito técnico ◦ Monitoramento
  37. Então antes de desenhar um pipeline

  38. Antes de implementar práticas

  39. Antes de escolher as ferramentas

  40. Defina: qual o principal objetivo a alcançar? o que é

    qualidade? métricas de acompanhamento
  41. E só aí comece a pensar: tecnologias práticas ferramentas processos

  42. •  Infra como código •  Integração Contínua •  Testes automatizados

    •  Deploy Contínuo •  Gestão de Release •  Monitoramento de Performance •  Carga e Escala •  Monitoramento •  Gestão de Mudanças/Configuração •  Feature Flags •  Recovery Automatizado Práticas
  43. Referências Use Layered Testing to Enable Continuous Delivery of Digital

    Business Capabilities - Sean Kenefick, Gartner State Of DevOps Report 2018 Building Evolutionary Architectures: Support Constant Change Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations http://conferenciagiletesters.com/ https://rework.withgoogle.com/blog/changing-the-change-rules-at-google/
  44. NÓS MOVEMOS O MUNDO. Centro Av. Presidente Wilson, 231 29º

    andar (21) 2240-2030 Cidade Monções Av. Nações Unidas, 11.541 3º andar (11) 4119-0449 Savassi Av. Getúlio Vargas, 671 Sala 800 - 8º andar (31) 3360-8900 Ilha do Leite Rua Sen. José Henrique, 199 2º andar (81) 3018-6299 WWW.CONCRETE.COM.BR