Baixe o app para aproveitar ainda mais
Prévia do material em texto
SCRUM Visão Geral • Um software deve atender a uma necessidade do negócio. Objetivos do Negócio Objetivos do Negócio Processo de Desenvolvimento De Software Processo de Desenvolvimento De Software Requisitos Software Pronto Funcionalidades • Você sabia que em um software a taxa de funcionalidades nunca utilizadas ou raramente utilizadas pode chegar a 64%???; • Você sabia que a taxa de funcionalidades muito acessadas chega a apenas 20%? SCRUM • O SCRUM nos ajudará a modificar o cenário anterior, pois permite a construção do software por partes; • As mudanças são facilitadas e fazem parte do processo de desenvolvimento; • Não há a necessidade de identificar todas as necessidades no inicio do projeto. Reflexão • Por que os projetos falham tanto? • Por que somos incapazes de cumprir os prazos e custos? • Por que somos incapazes de entregar aquilo que o cliente deseja? Desenvolvimento Ágil • Agile: Conjunto de métodos e práticas para desenvolver e ajudar outros a desenvolver software. O desenvolvimento ágil é um termo abrangente que engloba alguns conceitos que vem evoluindo desde a década de 1990. Desenvolvimento Ágil • Desenvolvimento interativo: – Software desenvolvido e refinado constantemente; • Desenvolvimento incremental: – A cada curto espaço de tempo novas funcionalidades são desenvolvidas e entregues para o usuário. Desenvolvimento Ágil • Times auto-organizáveis: – O time faz o planejamento do que fazer, como fazer e quando fazer. Não existe a figura do gerente de projeto (Isso não é anarquia, pois podem ser seguidos processos rigorosos) • Times multifuncionais: – Equipes com pessoas que exercem diversas funcionalidades, sem muitos especialistas. Não há papeis específicos. Desenvolvimento Ágil • Envolvimento ativo dos usuários: – Os usuários, ou um representante, tem participação ativa no desenvolvimento. • Maximização do ROI: – Tudo é feito para se obter o maior ROI possível. O que não agrega valor não é feito. Atenção maior nas pessoas e não nos processos Desenvolvimento Ágil • O software é construído por partes (incrementos) e para cada parte executa- se um ciclo (iteração) que inclui todas as atividades necessárias para completar as funcionalidades solicitadas pelo cliente. Desenvolvimento Ágil • Dentro do desenvolvimento ágil temos diversos frameworks e metodologias de desenvolvimento de software: – SCRUM; – FDD; – Modelagem Ágil; – TDD; – XP. Desenvolvimento Ágil • O que é ser ágil? – Entregar aquilo que gera maior valor para o cliente, de forma cada vez mais rápida e com qualidade; – Responder rapidamente a mudanças. Origem • No ano de 2001 iniciou-se a grande disseminação das abordagens ágeis; • Alguns autores importantes: Kent Beck, Ken Schwaber e Jeff Sutherland; • Destes encontros surgiu o Manifesto Ágil. Manifesto Ágil • Indivíduos e interação entre eles mais processos e ferramentas; • Software em funcionamento mais que documentação abrangente; • Colaboração com o cliente mais que negociação de contratos; • Responder a mudanças mais que seguir um plano. http://manifestoagil.com.br Manifesto Ágil - 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; Manifesto Ágil - Princípios 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; Manifesto Ágil - Princípios 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) Contínua atenção à excelência técnica e bom design, aumenta a agilidade; Manifesto Ágil - Princípios 7) 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; 8) Software funcional é a medida primária de progresso; Manifesto Ágil - Princípios 9) Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes; 10) Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito; Manifesto Ágil - Princípios 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. O que é SCRUM? • Framework para gerenciamento de projetos e desenvolvimento ágil de software: – Não é um processo detalhado e descritivo; – Não é uma receita de bolo; • Baseado no desenvolvimento iterativo e incremental; • Ajuda a orientar o time durante o desenvolvimento; • A equipe é o foco e não o processo. O que é SCRUM? • É fácil de ser entendido e difícil de ser implementado. Porque? – Precisamos quebrar alguns paradigmas na equipe (A equipe define como e quando os itens serão implementados); – Mudar o paradigma de comando-controle (Gerente de projeto); – Nem sempre será necessário fazer o levantamento de todos os requisitos, realização de todo o planejamento. Origem • Rugby (Esporte inglês): Origem • O Scrum, ou formação ordenada, vem de uma formação do rugby. Geralmente utilizado após uma jogada irregular ou em alguma penalização; • Nessa formação é importante que seja realizado um trabalho de equipe, pois se a formação dos jogadores falhar, toda a jogada será comprometida. Benefícios • O Scrum não é um processo previsivel, ele não define o que fazer em toda circunstância (Ken Schwaber, 2004); – Objetivo e simples; – Baixa curva de aprendizado; – Define papeis e responsabilidades de forma clara e consistente; – Não é um processo previsível. É um processo empírico (Usa a experiência da equipe para solução de problemas e situações do cotidiano) Benefícios • Projeto desenvolvido e entregue em partes menores, com constante feedback dos usuários; • Ciclos menores de desenvolvimento permitem um melhor gerenciamento de riscos. O cliente avalia o software constantemente; Benefícios • O que é mais importante para o negócio é entregue primeiro; • Usuários estão envolvidos em todo o ciclo do desenvolvimento e não somente no inicio e no fim. Desenvolvimento Incremental • Significa adicionar funcionalidades ou partes de maneira incremental; Desenvolvimento Iterativo • Elaboramos alguma coisa, depois avaliamos e em seguida fazemos alterações; • Construímos algo esperando realizar novas alterações. Nunca esperamos algo perfeito logo na primeira vez. Incremental e Iterativo Características • Entregas pequenas e parciais (Entre 2 e 4 semanas); • Cada iteração chamamos de Sprint; • Maior valor agregado mais cedo; • Redução de incertezas; • Melhora contínua; • Cliente mais confiante; Características • Equipesmultifuncionais; • Equipes capazes de se auto-organizarem; • As tarefas são do time e todos são responsáveis; • Forte comprometimento com os resultados; • Sem a necessidade do gerente de projeto. Características • Cliente é um parceiro e possui envolvimento em todo o projeto; • O cliente sempre precisa estar disponível quando necessário para tirar dúvidas; • Mais colaboração e menos discussão; • Mudanças de requisitos são bem-vindas. Características • Menos planejamento e mais ação; • Evitar planejamento extensivo de forma antecipada; • Planejar o suficiente para executar as atividades no curto prazo. Características Características • O Scrum é um processo empírico onde não se conhece todas as variáveis, pois possuem mudanças ao longo do processo e não são repetitivos e são imprevisíveis. • O empirismo afirma que o conhecimento vem da experiência e devemos tomar as decisões com base no que se conhece; Valores do Scrum • Transparência: – Aspectos significativos do processo e projeto devem ser visíveis para os responsáveis pelos resultados; – As informações devem ser passadas de forma clara e precisa; – Exemplo: Manter as atividades e o andamento de cada uma delas visíveis a todos os interessados. Valores do Scrum • Inspeção: – Os processos, práticas e atividades devem ser inspecionadas para que as variações inaceitáveis possam ser detectadas o mais cedo possível; – Evita que o cliente receba um produto inadequado. Valores do Scrum • Adaptação: – Sempre que um evento não desejado ocorrer, deve-se adaptar o que for necessário no processo para evitar a sua recorrência; – Inspeção e adaptação sempre estarão juntas no Scrum. Eventos • Existem quatro eventos que são aproveitados para fazer a inspeção e adaptação: – Reunião de planejamento da Sprint; – Reunião diária (Daily Scrum); – Revisão da Sprint; – Retrospectiva da Sprint.
Compartilhar