1. Processo de Desenvolvimento de Software
Prof Flávio Yamanaka
- Descreve cada processo de desenvolvimento utilizando
metodologias ágeis
SCRUM
Técnicas para Gerenciamento de Projetos de Software – Martins, José Carlos
Cordeiro – Ed BRASPORT 2007
2. ‘Gatinho de Cheshire, o senhor
poderia me dizer, por favor, qual o
caminho que devo tomar para sair
daqui?’
‘Isso depende muito de para onde
você quer ir’, respondeu o Gato.
‘Não me importo muito para
onde...’, retrucou Alice.
‘Então não importa o caminho que
você escolha’, disse o Gato.
3. Processo de Desenvolvimento de Software
SCRUM
SCRUM
Como no rugby, a bola é passada dentro da equipe que se move como uma unidade pelo campo
4. Processo de Desenvolvimento de Software
SCRUM
O Scrum é um processo de desenvolvimento iterativo e incremental
para gerenciamento de projetos e desenvolvimento ágil de software.
5. Processo de Desenvolvimento de Software
SCRUM
Manifesto para o desenvolvimento ágil de software
Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós
mesmos e ajudando outros a fazê-lo. Através deste trabalho, passamos a
valorizar:
Os indivíduos e suas interações acima de procedimentos e ferramentas;
O funcionamento do software acima de documentação abrangente;
A colaboração dos clientes acima da negociação de contratos;
A capacidade de resposta à mudanças acima de um plano pré-estabelecido;
Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.
Não se trata, como poderia parecer à primeira vista, de um desprezo aos elementos e
ferramentas tradicionais do desenvolvimento de software, mas sim do estabelecimento
de uma escala de valores, na qual a flexibilidade e a colaboração são mais relevantes do
que a rigidez de processos e planejamento clássicos
6. Processo de Desenvolvimento de Software
SCRUM - Princípios
1. Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software
de valor.
2. Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a
mudanças, para que o cliente possa tirar vantagens competitivas.
3. Entregar software funcionando com frequência, na escala de semanas até meses, com preferência
aos períodos mais curtos.
4. Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diariamente,
durante todo o curso do projeto.
5. Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário,
e confiar que farão seu trabalho.
6. O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de
desenvolvimento, é através de uma conversa cara a cara.
7. Software funcional é a medida primária de progresso.
8. Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e
usuários, devem ser capazes de manter indefinidamente, passos constantes.
9. Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
10. Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.
11. As melhores arquiteturas, requisitos e designs emergem de times auto organizáveis.
12. Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu
comportamento de acordo.
Os doze princípios
7. Processo de Desenvolvimento de Software
SCRUM - Histórico
As raízes do Scrum estão num artigo que
sumariza as 10 melhores práticas em
empresas japonesas, publicada na Harvard
Bussiness Review no ano de 1986.
Inicialmente, o Scrum foi concebido como
um estilo de gerenciamento de projetos
em empresas de fabricação de automóveis
e produtos de consumo, por Takeuchi e
Nonaka.
Eles notaram que projetos que usaram
equipes pequenas produziram os melhores
resultados, e associaram estas equipes
altamente eficazes à formação Scrum do
Rugby (utilizada para reinício do jogo em
certos casos). A função primária do Scrum
é ser utilizado para o gerenciamento de
projetos de desenvolvimento de software.
8. Processo de Desenvolvimento de Software
SCRUM – Visão Geral
Dono do
Produto
Visão
Requisitos do
Produto
Requisitos do
sprint
10. Processo de Desenvolvimento de Software
SCRUM – Papeis
X 7
Dono do Produto
Product owner
Mestre Scrum
Scrum Master
Equipe de Projeto
Team
Representa os interesses das
pessoas que financiam o projeto:
- Consegue a verba
- Define os requisitos gerais
- Define os objetivos de ROI
Responsável por forçar os valores e
as práticas do Scrum:
- Remove obstáculos
- Ensina o processo para equipe
- Lidera a equipe para os objetivos
Grupo de pessoas responsável por
desenvolver ou construir as
funcionalidades do produto:
- São auto gerenciadas, auto
organizadas e multifuncionais
Return on Investment
11. Quem
Processo de Desenvolvimento de Software
SCRUM – Papeis
Porcos e Galinhas
Quem são porcos e
galinhas no Scrum?
Como comprometer a
equipe ?
13. Processo de Desenvolvimento de Software
SCRUM – Fases
Backlog de Produto
O Backlog de Produto é uma lista inicial de requisitos (tipo de sistema, itens de planejamento,
tipo de aplicação, ambiente de desenvolvimento, considerações dos usuários, etc.) feita pelo
Dono do Produto
Os requisitos não precisam ser precisos;
O Dono do Produto prioriza os itens do Backlog de Produto;
O Backlog de Produto pode ser mantido através de uma planilha;
14. Processo de Desenvolvimento de Software
SCRUM – Fases
Planejamento do Sprint
O objetivo do planejamento do Sprint são:
- Definição dos itens de maior prioridade do Backlog de Produto (Dono do Produto);
- Definição dos objetivos do projeto (Dono do Produto)
- Informação para o Dono do Produto de quais pedidos poderão ser realizados (Equipe)
A reunião de planejamento deverá durar no máximo 8 horas e será dividida em duas partes:
1ª PARTE (4 horas)
Dono do Produto apresenta e descreve os itens de maior prioridade para Equipe;
A Equipe faz questionamentos e esclarece dúvidas quanto ao conteúdo, propósito, significado e intenções
A Equipe seleciona os itens que acredita que poderá desenvolver durante a iteração (Sprint)
A Equipe compromete-se com o Dono do Produto quanto aos objetivos.
2ª PARTE (4 horas)
A Equipe planeja o Sprint que é registrado no Backlog do Sprint;
15. Processo de Desenvolvimento de Software
SCRUM – Fases
Sprint Backlog
O Sprint Backlog é um quadro que Equipe planeja implementar durante o Sprint;
Os itens do Sprint Backlog podem mudar à medida que o Sprint evoluir;
No quadro do Sprint Backlog tem colunas adicionais aonde cada membro da equipe irá
informar quantas horas serão necessária para aquele item seja concluído
17. Processo de Desenvolvimento de Software
SCRUM – Fases
Equipes auto organizadas e autodirigidas
A Equipe é responsável por gerenciar seu próprio trabalho e tem autoridade para fazer
mudanças e adaptações necessárias, sempre respeitando as práticas e princípios do Scrum
O Scrum parte do princípio de que quando os membros da Equipe atacam os problemas em
conjunto, eles conseguem obter soluções mais rápidas e criativas
Quando a Equipe passa a ter um objetivo em comum, ela começa a adquirir a capacidade de
auto-organização e de decompor problemas complexos e produzir planos de ação
18. Processo de Desenvolvimento de Software
SCRUM – Fases
Reunião Diária do Scrum
O Objetivo da reunião é sincronizar o trabalho diário com todos os membros da Equipe;
A Equipe faz uma reunião de 15 minutos todos os dias pela manhã (ou depois do almoço) no
mesmo local;
A reunião deve ser curta e objetiva com todos os participantes em pé;
Somente os “porcos” (Mestre Scrum e Equipe de Projeto) falam;
“galinhas” podem apenas ouvir. Participantes externos podem querer mudar o rumo do
projeto (FOCO);
Cobrar R$ 1 (para doação) de cada participante que chegar atrasado (DISCIPLINA);
Durante a reunião somente uma pessoa deve falar de cada vez;
O Mestre Scrum deve iniciar a reunião começando com o “porco” à sua direita e prosseguir no
sentido anti-horário;
Cada “porco” deve responder a apenas três perguntas relativas ao projeto:
O que você fez desde a última reunião?
O que você fará até a próxima reunião?
Há algum obstáculo que posso impedi-lo de realizar o seu trabalho?
Participantes “porco” ou “galinha” que não respeitarem estas regras podem ser excluídos do
grupo, as “galinhas” excluídas da reunião e os “porcos” excluídos da Equipe.
20. Processo de Desenvolvimento de Software
SCRUM – Fases
Reunião de Revisão do Sprint
A Reunião de Revisão do Sprint ocorre no final de cada Sprint;
O Objetivo desta reunião é a Equipe apresentar o trabalho desenvolvido durante o Sprint para
o Dono do Produto e stakeholders;
É uma reunião informal que ajuda a Equipe, de forma colaborativa, obter feedback e
determinar os objetivos da próxima iteração;
Permite verificar se o projeto está produzindo algo de valor para o negócio (qualidade e
funcionalidades);
A Equipe não deve gastar mais de uma hora para preparar a reunião;
Para não confundir os stakeholders, artefatos que não tenham funcionalidades não podem ser
apresentados;
Funcionalidades que não esteja “feita” não pode ser apresentada na reunião;
Após a apresentação os stakeholders são questionados, um a um, quanto as suas impressões,
mudanças necessárias e alterações de prioridade;
Ao final da reunião o Mestre Scrum agenda a próxima reunião com o Dono do Produto e
outros stakeholders.
21. Processo de Desenvolvimento de Software
SCRUM – Fases
Reunião de Retrospectiva do Sprint
Após a Reunião de Revisão do Sprint o Mestre Scrum faz uma Reunião de Retrospectiva do
Sprint com a Equipe;
A reunião tem ser realizada em três horas;
Nesta Reunião o Mestre Scrum deve encorajar a Equipe a revisar o seu processo de trabalho,
para ter um desempenho na próxima iteração;
A reunião começa com cada membro respondendo:
O que deu certo durante o Sprint?
O que pode ser melhorado para o próximo Sprint?
O Mestre Scrum não está na reunião para prover as respostas, mas para ajudar a equipe a
descobrir novas formas de trabalhar dentro do processo Scrum.
22. Processo de Desenvolvimento de Software
SCRUM – Conclusão
O Scrum é um método bastante simples e objetivo, é composto por poucas
práticas, artefatos e regras e por isso é fácil de aprender. Não é um processo
prescritivo, sendo indicado para trabalhos complexos onde é muito difícil
prever o que vai acontecer.