A criação da cultura de alta qualidade no ateliê de software do Itamaraty 

 

Gustavo Maultasch

Chefe da Divisão de Informática do Itamaraty (MRE)

Agile Trends GOV - 16/08/2017

Histórico

Fábrica de software

2 contratos (2011 a 2015)

  • Waterfall
  • Ponto de Função

Ateliê de software

(desde maio de 2015)

  • Lean
  • Métrica própria

Ateliê de Software - Superando a "fábrica" a partir do Software Craftsmanship

https://www.youtube.com/watch?v=AF5nJKA_Coc

O ateliê de software

  • Entrega de valor (aplicativos úteis e bem feitos)
  • Redução do custo
  • Lean
    • Foco no fluxo, na entrega; melhoria contínua; backlog único priorizado; limitação do WIP
  • Equipe altamente qualificada (full stack; diversos projetos)
  • Tecnologia
    • API first (back e front); orientação a serviço
    • Alta cobertura de testes unitários
    • Novas tecnologias (ZF2/3; nodeJS; Angular/React; Docker)
    • Rastreabilidade completa (ALM)
    • Pipeline todo automatizado
    • Feature flags / canário
    • Deploys diários sem drama

O que buscamos

  • Aplicações bem feitas
    • Código
    • Performance
    • UX
  • Com testes automatizados
    • Permitem evolução segura
  • Que resolvam problemas reais
  • E que satisfaçam clientes

= alta qualidade

Como se alcança a alta qualidade?

1. Visão processual

2. Visão cultural/institucional

Visão processual

  • Pessoas e cultura não importam
  • Processos formais (burocratização -> lentidão)
    • Com atividades bem mapeadas e definidas
      • Aprovações, assinatuas, etc.
    • "É só seguir o processo"
  • Quer qualidade? Então:
    • Setor de Qualidade
    • "Fábrica de Qualidade" (?)

Visão processual

  • Pode ajudar, mas não tanto; porque:
    • Quem vigia o vigia?
    • Incentivos desalinhados: não preciso de qualidade, preciso apenas passar no critério de qualidade
      • Critérios "objetivos" (ex: cobertura) podem ser burlados
    • Consequências não-intencionais
      • Não se preocupem tanto com o seu código, que alguém o olhará depois

Visão processual

  • Médico - nós contratamos QA?
    • 2a opinião
      • TI também
    • Dupla checagem (checklist etc.)
      • TI também (testes unitários; pair programming e code review)
      • Mas só funciona com a cultura (quando você estabelece métricas para um objetivo, a métrica vira o objetivo)

Visão cultural/institucional

  • Cultura
    • O que se quer fazer espontaneamente
    • Normalmente alinhado com o que se espera que os demais farão também
  • Cultura de qualidade
    • Situação em que a maioria dos devs busca o software de qualidade
      • Quer dizer: você não precisa estar em cima de ninguém

Como se cria a cultura de alta qualidade?

  • Você cria incentivos para um comportamento
  • Depois você descreve esse comportamento com uma narrativa que dê um sentido para aquele comportamento
    • O sentido é o que é interiorizado como uma motivação -> OWNERSHIP e COMPROMETIMENTO
  • O sentido provoca novamente o comportamento, e assim por diante

Detalhando:

  • Estabelecer condições para o comportamento
    • Capacidade das pessoas (1)
    • Meio facilitador (2)
  • Estabelecer incentivos extrínsecos que provoquem o comportamento (3)
  • Interiorizar o comportamento (tornar intrínseco) (4)
  • Com o tempo, o comportamento isolado passa a ser o comportamento esperado por todos
  • Monitorar para corrigir desvios (5)
  • Repetir desde o começo :)

1) Capacidade

  • Significado: competência para executar com qualidade
  • Ações: filtro de profissionais (T.R.); estudos técnicos
  • Exemplos:
    • Garantir equipe de alta qualificação
      • Full stack (sem divisão de perfil)
      • Diligência prévia de capacidade
      • Pirâmide invertida (senior >= pleno >= junior)
      • Vinculação da planilha de custos (pregão)
    • Estudos/dojos

2) Meio facilitador

  • Significado: condições de trabalho que facilitem o trabalho de qualidade
  • Ações: Aquisições, reorganização simples
  • Exemplos:
    • Bom ambiente, bons computadores
    • Blindagem da equipe
      • Contra o "go horse" da alta gestão
    • ALM / Pipeline automatizado

3) Incentivos extrínsecos

  • Significado: O que se faz por pressão externa (recompensa ou punição)
  • Ações: remuneração adequada; remuneração da empresa pela qualidade; designação clara de responsabilidade; recusa de entrega; advertências

3) Incentivos extrínsecos

  • Exemplos:
    • Remuneração adequada dos profissionais (pregão)
    • Remuneração da qualidade e da melhoria contínua
      • Métrica adequada
      • Pagamento apenas na produção
      • Testes automatizados
    • Responsabilidade pela aplicação (inclusive na produção; devs sobem)
      • Sem arquiteto, sem QA, sem tester separado
      • A qualidade é uma responsabilidade de todos
    • Recusa de entregas
      • Mesmo por detalhes (pixel-perfect)
    • Advertências (por questão de atitude/compromisso)

3) Incentivos extrínsecos

  • Exemplos:
    • Liberdade técnica com responsabilidade
      • Respeito à opinião técnica; sem "go horse", sem passar por cima (ex: React vs. Vue)
      • Inclusive quanto a prazos
      • Pessoas inteligentes gostam de ser desafiadas e tratadas como adultas

4) Interiorização

  • Significado: tornar o comportamento intrínseco, feito por vontade própria
  • Ações: divisão de risco e narrativas

4) Interiorização

  • Exemplos:
    • Dividir o risco
      • PO sempre da TI
      • Gera confiança mútua e sensação de time (todos no mesmo barco)
    • Narrativa de ética profissional
      • Ética do "software craftsmanship" (você faz um bom trabalho porque você é um bom profissional)
      • "Funcionar é o mínimo" ("Salvar é o mínimo")

4) Interiorização

  • Exemplos:
    • Narrativa de identidade organizacional com a alta qualidade
      • Identidade da Dinfor
        • Avanço tecnológico constante
        • Altíssima expectativa com a qualidade (Somos chatos e temos orgulho disso)
    • Narrativa de identidade individual com a alta qualidade
      • Alta qualidade significa maior valor ao órgão, mas também maior valor a você como profissional
        • Mais empregos, maiores salários, melhor futuro

Fazemos questão da alta qualidade porque prezamos pelo bom trabalho e pelo avanço tecnológico, e você é parte disso, e isso é bom para você também. 

5) Monitorar

  • Qualidade da entrega
  • Aporte de novas ideias (engajamento)
  • Aceitação da mudança (melhoria contínua)
    • Evitar a paralisia do conforto
  • Satisfação / Turn-over
    • "Você tem orgulho dessa entrega?"
    • "Você incluiria isso no seu CV?"
  • Reação profissional a críticas
    • Deve gerar atitudes de solução
  • Conversas gerais (transparência, explicar rumos negociais etc.)

Gestores de contrato têm poder (e responsabilidade) para colaborar na construção da cultura

  • Licitação
  • Fiscalização
  • Relacionamento diário com a equipe

Obrigado

@ghmol

 

slides.com/gustavohmo

Dedicada a toda a equipe da Dinfor :)

A criação da cultura de alta qualidade no ateliê de software do Itamaraty

By Gustavo H. Maultasch de Oliveira

A criação da cultura de alta qualidade no ateliê de software do Itamaraty

Apresentação realizada no evento Agile Trends GOV, em Brasília (16/08/2017)

  • 905