Baixe o app para aproveitar ainda mais
Prévia do material em texto
MÉTODOS ÁGEIS DE PROJETOS DE SOFTWARE MÉTODOS ÁGEIS DE PROJETOS DE SOFTWARE EQUIPE: Bianca Karla Amorim de Sousa Melo - 11408143 Déborah de Jesus Pereira Viana - 11514333 Michelle Santos da Silva - 11408137 DISCIPLINA: Gerência de Projetos Profª. Danielle Rousy 2 SUMÁRIO 1. Introdução 2. História 3. Manifesto Ágil: Valores e Princípios 4. Principais Tipos de Métodos Ágeis 5. Vantagens 6. Desvantagens 7. Comparação 8. Conclusões 3 1. INTRODUÇÃO ““...A maioria de nossas suposições sobre negócios, tecnologia e organizações têm pelo menos 50 anos. Elas perderam seu tempo. Como resultado, estamos ensinando e praticando políticas que estão cada vez mais em desacordo com a realidade e, portanto, contraproducentes.” [Peter Drucker 1998] 5 INTRODUÇÃO ▹ Competitividade ▹ Pressão do Mercado ▹ Inovaçoes ▹ Prazos mais curtos ▹ Alta Qualidade ▹ Acompanhar o ritmo 6 INTRODUÇÃO 7 Expectativa ▹ Os requisitos são conhecidos no início do projeto; ▹ O desenvolvedor sabe como construir; ▹ Nada irá mudar ao longo do caminho. INTRODUÇÃO Realidade ▹ o cliente não sabe o que ele realmente quer; ▹ Os requisitos vão mudar; ▹ O desenvolvedor não sabe como construir. 8 ““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 e descobrem como fazer melhor.” [Jeff Sutherland] 9 O QUE É? É conjunto de metodologias que servem para acelerar o ritmo dos processos de desenvolvimento de software. Os modelos tradicionais de desenvolvimento possuem ciclo que podem durar anos. Enquanto que os modelos ágeis utilizam ciclos de desenvolvimento que podem durar de 1 a 4 semanas. 10 PRINCÍPIOS DO DESENVOLVIMENTO ÁGIL ▹ Garantir a satisfação do consumidor; ▹ Até mesmo mudanças tardias de escopo no projeto são bem-vindas para garantir a vantagem competitiva do cliente; ▹ Processo incremental (Software funcionais são entregues frequentemente) ; ▹ Cooperação diária entre pessoas que entendem do 'negócio' e desenvolvedores; ▹ Projetos surgem através de indivíduos motivados, entre os quais existe relação de confiança. 11 PRINCÍPIOS DO DESENVOLVIMENTO ÁGIL ▹ A maneira mais eficiente e efetiva de transmitir informações é conversar cara a cara; ▹ Software funcionais são a principal medida de progresso do projeto; ▹ Processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes para manter um ritmo constante indefinidamente. 12 PRINCÍPIOS DO DESENVOLVIMENTO ÁGIL ▹ Design do software deve prezar pela excelência técnica; ▹ Simplicidade é essencial; ▹ As melhores arquiteturas, requisitos e projetos emergem de equipes auto-organizadas; ▹ Em intervalos regulares, a equipe reflete sobre como para tornar-se mais eficaz, então sintoniza e ajusta seu comportamento apropriadamente. 13 2. HISTÓRIA CRISE DO SOFTWARE ▹ Foi um termo utilizado no fim dos anos 1970, quando os conceitos de engenharia de software ainda não eram conhecidos. ▹ Expressava as dificuldades no desenvolvimento de software no rápido crescimento da demanda por software. 15 CRISE DO SOFTWARE ▹ Estimativas de prazo e de custo imprecisas. ▹ Produtividade das pessoas da área de software não acompanha a demanda. ▹ Prazos ultrapassados. ▹ Custos acima do previsto. ▹ A facilidade de manutenção não era enfatizada como um critério importante, gerando assim custos de manutenção elevados. ▹ Não atendimento dos requisitos do usuário. ▹ 1/3 dos projetos eram cancelados. ▹ 2/3 dos projetos extrapolavam o orçamento. 16 Ariane 5 - Projeto Espacial da agência Europeia 17 HISTÓRIA ▹ Em 1970, o Dr. William Royce publicou um artigo que discutia o gerenciamento e o desenvolvimento de grandes sistemas de software. ▹ Na década de 1980 e início da de 1990, a insatisfação com as abordagens pesadas levou a um grupo de desenvolvedores proporem novos ‘métodos ágeis’. 18 3. MANIFESTO ÁGIL MANIFESTO ÁGIL Em 2001, um grupo de programadores lançou o Manifesto Ágil, uma metodologia que tem como objetivo satisfazer os clientes ou envolvidos em um projeto entregando com rapidez e, com maior frequência, versões do projeto, conforme as necessidades. 20 OS QUATRO VALORES DO MANIFESTO ÁGIL 21 ▹ 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 e membros do projeto mais que negociação de contratos; ▹ Responder a mudanças mais que seguir um plano. 4. PRINCIPAIS TIPOS DE MÉTODOS ÁGEIS 23 XP (eXtreme Programming) ▹ Criado na década de 1990 ▹ Excelente abordagem para equipes pequenas e mudança constante de escopo ▹ Veio antes do Manifesto Ágil 24 PILARES DO XP 25 Agilidade no Desenvolvimento da Solução Economia de Recursos Qualidade do Produto Final VALORES Para chegar à excelência nos serviços prestados, uma equipe XP deve se basear em valores, isto é, um contrato de atitudes e comportamentos que levam ao sucesso. São eles: ▹ Comunicação; ▹ Simplicidade; ▹ Feedback; ▹ Coragem; ▹ Respeito; 26 PRÁTICAS Pair Programming Um colaborador codifica e o outro faz sugestões ▹ Melhor comunicação ▹ Maior produtividade ▹ Projeto de alta qualidade Design Simples Design simples e funcional ▹ Evita excessos de generalizações ▹ Prepara o sistema para possíveis mudanças Testes Cada funcionalidade é testada antes de ser codificada ▹ Evita retrabalho ▹ Mantém qualidade 27 PRÁTICAS Refatoração Mudança e melhoria do código Sem alterar comportamento nem funcionalidade Propriedade Coletiva Qualquer colaborador pode alterar o código Garante que o projeto não se prejudique caso alguém saia da equipe Interação Contínua Códigos integrados e testados com frequência 28 ▹ Cliente Presente ▹ Reuniões Diárias ▹ Semana de 40 horas ▹ Padrões de Código 29 Fonte: Devmedia “ PERGUNTA: Em que cenário não seria bom usar o XP? 30 RESPOSTA Equipes grandes e espalhadas geograficamente. E em situações em que não se tem controle sobre o código. 31 “ PERGUNTA: Se estivesse numa empresa que utilizasse XP, você encontraria algumas dificuldades? Se sim, quais? 32 RESPOSTA Você deixaria alguém mexer no seu código normalmente? Você teria coragem de admitir que não sabe e pedir ajuda? Você jogaria fora um código que durou uma semana para elaborá-lo por ter sido julgado como desnecessário pela equipe? 33 LEAN (Enxuto) ▹ Muito utilizado na gestão de empresas e startups ▹ Identificação e eliminação sistemática de desperdícios ▹ Fortemente indicado para validação de ideias e hipóteses 34 PILARES DO LEAN 35 Compartilhamento de Informação Melhoria de Qualidad e Aumento de Produtivi dade Redução de Custos LEAN STARTUP A metodologia Lean Startup trata a definição do produto mínimo viável (MVP, do Inglês Minimum Viable Product) como um dos marcos importantes no ciclo de vida de um empreendimento. ▹ Minimum: o menor tamanho possível, que possa ser entregueno menor tempo possível. ▹ Viable: importante o suficiente para que o cliente adote esse produto, se possível gerando receita. ▹ Product: funcionalidades encaixadas em uma entrega que se assemelhe a um produto útil. 36 KANBAN ▹ Criado na década de 1960 pela Toyota para sinalizar as etapas do processo de fabricação ▹ Método de gestão focado em fluxos de valor ▹ Do japonês “registro” ou “placa visível” (método dos post-its) 37 KANBAN 38 *Cada tarefa deve ser movida conforme o andamento do projeto. FDD (Feature-Driven Development) ▹ Guiada pelo desenvolvimento de funcionalidades ▹ Método bastante enxuto ▹ Divide-se nas fases de concepção e construção 39 FDD (Feature-Driven Development) 40 Fonte: Rochadigital DSDM (Dynamic Systems Development Method) ▹ Metodologia de desenvolvimento iterativo e incremental ▹ Enfatiza o envolvimento constante do usuário 41 DSDM (Dynamic Systems Development Method) ▹ Objetivo: Entregar softwares no tempo e com custos estimados através do controle e ajuste de requisitos ao longo do desenvolvimento 42 DSDM (Dynamic Systems Development Method) ▹ Princípios: 1. Valor 2. Envolvimento constante do usuário 3. Times empoderados 4. Entregas frequentes 5. Testes integrados 6. Colaboração dos stakeholders 43 “ “Fitness for business”: 80% de desenvolvimento em 20% do tempo 44 CRYSTAL ▹ Uma das abordagens mais leves e adaptáveis ▹ Promove a entrega antecipada e frequente e a eliminação de burocracias ▹ Foca nas habilidades e talentos das pessoas 45 CRYSTAL ▹ Princípios: 1. Trabalho em Equipe 2. Comunicação 3. Simplicidade 4. Reflexão 5. Ajustes Frequentes 6. Melhores processos 46 CRYSTAL ▹ Possui diversos métodos, divididos por cores, que representam o tamanho do projeto: 1. Clear 2. Yellow 3. Orange 4. Red 5. Maroon 47 CRYSTAL 48 Fonte: Wikiversity SCRUM ▹ Método ágil mais utilizado no mundo ▹ Trata-se de um framework de gestão de projetos com uma abordagem iterativa e incremental ▹ Ideal para projetos de alta complexidade e com objetivo definido 49 SCRUM ▹ Princípios 1. Discussões diárias 2. Envolvimento constante do cliente 3. Times empoderados 4. Entregas frequentes 5. Testes integrados 6. Colaboração dos stakeholders 50 SCRUM ▹ Sprint: Uma sprint é a unidade básica de desenvolvimento em Scrum Sprints tendem a durar entre uma semana e um mês, e são um esforço dentro de uma faixa de tempo constante 51 SCRUM ▹ Papéis: 1. o Scrum Master, que mantém os processos (normalmente no lugar de um gerente de projeto); 2. o Dono do Produto, ou Product Owner, que representa os stakeholders e o negócio; 3. a Equipe de desenvolvimento, ou DevTeam, um grupo multifuncional entre 3 a 9 pessoas e que fazem a análise, projeto, implementação, teste etc. 52 SCRUM Ciclos de Sprints No Scrum, os projetos são divididos em ciclos (tipicamente mensais) chamados de Sprints Product Backlog São as funcionalidades a serem implementadas em um projeto Sprint Backlog Tarefas definidas e priorizadas pelo Product Owner que são alocadas em um Sprint após a Sprint Planning Meeting 53 SCRUM 54 A cada dia de uma Sprint, a equipe faz uma breve reunião chamada Daily Scrum com o objetivo de disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia. SCRUM 55 Ao final de um Sprint, a equipe apresenta as funcionalidades implementadas em uma Sprint Review Meeting. Finalmente, faz-se uma Sprint Retrospective e a equipe parte para o planejamento do próximo Sprint. Assim reinicia-se o ciclo. SCRUM 56 Fonte: Desenvolvimento Ágil 5. VANTAGENS Vantagens 1. As entregas são mais rápidas 2. Deixam o software mais flexível 3. Boa qualidade final 4. Proximidade entre os stakeholders 5. Gerenciamento de riscos 58 6. DESVANTAGENS Desvantagens 1. O produto é entregue por partes, o que pode não ser vantajoso para o cliente que precisa de um projeto 100% pronto; 2. Exige várias análises em cada etapa do projeto; 3. Pode ter um custo mais alto do que um projeto realizado com metodologias tradicionais. 60 7. COMPARAÇÃO COM OUTROS MÉTODOS ÁGIL VS. CASCATA Métrica Modelo em Cascata Modelo Ágil Escala de planejamento Longo prazo Curto prazo Distância entre cliente e desenvolvedor Grande Pequena Tempo entre especificação e implementação Longo Curto Tempo para descobrir problemas Longo Curto Risco de cronograma do projeto Alto Baixo Habilidade de mudança Baixa Alta 62 ÁGIL VS. TRADICIONAIS 63 ÁGIL VS. CASCATA VS. ITERATIVO 64 Analysis > Design > Coding > Testing 65 REFERÊNCIAS 1. Engenharia de Software, Ian Sommervile. 9ª Edição, 2011. 2. https://pt.wikipedia.org/wiki/Desenvolvimento_%C3%A1gil_de_software 3. https://linchpinseo.com/the-agile-method/ 4. https://luis-goncalves.com/what-is-agile-methodology/ 5. https://www.ibm.com/developerworks/community/blogs/rationalbrasil/ entry/mas_o_que_s_c3_a3o_essas_tais_de_metodologias__c3_a1geis?la ng=en 6. https://www.projectbuilder.com.br/blog/quais-sao-os-principais-tipos-d e-metodos-ageis/ 7. https://sambatech.com/blog/insights/metodos-ageis/ 8. http://www.metodoagil.com/metodos-ageis/ 9. https://www.devmedia.com.br/gestao-de-projetos-com-rup/39332 10. https://www.infoescola.com/engenharia-de-software/rup/ 66 OBRIGADA! Dúvidas? 67
Compartilhar