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"
- Com atividades bem mapeadas e definidas
- 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)
- 2a opinião
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
- Situação em que a maioria dos devs busca o software de qualidade
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
- Garantir equipe de alta qualificação
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
-
Liberdade técnica com responsabilidade
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")
- Dividir o risco
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)
-
Identidade da Dinfor
- 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
- Alta qualidade significa maior valor ao órgão, mas também maior valor a você como profissional
- Narrativa de identidade organizacional com a alta qualidade
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)
- 966