O documento discute a maturidade de métodos ágeis em empresas. Apresenta um modelo de maturidade ágil com seis dimensões (equipe, práticas, entregas, requisitos, produto e cliente) e descreve resultados progressivos em cada dimensão à medida que as empresas evoluem em sua adoção de métodos ágeis. Defende que a melhoria contínua de processos é essencial para o amadurecimento ágil e que as pessoas são a chave para a transformação.
Apresente de forma sucinta as atividades realizadas ao longo do semestre, con...
Melhoria de processos em métodos ágeis: não é o que você está pensando! - Rafaela Mantovani Fontana (UFPR)
1. Melhoria de processos em
métodos ágeis: não é o que
você está pensando!
Rafaela Mantovani Fontana
Agile Tour – Campinas – Outubro/2014
2. Professora da UFPR
Setor de Educação Profissional e Tecnológica
Tecnologia em Análise e Desenvolvimento de
Sistemas
Doutoranda na PUCPR
Grupo de Pesquisa em Engenharia de Software
Orientadora Profa. Dra. Sheila Reinehr
Área de pesquisa: Métodos Ágeis
Interação indústria-academia
http://goo.gl/Sj1QyP
Quem sou
rafaela.m.fontana@gmail.com 2
3. Gerência de Requisitos
Gerência de Projetos
Medição
Garantia da Qualidade
Gerência de Portfólio de Projetos
Gerência de Configuração
Aquisição
Gerência de Projetos - evolução
Gerência de Reutilização
Gerência de Recursos Humanos
Definição de Processo Organizacional
Avaliação e Melhoria do Processo Organizacional
Verificação
Validação
Projeto e Construção do Produto
Integração do Produto
Desenvolvimento de Requisitos
Gerência de Riscos
Desenvolvimento para Reutilização
Gerência de Decisões
Gerência de Projetos - evolução
G
F
E
D
C
B
A
Melhoria de Processos na Engenharia de
Software
rafaela.m.fontana@gmail.com 3
4. Gerência de Requisitos
Gerência de Projetos
Medição
Garantia da Qualidade
Gerência de Portfólio de Projetos
Gerência de Configuração
Aquisição
Gerência de Projetos - evolução
Gerência de Reutilização
Gerência de Recursos Humanos
Definição de Processo Organizacional
Avaliação e Melhoria do Processo Organizacional
Verificação
Validação
Projeto e Construção do Produto
Integração do Produto
Desenvolvimento de Requisitos
Gerência de Riscos
Desenvolvimento para Reutilização
Gerência de Decisões
Gerência de Projetos - evolução
G
F
E
D
C
B
A
Melhoria de Processos na Engenharia de
Software
rafaela.m.fontana@gmail.com 4
6. Contexto
6
15 anos do Manifesto Ágil
Desenvolvimento ágil de software já se tornou main stream
em muitas regiões no mundo
No Brasil, o tempo de adoção de métodos ágeis nas
empresas é de 1 a 5 anos
Em menos de 50% dos seus projetos
As empresas estão amadurecendo suas
práticas
O entendimento da maturidade ajuda a
entender os caminhos possíveis e o que
esperar da evolução das práticas ágeis
rafaela.m.fontana@gmail.com
7. Maturidade Ágil: o que é?
http://goo.gl/SE8fgT
rafaela.m.fontana@gmail.com 7
EQUIPE
Equipe EXPERIENTE que
colabora nos projetos,
comunica-se e compromete-
se; auto organiza-se em um
ritmo de trabalho
sustentável; compartilha
conhecimento
PRÁTICAS
... padroniza e
melhora
continuamente
suas práticas
ágeis
ENTREGAS
... gera resultados
para o cliente e
para a gerência
REQUISITOS
... permite que
os requisitos
mudem
PRODUTO
... gerencia código
fonte e testes,
utilizando ferramentas,
métodos e métricas;
possui infraestrutura
para agilidade
CLIENTE
... cuida do
cliente e da
qualidade do
software
8. Maturidade Ágil: como?
http://goo.gl/YEKz6h
rafaela.m.fontana@gmail.com 8
69%
28%
3%
Um modelo de maturidade
ágil seria útil?
Sim Não Branco
Sim, é útil:
Para ajudar no reconhecimento
das transformações ágeis
Para ajudar como um guia
Para definir agilidade
Para auxiliar no início da adoção
Não, não é útil:
A maturidade é muito
dependente do contexto
Não existe um modelo para
todas as organizações
Um modelo limitaria os valores
ágeis e a criatividade
9. Sistemas o quê?
rafaela.m.fontana@gmail.com 9
Sistemas Complexos Adaptativos
Legitimate Network Shadow Network
Equipes ágeis se auto-organizam!
Gerenciamento deve sentir e
dar forma à ordem emergente
Criatividade e inovação
somente à beira-do-caos
Ambidestria organizacional:
alinhamento e flexibilidade
simultaneamente
VÍDEO
10. Maturidade ágil: como?
rafaela.m.fontana@gmail.com 10
Pessoas...
... trabalhando de forma alinhada e adaptável
simultaneamente por meio de experimentação
para...
... busca de resultados progressivos de melhoria (que
podem ser alcançados de várias formas) em:
EQUIPE ENTREGASPRÁTICAS REQUISITOS PRODUTO CLIENTE
11. Resultados Progressivos para evolução das
PRÁTICAS
rafaela.m.fontana@gmail.com 11
PRÁTICAS Aprendizado
Ágil
• Seguir um método
ágil by the book
• Treinamentos:
cuidado com os
disfuncionais
• Coaching
Sensemaking
dos
processos de
trabalho
• Organizar os processos de
desenvolvimento
• Customização dos métodos
ágeis de acordo com o
contexto e experiência
prévia
• Utilizar as reuniões de
retrospectiva para discutir e
melhorar o processo
Decisões “pés-
no-chão”
• Usar WBS, reportes de
status de trabalho,
métricas simples
• Cuidado com filas e work
in progress
12. Resultados Progressivos para evolução da
EQUIPE
rafaela.m.fontana@gmail.com 12
EQUIPE
Equipe
responsiva
Pouco
comprometimento
com as práticas ágeis
Pouca iniciativa
Necessidade de
comando e controle
Equipe
confiante
• Pessoas se
conhecem, existe
amizade e confiança
• Pessoas são proativas
em suas tarefas
• Veem o valor das
práticas ágeis
• Auto-organização
Equipe assertiva
• Define políticas de
proteção à equipe
• Mantém ritmo de trabalho
sustentável
• Pessoas opinam e mudam
o processo de trabalho
• Equipes mistas, pequenas
e co-localizadas
13. Resultados Progressivos para evolução das
ENTREGAS
rafaela.m.fontana@gmail.com 13
ENTREGAS
Finalização de
código
frequente
• Planejar Sprints para
terminar código
• Não entregar no fim
da Sprint
• Tamanho das Sprints
é variável
Entregáveis
frequentes
esperados
• Incluir o teste na Sprint
• Integração por
funcionalidade
• Identificar o minimum
releasable product
• Cuidado com trabalho
extra na Sprint
Entregas
frequentes
esperadas
• Integração diária
• Tentar entregar no fim
da Sprint
• Arquitetura flexível
• Prototipar requisitos e
arquitetura
Entregas
frequentes
definidas
• Entregar no fim da
Sprint, sem atrasos
• “Experiment systems”:
feedback do uso do
sistema em tempo real
14. Resultados Progressivos para evolução dos
REQUISITOS
rafaela.m.fontana@gmail.com 14
REQUISITOS
Coleta de
requisitos
• Documentação
detalhada de
requisitos
• “Sprint de análise”
• Cuidado com
funcionalidades extras!
Descoberta de
requisitos
• Definição iterativa de requisitos
• Definição de estórias de
usuários
• Iniciar a codificação sem os
requisitos completos
• Cuidado com funcionalidades
que “aparecem” no meio das
Sprints
Qualidade de
requisitos
• Melhora da definição
dos requisitos, seja
qual for
• Buscar equilíbrio entre
requisitos do cliente
(funcionalidades) e
requisitos da equipe
(qualidade)
15. Resultados Progressivos para evolução do
PRODUTO
rafaela.m.fontana@gmail.com 15
PRODUTO Código fonte de
alto-nível
Capricho no
código
Minimizar débito
técnico
Programação aos
pares
Padrões
Consciência das
falhas
Ok, eu entrego bugs,
então vamos planejar a
correção nas Sprints
Fazer testes, seja como for
Software
entregue
de alto-nível
Definir arquitetura (é uma
entrega de valor para os
desenvolvedores)
Fazer testes de unidade,
de integração, de
regressão
Automatizar integração
Codificação
eficiente
Test-driven development
Automação, automação,
automação: ferramentas
simples e para o que
adiciona valor
16. Resultados Progressivos para evolução do
relacionamento com o CLIENTE
rafaela.m.fontana@gmail.com 16
CLIENTE Equipe conhece
o cliente
• Entender o negócio do
cliente
• Entender a demanda
Cliente conhece
a equipe
Cliente conhecer o
processo de trabalho
da equipe
Cliente acompanhar o
desenvolvimento
Cliente
confiante
Cliente saber que a
equipe vai entregar
Cliente respeitar os limites
da equipe
Cliente
dependente
A equipe ajudar na
definição de valor
para o cliente
Hipóteses, não
requisitos
17. Amadurecimento Ágil
rafaela.m.fontana@gmail.com 17
PRÁTICAS
ENTREGAS
EQUIPE
REQUISITOS
PRODUTO
CLIENTE
Aprendizado ágil Sensemaking dos
processos de trablaho
Decisões “pés no chão”
Equipe responsiva Equipe confiante Equipe assertiva
Finalização de código
frequente
Entregáveis frequentes
esperados
Entregas frequentes
esperadas
Entregas frequentes
definidas
Coleta de requisitos Descoberta de requisitos Qualidade de requisitos
Código fonte de alto-nível Consciência das falhas Software entregue de alto-nível Codificação eficiente
Equipe conhece o cliente Cliente conhece a equipe Cliente confiante Cliente dependente
PROGRESSIVEOUTCOMESFRAMEWORK
18. Take-home messages
Maturidade vem com experiência
Múltiplas threads de melhoria: práticas, equipe, entregas, requisitos,
produto, cliente
Defina os resultados que espera alcançar e experimente até
conseguir
Falhar é parte do processo de melhoria
Alinhamento e flexibilidade simultaneamente
Melhoria de processos contínua: de preferência em cada reunião
de retrospectiva
Pessoas são a chave para a transformação e amadurecimento ágil
rafaela.m.fontana@gmail.com 18