As metodologias ágeis propõem uma nova abordagem para o desenvolvimento de software onde os gastos excessivos com formalismo são eliminados, ao mesmo tempo em que priorizam o bom relacionamento com as pessoas que participam do projeto, a adaptação às mudanças e as atividades prioritárias para o usuário final. Esta palestra, relata uma experiência de desenvolvimento e evolução de um processo que combina práticas do Scrum e do XP em uma organização que utilizava o processo tradicional, mostrando as dificuldades e os benefícios obtidos na migração de um processo tradicional para o ágil.
Modelos Híbridos: Case, Verdades, Mitos e Resistências
O desafio de implantar métodos ágeis em uma organização com processo tradicional maduro
1. O desafio de implantar
métodos ágeis em uma
organização com processo
tradicional maduro
Eduardo Borges
Raquel Lara
Eduardo Habib B. Maia
Clarindo Pádua
Wilson de Pádua Paula Filho
Synergia – Departamento de ciência da Computação da Universidade Federal de Minas Gerais
4. Contextualização
Synergia: Laboratório de Engenharia de
Software da UFMG/Brasil
– Equipe de cerca de 50 pessoas
– Desenvolvimento de software
• Instituições públicas
• Fundações
• Empresas privadas
Processo formal baseado no Praxis
6. Contextualização
Forte investimento em qualidade
– Formalismo nas especificações
– Revisões, inspeções e testes
Cultura de forte valorização de processos
– Especificações formais de requisitos
– Modelagem e documentação detalhadas
– Alto investimento em revisões, inspeções e testes
Resultados excelentes no controle e qualidade do
produto.
7. Motivações para adoção de métodos ágeis
Ciclo de desenvolvimento longo
– 9 meses para desenvolver uma funcionalidade
– Mais de um ano para um produto ser entregue
Dificuldade para lidar com alterações em requisitos
Forte divisão de papéis
– Análise, desenho, implementação e testes
Alto custo dos projetos
– 6 inspeções formais por requisito (50% do custo)
8. O processo Synergia-Ágil
SCRUM + práticas XP
Processo inicialmente aplicado em 2 projetos
piloto
– Amadurecimento do processo
– Antecipação de problemas
9. Descrição dos projetos piloto (1/2)
Projetos:
– P1:
• Software front-end para algoritmos de otimização.
– P2:
• Plataforma colaborativa de criação de conteúdo.
Características comuns:
– Desenvolvimento interno.
– Produtos de pequeno porte.
– Incertezas (adoção de novas tecnologias).
10. Descrição dos projetos piloto (2/2)
P1
Equipe de 10 integrantes
(estudantes de graduação)
Preparação
s1
Scrum
Master
Product
Owner
s2
s3
Consultor de
Usabilidade
Mentor
Técnico
Product
Owner
Mentor
Técnico
s4
2 meses
4 sprints de 4 semanas
P2
Equipe de 6 integrantes
(experientes no processo anterior)
s1
s2
s3
4 sprints de 4 semanas
s4
Scrum
Master
s5
s6
s7
s8
s9
s10 s11 s12 s13
9 sprints de 2 semanas
11. Resultados – P1
Scrum Master era um papel desempenhado
pelo Mentor.
– Alterado a partir da segunda Sprint
Produtividade muito baixa na primeira Sprint
– Inexperiência da equipe
– Autogerenciamento não funcionou muito bem
Testador externo ao time forneceu uma visão
imparcial sobre o produto
12. Resultados – P1
2 Residentes tiveram a iniciativa de se desligarem do
programa
Avaliação de práticas XP
– Programação em pares, Prototipação, Integração
contínua
– TDD na prática não foi aplicada até a 3º Sprint.
Avaliação e feedback ao fim do desenvolvimento
13. Resultados – P2
Dificuldade de trocar a especificação formal
pela colaboração com o PO
– Introdução da pré-validação com o PO no
conceito de pronto
Dificuldade de desenvolver a arquitetura ao
longo do projeto (e não a priori)
– Tecnologia nova e desconhecida pela equipe
– Muito retrabalho
14. Resultados – P2
Dificuldade de desenvolver em pequenos
incrementos
– Dificuldade em dimensionar o esforço que
caberia nas Sprints
Burdown da primeira e da última Sprint
15. Resultados – P2
Medidas tomadas para melhorar o planejamento
das Sprints
– Introdução do uso de Story Points
– Redução do tamanho das Sprints
– Maior rigor no aceite das histórias de usuário
Dificuldade gerada devido à instabilidade do
escopo e incertezas de prazo
– Definição do Produto Mínimo Viável demorou
várias Sprints
16. Resultados – P1 e P2
Scrum – maior aderência. Benefícios
observados:
– Visibilidade de progresso
– Entusiasmo e comprometimento da equipe e
dos interessados no projeto
– Foco nas funcionalidades de maior valor
XP – algumas práticas não foram adotadas nos
2 projetos, sendo as mais relevantes:
– TDD
– P2: Programação em pares
17. Resultados – lições aprendidas
Ambos: problemas de qualidade interna de código
– P1: equipe inexperiente
– P2: dificuldade em lidar com o desenho
incremental
P1: Metodologia contribuiu para integração e
comprometimento da equipe
– Integrantes com baixo desempenho ou
comprometimento saíram voluntariamente
P2: Dificuldade para mudar o paradigma
– Trocar especificação formal por comunicação
direta
– Desenvolver em pequenos incrementos
• Redução das sprints foi benéfica
18. Descrição dos Projetos migrados (1/2)
Projetos:
– P3:
• Software front-end para algoritmos de otimização
e mais genérico do que P1
• Equipe inexperiente
– P4: Software front-end de grande porte em
manutenção evolutiva
• Equipe mais experiente
• Arquitetura estável
• Produto muito grande
19. Descrição dos Projetos migrados(2/2)
P3
Scrum
Master
Equipe de 8 integrantes
(estudantes de graduação)
s1
Preparação
s2
s3
Product
Owner
s4
s5
s6
Consultor de
Usabilidade
s7
s8
1 mês
10 sprints de 2 semanas
P4
Equipe de 10 integrantes
(experientes no processo anterior)
s1
s2
s3
s4
s5
s6
s7
Scrum
Master
s8
s9
Product
Owner
s10
10 sprints de 2 semanas
...
s9
Mentor
Técnico
s10
20. Resultados P3
Maior aderência ao processo.
Práticas XP adotadas efetivamente
Criação de um Checklist de perguntas a serem
feitas ao PO
21. Resultados P4
Dificuldades
– Especialização.
– Saída de pessoas chave do projeto
– Entendimento sobre o autogerenciamento
Equipe motivada.
Programação em pares adotada em casos
específicos
Melhor difusão do conhecimento
Problemas encontrados com mais antecedência
22. Conclusões
Não foi simples adotar métodos ágeis
– Cultura de processos dificultou bastante
Apesar das dificuldades, em todos os projetos
foram percebidos benefícios da adoção
Resultados levaram o laboratório a decidir pela
transição para métodos ágeis em novos
projetos
– Adoção atingiu 100% dos projetos em
set/2013.