• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introdução ao Desenvolvimento Ágil com Scrum
 

Introdução ao Desenvolvimento Ágil com Scrum

on

  • 690 views

Promovi na HP Enterprise Service no dia 05/07/2013 um workshop que abordou o tema ágil. Neste workshop tive a oportunidade de debater sobre o que de fato faz parte da filosofia ágil de ...

Promovi na HP Enterprise Service no dia 05/07/2013 um workshop que abordou o tema ágil. Neste workshop tive a oportunidade de debater sobre o que de fato faz parte da filosofia ágil de desenvolvimento de software. Sabemos que muito se fala sobre esse modelo, mas também sabemos das dificuldades em entender porque existem essas implementações chamadas ágeis. Tentamos então de forma sucinta conhecer as origens dessas práticas, seus princípios e os conceitos que os fazem tão relevantes para enfrentar os desafios de criar sistemas no século 21. Também discutimos algumas maneiras de identificar o melhor momento para adoção de uma prática ágil, e mostramos como avaliar se as equipes estão preparadas para essa abordagem.

Além disso, relembramos as peculiaridades dos modelos tradicionais e com uma análise comparativa apuramos as causas que dificultam o uso de processos que requerem escopo de negócio fechado. O dinamismo da informação altera as necessidades constantemente e inevitavelmente os sistemas precisam acompanhar essas mudanças, portanto, a utilização da prática de iteração e a aceitação de mudanças se tornaram itens básicos para o novo ciclo de desenvolvimento de software.

No entanto, muitas equipes decidem usar métodos ágeis sem avaliar se estão preparadas, logo, se deparam com um processo indisciplinado e um cenário de caos em seu ambiente de trabalho. O não entendimento da filosofia ágil impede que as equipes obtenham as vantagens alcançadas com ciclos ágeis, assim, dando origem a metodologias customizadas de forma amadora e inconsequente, chamado pelo Ken Schwaber de ScrumBut (http://blogs.hp.com/architecturebrazil/2013/06/18/os-perigos-por-tras-do-scrumbut/)
Estas e outras questões foram discutidas no workshop Introdução ao Desenvolvimento Ágil usando Scrum.

Agenda do workshop
- Um pouco de contexto sobre o desenvolvimento de software nas últimas décadas
- O que é desenvolvimento ágil
- frameworks de desenvolvimento ágil
- Manifesto Ágil
- O que é SCRUM
- Desenvolvimento com SCRUM
- ScrumBut
- Certificações

Statistics

Views

Total Views
690
Views on SlideShare
689
Embed Views
1

Actions

Likes
2
Downloads
7
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introdução ao Desenvolvimento Ágil com Scrum Introdução ao Desenvolvimento Ágil com Scrum Presentation Transcript

    • Introdução ao Desenvolvimento Ágil com Scrum Flávio Secchieri Mariotti Solution Architect
    • Agenda  Um pouco de contexto sobre o desenvolvimento de software nas últimas décadas  O que é desenvolvimento ágil  Frameworks de desenvolvimento ágil  Manifesto Ágil  O que é SCRUM  ScrumBut  Certificações  Referências  Q&A
    • Flávio Secchieri Mariotti Solutions Architect at HP • Arquiteto e Especialista em desenvolvimento de software e defensor afinco de métodos ágeis. • Mestrando em Engenharia da Computação com ênfase em Engenharia de Software e Pós Graduado em Engenharia de Software baseado em SOA. @FlavioSMariotti
    • Um pouco de contexto sobre o desenvolvimento de software nas últimas décadas
    • A importância do software Desenvolvedores A importância dos software nos negócios Quem fez a arquitetura desse projeto? Comercial A importância da informática na gestão das empresas é inquestionável. Empreendimentos de todos os portes ganham agilidade, confiabilidade e, principalmente, uma redução de despesas operacionais com a adoção de softwares de gestão. Cliente Arquiteto Para desenvolver esse software precisamos usar alguns designer patterns só assim vamos criar um software escalável, flexível e eficiente. Precisamos de novos sistemas. Contrate algum estudante de informática e peça para ele desenvolver um software para a próxima semana. Testadores Os programadores não enviam uma versão sem bug, não sei qual a dificuldade nisso.
    • A importância do software A importância dos software nos negócios Qual a real importância? ...
    • Taxa de sucessos dos projetos Global study on success rate of IT projects Estatística Expectativas 37% atendem às expectativas. Qualidade 57% dos sistemas são entregues sabendo-se que têm defeitos 42% dos sistemas não funcionam como o planejado ou nunca serão usados 21% fracassam integralmente. Fonte: Standish Group; CHAOS Manifesto 2011. Prazo 68% dos projetos são entregues com atraso Custo 50% dos projetos custam mais do que o planejado.
    • Funcionalidades do software Frequência de utilização das funcionalidades nos softwares Frequência 7% 13% 45% 16% 45% Nunca 19% Raramente 16% As vezes 13% Frequentemente 7% Sempre 19% 20% do software é realmente útil. Fonte: Standish Group;
    • Por quê? Algumas questões para reflexão  Por que os projetos falham tanto?  O que temos feito de inadequado ao longo dos anos?  Por que somos incapazes de cumprir os prazos e custos?  Por que somos incapazes de entregar aquilo que o cliente deseja?
    • Modelos tradicionais Desenvolvimento de software com os modelos tradicionais. • Cascata Venda Desespero Comemoração • Prototipação descartável Justifico Planejamento Preocupação Revisão • Modelo Espiral • Modelo de Reuso • Codificação e correção
    • Modelo Cascata Desenvolvimento de Software com o modelo mais tradicional (waterfall) Planejado Requisitos Análise Jun/2013 Jul/2013 Construção Teste Ago/2013 Implantação Set/2013 Out/2013 Real Análise Requisitos Jun/2013 Jul/2013 Ago/2013 Construção Set/2013 Teste Implantação Um dia...
    • Desenvolvimento ágil
    • Desenvolvimento ágil O que é Desenvolvimento ágil de software? Podemos definir desenvolvimento ágil de software como um conjunto de métodos e práticas de construção de software. Desenvolvimento ágil é termo abrangente que engloba alguns conceitos que vem evoluindo desde a década de 1990, tais como: Desenvolvimento iterativo Desenvolvimento incremental Time auto organizáveis Times multifuncionais Envolvimento ativo dos usuários Maximização do ROI
    • Desenvolvimento ágil O desenvolvimento ágil compreende vários frameworks O desenvolvimento ágil compreende vários frameworks e metodologias de desenvolvimento de software: Extreme Programming XP DSDM OpenUP Scrum FDD Modelagem ágil TDD HP Agile Development - EDGE
    • Já estão usando... Algumas empresas que adoram o Scrum Fonte: Mountain Goat Software
    • Manifesto Ágil
    • Manifesto ágil Origem das abordagens ágeis 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:     Indivíduos e interação entre eles mais que 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 “Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.” http://manifestoagil.com.br
    • Manifesto ágil Princípios por trás do manifesto ágil Nossa maior prioridade é satisfazer o cliente, através da entrega 7. Software funcional é a medida primária de progresso. adiantada e contínua de software de valor. 1. 8. Processos ágeis promovem um ambiente sustentável. Os patrocinadores, Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. desenvolvedores e usuários, devem ser capazes de manter Processos ágeis se adequam a mudanças, para que o cliente possa tirar 2. indefinidamente, passos constantes. vantagens competitivas. 3. 9. Entregar software funcionando com frequência, na escala de semanas 10. Simplicidade: a arte de maximizar a quantidade de trabalho que não até meses, com preferência aos períodos mais curtos. Contínua atenção à excelência técnica e bom design, aumenta a agilidade. precisou ser feito. 4. Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em 11. As melhores arquiteturas, requisitos e designs emergem de times auto conjunto e diariamente, durante todo o curso do projeto. organizáveis. 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. 12. Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo. 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. http://manifestoagil.com.br
    • Scrum
    • Scrum Visão geral Scrum: Um framework dentro do qual pessoas podem tratar e resolver problemas complexos e adaptativos, enquanto produtiva e criativamente entregam produtos com o mais alto valor possível.  Leve  Simples de entender  Extremamente difícil de dominar
    • Scrum O que é o Scrum? O framework Scrum consiste nas equipes do Scrum associadas a papéis, eventos, artefatos e regras. Cada componente dentro do framework serve a um propósito específico e é essencial para o uso e sucesso do Scrum. Scrum é fundamentado nas teorias empíricas de controle de processo, ou empirismo. Baseadas no que é conhecido.
    • Scrum Pilares do Scrum Três pilares apoiam a implementação de controle de processo empírico: Transparência Inspeção Adaptação
    • Desenvolvimento com Scrum Características do Scrum: Iterativo e Incremental No Scrum o desenvolvimento será iterativo e incremental.
    • Iterativo Características do Scrum: Iterativo e Incremental Fonte: Don’t know what I want, but I know how to get it. http://www.agileproductdesign.com/blog/dont_know_what_i_want.html
    • Incremental Características do Scrum: Iterativo e Incremental Fonte: Don’t know what I want, but I know how to get it. http://www.agileproductdesign.com/blog/dont_know_what_i_want.html
    • Características do Scrum Processo Iterativo e Incremental  Entregas pequenas e parciais de 2 a 4 semanas.   Entrega do maior valor agregado. Redução das incertezas.  Motivação da equipe.  Melhoria contínua.  Cliente mais confiante. 26 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
    • Características do Scrum Auto-organização Equipes multifuncionais Equipes capazes de se auto organizarem As tarefas são do time e todos são responsáveis Forte comprometimento com os resultados
    • Características do Scrum Cliente é considerado um parceiro  Envolvimento do cliente ao longo de todo o projeto  Disponível sempre e quando necessário para tirar dúvidas  Mas colaboração e menos discussão de contrato  Mudanças de requisitos são bem-vindas
    • Características do Scrum Scrum é um processo empírico  Processos definidos  Processos empíricos
    • Características do Scrum Time Scrum  Product Owner  Equipe de Desenvolvimento  Scrum Master
    • Características do Scrum Eventos do Scrum  Reunião de Planejamento da Sprint  Reunião diaria  Revisão da Sprint  Retrospectiva da Sprint
    • Características do Scrum Artefatos do Scrum  Backlog do Produto  Backlog da Sprint  Incremento Definição de “pronto”
    • Complemento Técnicas, práticas e ferramentas complementares Planning Poker Kanban Gráfico Burndown da Sprint Gráfico Burndown da Release
    • ScrumBut
    • ScrumBut Os perigos por trás do ScrumBut "ScrumButs são razões pelas quais as equipes não podem tirar proveito do Scrum para resolverem seus problemas e perceberem os reais benefícios no desenvolvimento de produtos utilizando o framework Scrum". By Ken Schwaber
    • ScrumBut Sintaxe do ScrumBut O ScrumBut contém uma sintaxe particular definida como: (ScrumBut)(Razão)(Solução)
    • ScrumBut Exemplos de Scrumbut “Nós usamos Scrum, mas implementar a Daily Scrum todos os dias sobrecarrega a equipe e não é produtiva, de modo que só temos uma por semana.” “Nós usamos Scrum, mas as retrospectivas são um desperdício de tempo, por isso não implementamos.” “Nós usamos Scrum, mas não podemos construir uma funcionalidade em quatro semanas, por isso, nossos Sprints são de seis ou oito semanas de duração.”
    • ScrumBut Razões pelas quais equipes adotam ScrumBut  Clientes não querem ser envolvidos, simplesmente querem o produto pronto.  A empresa não está disposta a mudar seus processos.  A empresa não quer ser envolvida e não respeita a decisões de prioridade do Product Onwer.  Nem sempre conseguimos reunir todos os integrantes da equipe para reuniões de retrospectiva.  O Scrum Master não respeita as decisões da equipe e decide o que cada uma deve ou não fazer.  Os gerentes e diretores interessados no produto, não podem  Não foi possível convencer o gerente de TI dos benefícios ficar de fora e precisam participar das reuniões e, se de permitir a equipe Scrum ser autogerenciável.  necessário, determinar prazo para finalização de cada Sprint. Nem todos da equipes estão disponíveis para trabalharem de forma integral para o projeto ou Sprint.  A equipe não sente necessidade das reuniões diárias.  Nem todos da equipe tem condições de se responsabilizar por pedaços de funcionalidades requeridas no Sprint.  O Scrum Master não está comprometido com o Scrum, ao ponto que ele ou ela não remove os obstáculos destacados pelo time Scrum.  O Product Onwer não está comprometido com o Scrum e não auxilia a equipe Scrum com duvidas e priorização de atividades.
    • ScrumBut Riscos e consequências O Scrum é considerado imutável, ou seja, embora seja possível implementar partes do Scrum, o resultado final não é considerado Scrum. conflitos internos perda do controle atraso nas entregas falta de gestão clientes insatisfeitos perda de tempo
    • ScrumBut Como evitar o ScrumBut Discussões regulares sobre os valores do Scrum. Discussões regulares sobre os princípios do manifesto ágil. Debates sobre o que o Scrum significa para cada membro. Inspeções constantes sobre os benefícios e resultados obtidos com Scrum. Permitir que o time Scrum se autogerencie dentro de um time-box. Questione-se regularmente se os processos Scrum estão sendo respeitados. Identifique e evite qualquer ação de heroísmo individual.
    • Certificações
    • Certificações Validando seus conhecimentos Existem algumas certificações profissionais relacionadas com o tema ágil e são oferecidas por organizações como: Scrum.org, ScrumAlliance, ICAgile, PMI, dentre outras.
    • Scrum.org Modelos de certificações do Scrum.org O Scrum.org é uma organização fundada em 2009 por Ken Schwaber, um dos criadores do Scrum. Apesar de ser uma organização nova, já é reconhecida mundialmente. O Scrum.org mantém um programa de certificação para profissionais que trabalham ou pretendem trabalhar com o Scrum, são eles: Profissional Scrum Master; Profissional Scrum Developer; Profissional Scrum Product Owner.
    • Referências
    • Referências Livros, Blogs, Frameworks, e mais... HP Agile Development http://processviewer.corp.hp.com/app/viewer?id=595 HP Agile Development Pattern http://processviewer.corp.hp.com/app/viewer?id=608 HP Agile Transformation Journey http://processviewer.corp.hp.com/app/viewer?id=596 Scrum.org http://www.scrum.org/ Ken Schwaber’s Blog http://kenschwaber.wordpress.com/ Scaled Agile Framework – Big Picture http://scaledagileframework.com/ http://scaledagileframework.com/blog-2/ Book: Agile Project Management with Scrum By Ken Schwaber
    • Dúvidas Q&A Ele disse Scrum, certo? Zzzz QUE? Terminou? Sobre o que estamos falando? Qual o nome dele mesmo?
    • Obrigado