Gerenciamento e desenvolvimento ágil de software

29
Erick Herdy SCRUM Método ágil para gestão de projetos

Transcript of Gerenciamento e desenvolvimento ágil de software

Page 1: Gerenciamento e desenvolvimento ágil de software

Erick Herdy

SCRUMMétodo ágil para gestão de projetos

Page 2: Gerenciamento e desenvolvimento ágil de software

Criação do modelo SCRUM

Janeiro-Fevereiro de 1986; Takeuchi e Nokana lançam “The New Product

development Game” Inicialmente, concebido para fábricas de autos e bens

de consumo; Equipes cross-functional; Scrum no Rugby; Onze anos depois, Ken Schwaber formalizou a

definição de Scrum e ajudou a implementá-lo em desenvolvimento de software em todo o mundo.

Page 3: Gerenciamento e desenvolvimento ágil de software

Introdução

O que é metodologia?

Page 4: Gerenciamento e desenvolvimento ágil de software

Introdução

Metodologia, é o estudo dos métodos ou os passos em um determinado processo.

A finalidade de uma metodologia, é captar e analisar as características dos vários métodos disponíveis, avaliar suas capacidades, potencialidades, l imitações, distorções e crit icar os pressupostos ou limitações das mesmas.

Além de ser uma disciplina que estuda métodos, a metodologia é também considerada uma forma de conduzir a pesquisa.(pesquisa acadêmica)

Page 5: Gerenciamento e desenvolvimento ágil de software

Porque estudar métodos?

Pesquisas indicam pouca ou quase nenhuma qualidade em softwares desenvolvidos; Cronogramas estourados, custos nas alturas....prejuizo...e

prejuizo... A necessidade dos clientes não são alcançadas; Má, péssima ou nenhuma comunicação com o cliente;

A procura pela “bala de prata” (BROOKS – 1987) Problemas citados : Complexidade, Conformidade,

Mutabil idade e Invisibil idade; Soluções: Linguagens de alto-nivel, Prototipação,

Desenvolvimento incremental, bons desenvolvedores, bons projetistas......

Page 6: Gerenciamento e desenvolvimento ágil de software

Heavyweight vs Ligthweight

Heavyweigth (Plan-driven) Planejamento extensivo, processos bem definidos, reuso, visando

produção eficiente e previsvel; Aos poucos atingir a perfeição.

Ligthweight (Agi le Metods) Planeje, documente somente o suficiente; Individualidade e satisfação momentânea do cliente; Ser bom o suficiente;

Page 7: Gerenciamento e desenvolvimento ágil de software

Valores e Diferenciais

Nós estamos descobrindo melhores maneiras de desenvolver software, criando-o e ajudando outros a criar. Através desse trabalho, passamos a valorizar:

Individuos e interações vs processos e ferramentas; Software operante mais do que documentações completas; Colaboração do cliente vs negociações contratuais; Responder e estar aptos a mudanças do que seguir um

planejamento

Page 8: Gerenciamento e desenvolvimento ágil de software

O que são metodologias ágeis?

Desenvolvimento ágil de software (do inglês Agile software development) ou Método ágil é um conjunto de metodologias de desenvolvimento de software. O desenvolvimento ágil, tal como qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de software.

Page 9: Gerenciamento e desenvolvimento ágil de software

Para que? Qual a motivação?

Minimizar o risco de desenvolvimento de software em prazos muito curtos;

Prover uma melhor comunicação entre os integrantes do projeto;

Entregar partes funcionais; Alcançar o “suficiente”

Page 10: Gerenciamento e desenvolvimento ágil de software

Características de um AM (Agile model)

É um modelo bom o suficiente, nada mais que isso, e que exibe as seguintes características: Atende ao seu propósito; É inteligível; É suficientemente preciso; É suficientemente detalhado; É suficientemente consistente; Provê um valor positivo; É tão simples quando possível.

Page 11: Gerenciamento e desenvolvimento ágil de software

Pensem em AM não como ciência, mas sim como arte.

Page 12: Gerenciamento e desenvolvimento ágil de software

O que é uma AM ?

Atitude, não processo prescritivo; Suplemento aos métodos existentes. Ele não é uma

metodologia completa; É uma forma efetiva de se trabalhar em conjunto para

atingir as necessidades dos stakeholders do projeto; É efetivo e é sobre ser efetivo; É uma coisa que funciona na prática, não é uma teoria

acadêmica; É para desenvolvedores médios, mas não substitui

pessoas competentes.

Page 13: Gerenciamento e desenvolvimento ágil de software

O que não é uma AM ?

Não é uma bala de prata; Não é um ataque à documentação, pelo

contrário, AM aconselha a criação de documentos de valor para o projeto;

Não é um ataque as ferramentas CASE; Não é para todo mundo.

Page 14: Gerenciamento e desenvolvimento ágil de software

Objetivos / Funções do SCRUM

A função primária do Scrum é ser utilizado para o gerenciamento de projetos de desenvolvimento de software.

Teoricamente pode ser aplicado em qualquer contexto no qual um grupo de pessoas necessitem trabalhar juntas para atingir um objetivo comum;

Iniciar uma escola pequena, projetos de pesquisa científica, ou até mesmo o planejamento de um casamento.

Page 15: Gerenciamento e desenvolvimento ágil de software

Características do SCRUM

Backlog vivo e ativo de todas as tarefas a serem feitas; Sprint é a entrega de um conjunto fixo de itens em um

determinado período de tempo. Backlog de produto é mantido pelo “Product Owner” e

é uma lista de requisitos que vêm do cliente; Backlog de sprint é uma interpretação do backlog do

produto e contém tarefas que serão realizadas durante o próximo sprint para implementar os principais itens no backlog do produto.

Page 16: Gerenciamento e desenvolvimento ágil de software

Como funciona?

Page 17: Gerenciamento e desenvolvimento ágil de software

Integrantes

O SCRUM possui três figuras:

Product Owner;

SCRUM Master;

SCRUM TEAM;

Page 18: Gerenciamento e desenvolvimento ágil de software

Product Owner

Define as funcionalidades do produto; Decide sobre as entregas e o conteúdo; É responsável pelo ROI (lucratividade); Prioriza as funcionalidades de acordo com o mercado; Ajusta as funcionalidades e prioridades com cada

iteração, conforme necessário; Aceita ou rejeita o entregável;

Page 19: Gerenciamento e desenvolvimento ágil de software

SCRUM TEAM

Basicamente, consiste em uma equipe de 5 a 12 pessoas; Durante a discução com o Product Owner, o objetivo do

sprint é determinado e priorizado, e explorado minuciosamente, determinando pequenas tarefas;

O time se auto-organiza e os membros trabalham juntos para a entrega do delivery, sendo todos responsáveis pelo resultado;

É quem decide qual trabalho será feito e quais serão as responsabilidades atribuidas. Não existe uma pré-definição de responsabilidades: Todos devem estar aptos a trocar de papel com outro membro do time;

Page 20: Gerenciamento e desenvolvimento ágil de software

SCRUM MASTER Coach do scrum team; Remove todos os impedimentos para que uma determinada

tarefa seja realizada; Trabalha constantemente procurando maximizar toda a

eficiencia do time, e da condições que eles deem o melhor de si; Esta sempre atento para as tarefas que deverão ser entregues

no final de cada sprint; Treinador, fixer e gatekeeper. Ele é o responsável por organizar

as reuniões diárias; Isola a equipe de interferências externas; Sempre adota o “aqui-agora”; Ele fica responsável por administrar as reuniões de retrospectiva

do projeto, onde todas as decisões são revistas;

Page 21: Gerenciamento e desenvolvimento ágil de software

Iniciando um processo:Sprint Planning

Product owner cria a lista com todas as requisições e especificações do produto;

SCRUM TEAM seleciona itens a partir do Product backlog que eles possam se comprometer a entregar;

Tarefas são identificadas; É feito por toda equipe, e não apenas pelo SCRUM Master;

Page 22: Gerenciamento e desenvolvimento ágil de software

Reunião diária Todos os dias, no mesmo horário, o Scrum

Master se reúne com todos os membros do time, e faz três perguntas básicas: O que eu fiz desde ontem? O que eu irei fazer até amanhã? O que me impede de ir adiante?

Reuniões duram no máximo 15 minutos; Preferencialmente, de pé =)

Page 23: Gerenciamento e desenvolvimento ágil de software

Sprint review

A equipe apresenta o que atingiu durante o sprint

Tipicamente, toma forma de apresentação de um demo do produto funcional;

Informal; Sem powerpoint; A equipe inteira participa.

Page 24: Gerenciamento e desenvolvimento ágil de software

Entrega / Delivery´s

Após a fase do sprint, cada entregável é entregue ao cliente, para ser testado e analisado;

Após o cliente validar os entregáveis, é criado um novo sprint backlog;

Uma nova fase se inicia, novos entregáveis a caminho.

Page 25: Gerenciamento e desenvolvimento ágil de software

Sprint Retrospective

Periodicamente olhar o que funciona e o que não funciona;

Tipicamente de 15 a 30 minutos; Feito no final de cada Sprint; A equipe inteira participa e discute o que

gostariam de: Começar / Parar / Continuar

Page 26: Gerenciamento e desenvolvimento ágil de software

Conclusões SCRUM pode ser aplicado em qualquer

situação; Metodologias ágeis tendem a se aproximar

da realidade dos times de trabalho; Não existe solução mágica, apenas times

bem organizados e sincronizado; Um time é diferente de uma equipe. No

time, todos tem o mesmo objetivo final, todos são responsáveis

Page 27: Gerenciamento e desenvolvimento ágil de software

Riscos e Mitos no Desenvolvimento de soluções Web

Riscos Atraso no cronograma; Cancelamento do projeto; Entropia de sistemas de produção; Taxa de defeitos; Incompreensão dos requisitos de negócios e sistemas; Mudanças Constantes; “Scoope Scrip” (Invasão de requisitos) Alta taxa de evasão de desenvolvedores.

Mitos: Podemos coletar todos os requisitos de uma vez só; Podemos antecipar todas as mudanças; Podemos controlar completamente todo o projeto do software; Custo de mudança é por natureza, maior a medida que o projeto avança;

Page 28: Gerenciamento e desenvolvimento ágil de software

Exemplo

A ponte mais alta do mundo

Page 29: Gerenciamento e desenvolvimento ágil de software

Obrigado

Dúvidas?

Perguntas ?

[email protected]