Академический Документы
Профессиональный Документы
Культура Документы
MODELOS GEIS
Os modelos geis de desenvolvimento de software
seguem uma filosofia diferente dos modelos
prescritivos.
Ao invs de apresentar uma receita de bolo com
fases ou tarefas a serem executados, eles focam
em valores humanos e sociais.
MANIFESTO GIL
SCRUM
Scrum um modelo gil para gesto de projetos
de software.
No Scrum um dos conceitos mais importantes o
sprint, que consiste em um ciclo de
desenvolvimento, usualmente de duas semanas a
um ms.
PERFIS
O Scrum master, que no um gerente no
sentido dos modelos prescritivos. O Scrum master
no um lder, j que as equipes so autoorganizadas, mas um facilitador (pessoa que
conhece bem o modelo) e resolvedor de conflitos
O product owner, ou seja, a pessoa responsvel
pelo projeto em si. O product owner tem, entre
outras atribuies, a de indicar quais so os
requisitos mais importantes a serem tratados em
cada sprint. O product owner o responsvel pelo
ROI (Return Of Investment), e tambm por
conhecer e avaliar as necessidades do cliente.
SCRUM TEAM
a equipe de desenvolvimento.
Essa equipe no necessariamente dividida em
papeis como analista, projetista e programador,
mas todos interagem para desenvolver o produto
em conjunto.
Usualmente so recomendadas equipes de 6 a 10
pessoas.
No caso de projetos muito grandes possvel
aplicar o conceito de Scrum of Scrums, onde
vrios Scrum teams trabalham em paralelo e
cada um contribui com uma pessoa para a
formao do Scrum of Scrums, quando ento as
vrias equipes so sincronizadas.
PRODUCT BACKLOG
As funcionalidades a serem implementadas em
cada projeto (requisitos) so mantidas em uma
lista chamada de product backlog.
Um dos princpios das metodologias geis usado
aqui: adaptao ao invs e planejamento.
O product backlog no precisa ento ser completo
no incio do projeto.
Pode-se iniciar apenas com as funcionalidades
mais evidentes para depois, medida que o
projeto avana tratar novas funcionalidades que
vo sendo descobertas.
SPRINT
No incio de cada sprint feito um sprint
planning meeting, no qual a equipe prioriza os
elementos do product backlog a serem
implementados e transfere estes elementos do
product backlog para o sprint backlog, ou seja, a
lista de funcionalidades a serem implementadas
no ciclo que se inicia.
A equipe se compromete a desenvolver as
funcionalidades e o product owner se compromete
a no trazer novas funcionalidades durante o
mesmo sprint.
Se novas funcionalidades forem descobertas,
sero abordadas em sprints posteriores.
SPRINT BACKLOG
REVIEW
Ao final de cada sprint a equipe deve fazer um
sprint review meeting (retrospectiva) para
verificar o que foi feito e a partir da partir para
uma nova sprint.
O sprint review meeting avalia o sucesso do plano.
DAILY SCRUM
MODELO SCRUM
ORIGENS
A concepo inicial do Scrum deu-se na indstria
automobilstica (Takeuchi & Nonaka, 1986), e o
modelo pode ser adaptado a vrias outras reas
diferentes da produo de software.
Na rea de desenvolvimento de software, Scrum
deve sua popularidade inicialmente ao trabalho
de Schwaber.
Uma boa referncia para quem deseja adotar o
mtodo o livro de Schwaber e Beedle (2001), que
apresenta o mtodo de forma completa e
sistemtica.
XP EXTREME PROGRAMMING
um modelo gil inicialmente adequado a
equipes pequenas e mdias que baseado em
uma srie de valores, princpios e regras.
XP surgiu no final da dcada de 1990, nos
Estados Unidos.
VALORES
Simplicidade
Respeito
Comunicao
Feedback
Coragem
SIMPLICIDADE
Segundo o Chaos Report (Standish Group, 1995)
mais da metade das funcionalidades introduzidas
em sistemas nunca so usadas.
XP sugere como valor a simplicidade, ou seja, a
equipe deve se concentrar nas funcionalidades
efetivamente necessrias e no naquelas que
poderiam talvez ser necessrias, mas que ainda
no se tem evidncia de que so essenciais.
RESPEITO
Respeito entre os membros da equipe e entre a
equipe e o cliente um valor dos mais bsicos,
que d sustentao a todos os outros.
Sem respeito a comunicao falha e o projeto
afunda.
COMUNICAO
Em desenvolvimento de software a comunicao
essencial para que o cliente consiga dizer o que
realmente precisa.
XP preconiza comunicao de boa qualidade,
preferindo encontros presenciais ao invs de
videoconferncias, videoconferncias, ao invs de
telefonemas, telefonemas ao invs de emails e
assim por diante.
Ou seja, quanto mais pessoal e expressiva a
forma de comunicao melhor.
FEEDBACK
O projeto de software reconhecidamente um
empreendimento de alto risco.
Cientes disso, os desenvolvedores devem buscar
obter feedback o quanto antes para que eventuais
falhas de comunicao sejam corrigidas o mais
rapidamente possvel antes que os danos se
alastrem e o custo da correo seja alto.
CORAGEM
Pode-se dizer que a nica coisa constante no
projeto de um software a necessidade de
mudana.
Para os desenvolvedores XP necessrio confiar
nos mecanismos de gerenciamento da mudana
para ter a coragem de abraar as inevitveis
modificaes ao invs de simplesmente ignorlas, por estarem eventualmente fora do contrato
formal, ou por serem muito difceis de acomodar.
PRTICAS
Jogo de planejamento
Metfora
Equipe coesa
Reunies em p
Projeto simples
Verses pequenas
Ritmo sustentvel
Posse coletiva
Programao em pares
Padres de codificao
Testes de aceitao
Desenvolvimento
orientado a testes
Refatorao
Integrao contnua
METFORA (METAPHOR)
preciso conhecer a linguagem do cliente e seus
significados.
A equipe deve aprender a se comunicar com o
cliente na linguagem que ele compreende.
REFATORAO (REFACTORING)
No se deve fugir da refatorao quando
necessria.
Ela permite manter a complexidade do cdigo em
um nvel gerencivel.
um investimento que traz benefcios a mdio e
longo prazo.
REGRAS XP
Wells (2009) vai mais alm das prticas XP
apontando um conjunto sucinto e bastante
objetivo de regras para XP.
Ele divide as regras em 5 grandes grupos:
Planejamento
Gerncia
Projeto
Codificao
Teste
REGRAS XP DE PLANEJAMENTO
Escrever histrias de usurio
O planejamento de entregas cria o cronograma de
entregas
Faa entregas pequenas freqentes
O projeto dividido em iteraes
O planejamento da iterao inicia cada iterao
REGRAS XP DE GERENCIAMENTO
D equipe um espao de trabalho aberto e
dedicado
Defina uma jornada sustentvel
Inicie cada dia com uma reunio em p
A velocidade do projeto medida
Mova as pessoas
Conserte XP quando for inadequado
MOVA AS PESSOAS
Mobilidade de pessoas em projetos importante
para evitar perda de conhecimento e gargalos de
programao.
Ficar na dependncia de um nico funcionrio
perigoso.
Deve-se evitar criar ilhas de conhecimento
porque elas so susceptveis a perda.
Se precisar de conhecimento especializado,
contrate um consultor por prazo determinado.
SIMPLICIDADE
Um projeto simples sempre executado mais
rpido do que um projeto complexo.
Porm, simplicidade subjetiva e difcil de ser
medida.
Ento a equipe que deve decidir o que
simples.
Uma das melhores formas de obter simplicidade
em um projeto levar a srio o Design Pattern
Alta Coeso (Wazlawick, 2004).
TESTABILIDADE
Pode-se escrever testes de unidade para verificar
se o cdigo est correto.
O sistema deve ser quebrado em unidades
testveis.
BROWSEABILIDADE
Pode-se encontrar os elementos quando se precisa
deles.
Bons nomes e uso de boas disciplinas como
polimorfismo, herana e delegao ajudam nisso.
COMPREENSIBILIDADE E
EXPLICABILIDADE
Compreensibilidade uma qualidade subjetiva
porque um sistema pode ser bastante
compreensvel para quem est trabalhando nele,
mas difcil para quem est de fora.
Ento essa propriedade pode ser definida em
termos de quo fcil explicar o sistema para
quem no participou do desenvolvimento.
NENHUMA FUNCIONALIDADE
ADICIONADA CEDO
Deve-se evitar a tentao de adicionar
funcionalidade desnecessria s porque seria fcil
fazer isso agora e deixaria o sistema melhor.
Apenas o necessrio feito no sistema.
Desenvolver o que no necessrio jogar tempo
fora.
Manter o cdigo aberto a possveis mudanas
futuras tem a ver com simplicidade de projeto,
mas adicionar funcionalidade ou flexibilidade
desnecessria, sempre deixa o projeto mais
complexo.
Requisitos futuros s devem ser considerados
quando estritamente exigidos pelo cliente.
BIBLIOGRAFIA