Metodologias Ágeis DESENVOLVIMENTO ÁGIL APLICADO AOS PROJETOS DE SOFTWARE ANA PAULA ALVES DE LIMA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Por que ser ágil? • • Crescentes pressões do mercado por: • Inovação, • Produtividade (prazos cada vez mais curtos), • Flexibilidade, • Melhoria no desempenho/qualidade dos projetos de desenvolvimento de SW O ágil surgiu dado a necessidade de melhorarmos a forma como estamos desenvolvendo SW e nosso foco principal é satisfazer o cliente. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 2 Quem usa isso? INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 3 História • 75 anos atrás • IIDD – Desenho e desenvolvimento interativo e incremental • • • Aumentar satisfação do cliente Evitar o desencorajamento da Gestão Década de 80 Aprimoramento da Engenharia de Software • Diversificação das linguagens de programação • • Década de 90 Maturação dos processos de desenvolvimento de Software • Semente dos modernos processos de Desenvolvimento Ágil • • 2001 - 17 especialistas se reúnem nos EUA para discutir modernas formas de se desenvolver Software Estabelecida a Aliança Ágil • Manifesto Ágil • • Princípios comuns compartilhados por todos os métodos de sucesso aplicados pelos especialistas durante suas carreiras INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 4 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente Disponível em agilemanifesto.org 5 Guarda Chuva Ágil INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 6 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 7 Por que usar? INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 8 Por que usar? • Dos 63% restantes: • • • 2/3 possuem problemas • Estouro de Prazo • Não atendem as necessidades • Estão cheio de defeitos 1/3 é um total fracasso • Cancelado/engavetado • Nunca colocado em produção ou utilizado pelo cliente Dos casos de sucesso, em geral apenas 20% das funcionalidades são realmente úteis. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 9 Por que usar? • • Suposições de início de projeto • Os requisitos são 100% conhecidos e foram minuciosamente detalhados • O Desenvolvedor sabe construir • Nada irá mudar ao longo do caminho Realidade que deve ser observada : • “Um processo rígido ou resistente a mudanças produz produtos medíocres. Os clientes podem até receber o que eles solicitaram primeiramente, mas é esse o produto que eles realmente querem logo quando eles o recebem? Coletando todos os requisitos no início e escrevendo-os sobre pedra, o produto é condenado a ser tão bom quanto a idéia inicial, ao invés de ser o melhor uma vez que as pessoas aprendem ou descobrem como fazer melhor.” [Jeff Sutherland] • Idéias, novas tecnologias e opções surgem no decorrer do projeto. Desta forma uma nova idéia não deveria ser mau vista pela equipe/gestor. • Sim, as coisas mudam durante o caminho INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 10 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 11 SCRUM INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 12 Por que Scrum? “O Scrum não é um processo previsível, ele não define o que fazer em todas as circunstâncias” KEN SCHWABER (2004) É um framework ágil leve que gerencia e controla o desenvolvimento do software aumentando a produtividade e reduzindo o tempo para obter excelentes resultados; • • • • • • Bastante objetivo Papéis e Responsabilidades bem definidas Fácil adaptação Curva de aprendizado baixa Não é um processo previsível É um framework, um conjunto de práticas O Scrum não vai dizer exatamente o que fazer, não irá resolver todos os seus problemas, mas com certeza os problemas serão mais facilmente identificados. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Elementos do Scrum – EQUIPE DE ATÉ 6 PESSOAS PAPÉIS • Product Owner • Scrum Master • Time REUNIÕES ou CERIMÔNIAS • Sprint Planning • Daily Scrums • Sprint Review • Sprint Retrospective ARTEFATOS • Product Backlog • Sprint Backlog • Burndown Chart INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 14 O que é Sprint • No Scrum, os projetos são divididos em ciclos (tipicamente mensais) chamados de Sprints. • O Sprint representa um tempo definido dentro do qual um conjunto de atividades deve ser executado. • O trabalho é dividido em iterações, que no Scrum são chamadas de Sprints e geralmente duram de 2 a 4 semanas. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 15 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 16 Papéis • Product Owner (PO) • Define as funcionalidades do produto • Define as datas dos releases • Responsável pelo retorno do investimento (ROI) do projeto • Prioriza as funcionalidades de acordo com seu valor de negócio • Ajusta o product backlog a cada sprint, se necessário. •Pode ser o representante de um cliente, ou o próprio cliente. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 17 Papéis • Time • Multi-disciplinar, com 7 (+-2) membros • Define o Sprint e define como será feito o trabalho • Tem o direito de fazer o que estiver ao seu alcance para alcançar o Sprint • Auto-gerenciado: o time se organiza e se gerencia • Demonstra o que foi feito para o Product Owner ao fim de cada Sprint INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 18 Papéis • Scrum Master • Responsável pelo processo, incluindo a realização do Daily Scrum e datas e horários das reuniões • Remove os impedimentos • Garante que o time está sempre funcionando e produtivo • Facilita a cooperação entre todos os membros do time • Protege o time das interrupções externas INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 19 Reuniões - Sprint Planning • Sprint Planning PLANEJAMENTO • Daily Scrum • Sprint Review • Sprint Retrospective INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína • Entendimento do Escopo • Estimativas de complexidade • Definição do Sprint Técnicas e Projeto de Sistemas – Técnico Subsequente 20 Sprint Planning O Sprint Planning Meeting é uma reunião na qual estão presentes o Product Owner, o Scrum Master e todo o Time, bem como qualquer pessoa interessada que esteja representando a gerência ou o cliente. Durante o Sprint Planning Meeting, o Product Owner descreve as funcionalidades de maior prioridade para a equipe. A equipe faz perguntas durante a reunião de modo que seja capaz de quebrar as funcionalidades em tarefas técnicas, após a reunião. Essas tarefas irão dar origem ao Sprint Backlog. Coletivamente, o Time e o Product Owner definem um objetivo para o Sprint, que é uma breve descrição daquilo que se tentará alcançar no Sprint. O sucesso do Sprint será avaliado mais adiante no Sprint Review Meeting em relação ao objetivo traçado para o Sprint. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Reuniões – Daily Scrum • Sprint Planning 3 PERGUNTAS 1. O que foi feito desde o último DS? 2. O que será feito hoje? 3. O que esta impedindo? • Daily Scrum • Sprint Review • Sprint Retrospective INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína • Peer-pressure (em pé) • Máximo de 15 minutos • Comprometimento Técnicas e Projeto de Sistemas – Técnico Subsequente 22 Reuniões – Sprint Review • Sprint Planning DEMONSTRAÇÃO • Apresentação das funcionalidades • Aceitação do Product Owner • Daily Scrum • Sprint Review • Sprint Retrospective INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 23 Reuniões – Sprint Retrospective • Sprint Planning • Daily Scrum • Sprint Review • Sprint Retrospective REVISÃO • O que foi bom? • O que pode ser Melhorado? INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 24 Artefatos • Product Backlog • Sprint Backlog • Burndown Chart INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 25 Product Backlog •O Backlog do Produto é uma lista contendo todas as funcionalidades desejadas para um produto. O conteúdo desta lista é definido pelo Product Owner. •O Product Backlog não precisa estar completo no início de um projeto. Pode-se começar com tudo aquilo que é mais óbvio em um primeiro momento. •Com o tempo, o Backlog cresce e muda à medida que se aprende mais sobre o produto e seus usuários. •A partir dele origina-se o Backlog do Sprint que é o que será feito naquela tarefa. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Quadro de Acompanhamento – Sprint Backlog INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Burn Down Chart • O Burndown é um simples gráfico, com dois eixos X e Y, baseado nas atividades que não ultrapassem um dia de trabalho. O eixo X indica o número de tarefas existentes no Sprint e o eixo Y os dias que representam o tamanho do Sprint. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 28 Metodologias Ágeis XP (EXTREME PROGRAMMING) INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Pós-Graduação emAraguaína Engenharia de Software Indivíduos e interações ao invés de processos e ferramentas Software executável ao invés de documentação. Colaboração do cliente ao invés de negociação de contratos. Respostas rápidas a mudanças ao invés de seguir planos. O Garotinho chamado CLIENTE Software – Aperto de mão Cliente – Um abraço Garra – Gargalhada Bem Vindos - Palmas O que é o XP? Metodologia de desenvolvimento de software, nascida nos Estados Unidos ao final da década de 90. Criar sistemas de melhor qualidade. Produzidos em menos tempo e de forma mais econômica que o habitual. Identificou o que tornava simples e o que dificultava o desenvolvimento de software. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 34 Como fazer? Pequeno conjunto de valores e práticas •A Programação Extrema é uma das metodologias ágeis mais conhecidas e utilizadas na atualidade. •Desenvolvidas para: • Equipes médias e pequenas (2 a 12 pessoas); Baseada em cinco valores, alguns princípios e várias práticas que ocorrem no decorrer das atividades; INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 35 Comunicação Coragem Feedback Respeito Simplicidade INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 36 Comunicação Para que um projeto seja um sucesso é necessário muita interação entre as equipes: programadores, clientes e treinador; VS INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 37 Coragem “A única constante em um projeto de software é a mudança” Alterar um código em produção sem causar bugs, com agilidade, exige muita coragem e responsabilidade; INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 38 Feedback mais cedo descobrimos um problema, menos prejuízos ele pode causar Quanto As respostas às decisões tomadas devem ser rápidas e visíveis. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 39 Respeito Dá sustentação a todos os demais valores Todos têm a sua importância dentro da equipe e devem ser respeitados e valorizados. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 40 Simplicidade Apenas aquilo que é claramente necessário É um dos valores mais importantes. Normalmente o que o cliente quer é mais simples. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 41 Papéis Papéis... Programadores Treinador (ou coach) Acompanhador (ou tracker) Cliente INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 43 Programadores Foco central da metodologia, mas sem hierarquia. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 44 Treinador (coach) Pessoa com experiência no time, é responsável por lembrar aos outros das práticas e valores do XP. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 45 Acompanhador (tracker) Responsável por trazer informações que mostrem o andamento do projeto que ajudem a tomar decisões de implementação. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 46 Cliente O Cliente faz parte da equipe!! INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 47 Práticas Práticas... Testes Refatoração Programação Pareada (em pares) Propriedade Coletiva Integração Contínua Semana de 40 horas Cliente junto aos desenvolvedores Padronização do código INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 49 Testes Desenvolvimento orientado a Testes Os testes devem ser escritos antes do desenvolvimento. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 50 Refatoração Conjunto de técnicas para simplificar, melhorar o código! INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 51 Programação em Pares Enquanto um programador digita, o outro observa, pensa em melhorias, alternativa. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 52 Propriedade Coletiva O código é de todos e ninguém precisa de permissão para modificá-lo Não pertence a um único programador. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 53 Integração Contínua Depois de testada, cada nova funcionalidade deve ser imediatamente sincronizada entre todos os desenvolvedores. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 54 Semana de 40 horas Programação não rende se o programador não estiver descansado e disposto. Trabalhar com qualidade INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 55 Cliente junto O cliente não é alguém de fora e sim um membro da equipe. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 56 Padronizações Se o time seguir padrões pré-definidos de codificação, mais fácil será manter e entender o que já está feito, reforçando a comunicação. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 57 Métodos Ágeis Mais Conhecidos • FDD (Feature Driven Development): • Metodologia ágil de desenvolvimento de software guiado por funcionalidades; • Metodologia que combina as melhores práticas do gerenciamento ágil de projetos com abordagens completas para ES orientada por objetos; • Seu lema é: "Resultados frequentes, tangíveis e funcionais." INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de–Sistemas TÉCNICAS E PROJETO DE SISTEMAS TÉCNICO SUBSEQUENTE Técnico Subsequente – 58 58 ATIVIDADES • 1) Quais são as principais metodologias ágeis? Cite três. • 2) Defina o que Scrum. • 3) Quais os principais elementos do Scrum. • 4) O que é o XP? • 5) Quais seus valores; • 6) Cite os papeis da equipe; • 7) Cite as práticas. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 59