Escolar Documentos
Profissional Documentos
Cultura Documentos
Daniel Cukier (AgilCoop) twitter.com/danicuki Prof. Dr. Rafael Prikladnicki (PUCRS) twitter.com/rafaelpri
EUA
BR
2 anos!
Daniel Cukier
15 anos de experincia com desenvolvimento do Software
Dissertaes de Mestrado
CBSoft Salvador Bahia Setembro de 2010
Rafael Prikladnicki
Professor da FACIN PUCRS desde 2004 www.inf.pucrs.br/~rafael Coordenador de Gesto de Projetos da AGT/PUCRS Professor do PPGCC desde 2010/1
www.inf.pucrs.br/munddos
Criado em 2001 Registrado no CNPq em 2004 Livros publicados em 2007, 2009 e 2010 2 pesquisadores
www.inf.pucrs.br/munddos
Agenda
Introduo e motivao
Concluso
Dinmica
Por que teu projeto termina com sucesso? Por que teu projeto fracassa?
Sucesso
Fracasso
Grupo 2
Grupo 1
Discusso em grupo
15 minutos Agrupar problemas e fracassos em categorias
Grupo 3
Grupo n
Motivao
Motivao
Como ganhar dinheiro resolvendo problemas que voce no conhece, com pessoas desconhecidas, em um tempo curto e com poucos recursos (e se divertindo)?
CBSoft Salvador Bahia Setembro de 2010
E se melhorarmos a cada ciclo? E se o cliente fornecer feedback a cada ciclo? E se a equipe encontrar a melhor forma de trabalhar?
CBSoft Salvador Bahia Setembro de 2010
Motivao
300
250
200
100
50
Motivao
Grfico de Burndown
250
200
100
50
Sociedade demanda
grande quantidade de sistemas/aplicaes software complexo, sistemas distribudos, heterogneos requisitos mutantes (todo
todo dia)
Mas, infelizmente,
no h gente suficiente para desenvolver tanto software com qualidade
CBSoft Salvador Bahia Setembro de 2010
2004
Projetos no concludos ------- 18%
Evitar desperdcio
Estudo do The Standish Group conclui (Chaos Report): Pesquisa sobre a utilizao das funcionalidades do software ...
Problemas
Com mtodos tradicionais/clssicos de desenvolvimento Supem que possvel prever o futuro Pouca interao com os clientes nfase em burocracias
(documentos, formulrios, processos, controles rgidos, etc.)
Avaliao do progresso baseado na evoluo da burocracia e no do cdigo Com software Grande quantidade de erros Falta de flexibilidade
CBSoft Salvador Bahia Setembro de 2010
Melhores Tecnologias
Padres de Projeto (reutilizao de idias) Componentes (reutilizao de cdigo) Middleware/frameworks (aumenta a bstrao)
Melhores Metodologias
Mtodos geis (o foco deste mini-curso) outras... (abordados em outros cursos de ES)
Modelagem Engenharia
(Jacobson) (Meyer)
Disciplina
Poesia Artesanato Arte
(Humphreys)
(Cockburn) (Knuth) (Gabriel)
Erro comum: olhar para software como apenas um desses itens e ignorar os demais
CBSoft Salvador Bahia Setembro de 2010
Agile is not a set of practices, but a core set of beliefs and principles
Jim Highsmith
CBSoft Salvador Bahia Setembro de 2010
Princpios
Retorno de investimento Inovao Melhoria de processo Pessoas Cultura Comunicao Adaptao x Antecipao
CBSoft Salvador Bahia Setembro de 2010
Histrico
Movimento iniciado por programadores experientes e consultores em desenvolvimento de software. Questionam e se opem a uma srie de mitos e prticas adotadas em abordagens tradicionais de Engenharia de Software e Gerncia de Projetos. Manifesto gil: Assinado por 17 desenvolvedores em Utah em fevereiro/2001. http://agilemanifesto.org
CBSoft Salvador Bahia Setembro de 2010
Software funcionando
Colaborao do cliente
Resposta s mudanas
Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler
http://agilemanifesto.org
CBSoft Salvador Bahia Setembro de 2010
Alguns princpios O mais importante o software funcionando Periodicamente a equipe deve refletir sobre como se tornar mais efetivo Profissionais motivados Suporte s necessidades da equipe e ambiente necessrio para desenvolvimento das atividades Confiana no trabalho da equipe
O gerente de projeto concorda em prosseguir sem que todos os requisitos estejam bem definidos Os desenvolvedores concordam em prosseguir sem ter todos os requisitos documentados Os membros da equipe sabem que algum vai ajudar quando ocorrerem problemas
Os gerentes percebem que no precisam dizer equipe o que fazer, ou garantir o que vai ser feito A equipe percebe que ningum vai dizer o que fazer, isto faz parte do trabalho da equipe No existem mais a impresso de diviso (testers and programmers), todos so desenvolvedores
gil
Equipe
Equipe
GP
Equipe
Equipe
Equipe
Equipe
GP
Equipe
Cross-funcional Auto-organizao
CBSoft Salvador Bahia Setembro de 2010
Enquanto isso, num projeto tradicional... 0. Levantamento de Requisitos 1. Anlise de Requisitos 2. Desenho da Arquitetura 3. Implementao
4. Testes
5. Produo / Manuteno
necessrio fazer uma anlise de requisitos profunda e detalhada antes de projetar a arquitetura do sistema necessrio fazer um estudo minucioso e elaborar uma descrio detalhada da arquitetura antes de comear a implement-la
necessrio testar o sistema completamente antes de mandar a verso final para o cliente
Iterativo e Incremental
Iterativo = no espere ter tudo correto na primeira vez Incremental =construaempedaosverticais(features) ao invs de horizontais (camadas)
Desenvolvimento monoltico
Desenvolvimento incremental
C
1 4 Interface Interface Cliente Servidor BD
C
2 3
3 2
Cliente Servidor 1 BD
Iterativo e Incremental
Produto?
CBSoft Salvador Bahia Setembro de 2010
O que muda?
Custo da mudana
Intensidade e stress
Tempo
Tempo
Entrega de valor
Tempo
gil Tradicional
CBSoft Salvador Bahia Setembro de 2010
Tempo
Ref: Henrik Kniberg
Metodologias geis so uma tentativa de refinar as metodologias iterativas, tirando o foco do processo em si e dando mais nfase para a contribuio das pessoas
CBSoft Salvador Bahia Setembro de 2010
Metodologias geis uma febre? Uma onda passageira? o incio de uma mudana na forma de trabalho...
CBSoft Salvador Bahia Setembro de 2010
O paradoxo da multitarefa
Viso tradicional
Tudoimportante,vamosfazertudoaomesmotempo!
A1
Jan
B1
Feb
C1
Mar
A2
B2
Abr
C2
Mai
A3
Jun
B3
Jul
C3
Viso gil
Priorizaefocanaquiloquemaisimportante!
A
Jan
Ref: Henrik Kniberg
B
Mar Abr Mai
C
Jun Jul
Feb
Mtodos geis
A mudana incorporada ao escopo
Razes
Necessidades de negcio
Novas oportunidades
Mudanas de legislao Requisitos incompletos
CBSoft Salvador Bahia Setembro de 2010
Tomaramos as grandes decises o mais tarde possvel Implementaramos agora somente o que precisamos agora No implementaramos flexibilidade desnecessria (no anteciparamos necessidades)
E essa a nova realidade (em muitos casos) Orientao a Objetos: facilita e cria oportunidades para mudanas Tcnicas de Refatorao
Testes automatizados: nos do segurana quando fazemos mudanas Prtica / cultura de mudanas: aprendemos tcnicas e adquirimos experincia em lidar com cdigo mutante
CBSoft Salvador Bahia Setembro de 2010
Scrum
Ken Schwaber, Jeff Sutherland, Mark Beedle
Mudana de perspectiva
Agile Project Management Jim Highsmith, 2008 Agile Enterprise Framework
Prticas Tcnicas
2. VersionOne (2008)
Survey online com mais de 3.000 pessoas
4.Dr.DobbsJournal(2008)
Survey online com 642 pessoas
Agile projects are 16% more productive at a statistically significant level of confidence.
Fonte: Mah 2008.
Time to Market
VersionOne
64% disseram que o time to market melhorou 23% disseram que melhorou significativamente
Michael Mah
Projetos geis tem um time to market 37% mais rpido com um nvel de confiana estatisticamente significante
Improved Enhanced ability to manage changing priorities Improved project visibility Improved alignment of IT and business goals Reduced project risk
Motivo 1
No preciso de ciclos iterativos
Motivo 2
O cliente descobre o que quer ao longo do caminho
Motivo 3
Qual projeto de software envolve baixa incerteza?
Motivo 4
Em qual projeto de software consigo ter estimativas precisas?
Minha estimativa est toda definida e com ndice de erro muito baixo
CBSoft Salvador Bahia Setembro de 2010
Motivo 5
As tarefas so delegadas, equipes ficam desmotivadas mais facilmente Qual equipe gosta de trabalhar desmotivada?
Requisitos definidos desde o incio Objetivos claros desde o incio Comando-controle Baixa incerteza Estimativas precisas
E os Cinco Motivos?
Requisitos definidos desde o incio Objetivos claros desde o incio Comando-controle Baixa incerteza Estimativas precisas
SCRUM
CBSoft Salvador Bahia Setembro de 2010
Ref.: 3rd Annual State of Agile Development Survey June-July 2008 3061 respondentes, 80 pases
Como resolver
Longe de um acordo
Anarquia
Requisitos
Complexo
Complicado
... Tente manter uma iterao simples
Perto de um acordo
Simples
Perto da certeza
Tecnologia
Longe da certeza
Ref. : Strategic Management and Organizational Dynamics by Ralph Stacey, in Agile Software Development With Scrum by Ken Schwaber and Mike Beedle.
69
CBSoft Salvador Bahia Setembro de 2010
Adaptativo
A B
Planejado
Sem 1 Sem 2 Sem 3 Sem 4
C D
Tradicional
A B C D
Sem 1
Sem 2
Sem 3
Sem 4
Sem 5
Sem 6
Sem 7
Sem 8
gil
A B
Sem 1
Sem 2
Sem 3
Sem 4
Sem 5
Essncia do SCRUM
Inspeo
Verificar o que foi feito no perodo
Adaptao
Melhorar o processo
ACT
PLAN
Planejar
Planejar o sprint
Desenvolver
Realizar o sprint
CHECK
DO
Inspecionar (check)
Sprint review e retrospectiva
Adaptar
Lies para o prximo planejamento
CBSoft Salvador Bahia Setembro de 2010
O Framework do Scrum
Planejamento e preparao
Product Owner e Cliente Viso do produto
Requisitos funcionais e no funcionais Restries e User stories (prtica do XP)
User Stories
User stories
Identificao de atores envolvidos Como um [papel do usurio] quero [funcionalidade] para [valor de negcio] I.N.V.E.S.T. (independente, negocivel, valorizvel, estimvel, small e testvel)
Desenvolvimento
Product Owner, ScrumMaster e Equipe Anlise e organizao do Product Backlog
Refinamento das funcionalidades Estimativas Escolha das funcionalidades para o sprint Formalizao do sprint backlog Identificao das tarefas Organizao da taskboard
2-4 hs
CBSoft Salvador Bahia Setembro de 2010
2-4 hs
Desenvolvimento
Estimativas
Tempo e/ou complexidade? Fibonacci
1,2,3,5,8,13,21
Planning poker
As duas estratgias de uso de planning poker
Jogar as cartas para cada estria
Desenvolvimento
Tempo ou Complexidade
4 pessoas trabalhando 4 semanas
Planning poker
1
Muito pequeno!
8
Frias!
13 21 40
Mais detalhes! Nem idia! Intervalo!
J L
CBSoft Salvador Bahia Setembro de 2010
Planning poker
Planning Poker na PRTICA!
Avaliar distncia entre
Argentina e Monglia Chile e Itlia
Japo e Austrlia
ndia e Alemanha EUA e Rssia Ucrnia e China
VALOR
UStory1
Alta
UStory2
Baixa
Alta
COMPLEXIDADE
Calibrando a velocidade
Estimado Realizado
Estimado
Realizado
40 30 30 30
Estimado
30 28 31 30
Realizado
40 40 40
Estimado
30 30 30
Realizado
40 50 60
30 30 30
30 40 25 35 20 30
CBSoft Salvador Bahia Setembro de 2010
35 30 25
Calibrando a velocidade
Incio da sprint
Backlog do produto
Final da sprint
Backlog da sprint
Feito! Velocidade estimada = Feito!
Backlog da sprint
8
5
5
3
8
5
5
3
8
5
5
3
Velocidade real =
18
26
Feito! Quase
Nem iniciamos
5 5
8
5
3
Administrate users
View Invoice in HTML, PDF, or Excel format
As a helpdesk operator I want to see who is logged in
Find user
Delete user
View Invoice in HTML, PDF, or Excel format As a helpdesk operator I want to see who is logged in
Operations manual
Operations manual
100 simultaneous users
CBSoft Salvador Bahia Setembro de 2010
Delete user
Dividir
User admin
Create DB schema
Do GUI design
Do integration test
13
User admin
2 Edit existing
user
User admin
Delete user
Desenvolvimento
ScrumMaster e Equipe Dia-a-dia do SCRUM
Sprint
2 semanas a 4 semanas
Manter a taskboard
Burndown Tarefas e estimativas Tarefas no-planejadas
O Grfico de Burndown
Grfico de Burndown de uma Sprint de duas semanas
20
15
10
10
11
12
13
14
15
16
Dias da sprint
O Grfico de Burndown
Grfico de Burndown de uma Sprint de duas semanas
20
15
10
Dias da sprint
O Grfico de Burndown
Grfico de Burndown de uma Sprint de duas semanas
20
15
10
10
11
12
13
14
15
16
Dias da sprint
O Grfico de Burndown
300
200
100
10
11
12
13
14
15
16
Nro de sprints
Desenvolvimento
Daily Meetings (Daily Scrum)
Reunio diria de 15 minutos Mantm equipe informada e integrada
O que voc fez ontem? O que pretende fazer para amanh? Quais so seus impedimentos?
Questes tcnicas
No final da reunio
Desenvolvimento
Para ajudar na execuo (taskboard)
Sprint review
Cliente, PO, SM e Team Apresentao do produto Foco no QUE foi feito e no COMO foi feito Aceite formal e feedback do cliente Melhoria na forma de priorizao?
Prximo sprint
Lies aprendidas
Alimentam o prximo sprint
Velocidade da equipe Erros x acertos Previsto x realizado Fator de foco da equipe
Repositrio de lies
Disseminao na empresa
Lies aprendidas
Fluxo do Scrum
24 horas
Daily Scrum
Objetivo do Sprint ??? Backlog da Sprint Cancelar Return Gift wrap Cupons Cancel Embrulho Backlog do produto
Sprint Planning 1
Sprint Review
Retrospectiva
Sprint Planning 2
Cupons
XP
CBSoft Salvador Bahia Setembro de 2010
Dinmica
Lembram disto? Como Mtodos geis podem ajudar a resolver ou minimizar os motivos de fracasso identificados?
Sucesso
Fracasso
Grupo 2
Grupo 1
Grupo n Grupo 3
Concluses
Quando temos problema em cronograma, modelos tradicionais cortam testes, modelos geis cortam histrias. Um reduz a qualidade, o outro reduz o escopo. A questo no documentar, entender. No existem melhores prticas. Existem boas prticas para determinadas situaes. Entregue hoje. Adapte amanh. Adaptao uma resposta mudana. Equipes auto-gerenciveis no so equipes sem liderana, so equipes com outro estilo de liderana. Uso de tcnicas como Refatorao, Testes, Modelagem gil so fundamentais para constante mudana do cdigo Plans are nothing; Planning is everything
CBSoft Salvador Bahia Setembro de 2010
twitter.com/danicuki twitter.com/rafaelpri
CBSoft Salvador Bahia Setembro de 2010
Dinmica
Analista
Projetista
Programador
Testador
Cliente
Ref: Luiz Cludio Parzianello
CBSoft Salvador Bahia Setembro de 2010
Grandes Lotes
Dinmica
Qual o arranjo logstico mais rpido?