Baixe o app para aproveitar ainda mais
Prévia do material em texto
w w w .i n a te l. b r Processos Ágeis Cap. 8.3 – Processos Ágeis EC205 – Engenharia de Software I Auto: Prof. Afonso Celso Soares Adaptado do material dos professores Guilherme A. B. Marcondes e Valeska P. P. Marcondes Baseado no livro: Engenharia de Software – Roger S. Pressman – Sexta Edição w w w .i n a te l. b r Processos Ágeis Motivação • Na economia moderna, normalmente é difícil ou impossível prever como um sistema computacional se desenvolverá ao longo do tempo. • As condições (mercado, necessidades de usuários, acordos de competição, etc.) mudam muito rapidamente. • Em muitas situações, não se consegue definir totalmente os requisitos antes do projeto começar. • Os engenheiros de software devem ser ágeis o suficiente para responder a um ambiente de negócios variável. w w w .i n a te l. b r Processos Ágeis Desenvolvimento Ágil Filosofia Diretrizes de Desenvolvimento Desenvolvimento Ágil w w w .i n a te l. b r Processos Ágeis Desenvolvimento Ágil Filosofia Diretrizes de Desenvolvimento Desenvolvimento Ágil Foco na satisfação do cliente. Entregas rápidas e incrementais de releases. Equipe de desenvolvimento pequena e altamente motivada. Métodos informais. Quantidade mínima de produtos de trabalho de engenharia. Todo o desenvolvimento focado na simplicidade! w w w .i n a te l. b r Processos Ágeis Desenvolvimento Ágil Filosofia Diretrizes de Desenvolvimento Desenvolvimento Ágil Foco maior nas entregas de releases do que nas atividades de análise e projeto (embora não desencorajem essas atividades). Foco na comunicação ativa e contínua os desenvolvedores e o cliente. w w w .i n a te l. b r Processos Ágeis Manifesto para o Desenvolvimento Ágil: • Quando foi publicado? • Quem foi o líder? • Princípios básicos? w w w .i n a te l. b r Processos Ágeis Manifesto para o Desenvolvimento Ágil: • Publicado em 2001. • Líder: Kent Beck. Ao todo 17 desenvolvedores. – indivíduos e interações X processos e ferramentas; – software funcionando X documentação bem feita; – colaboração com o cliente X negociação de contrato e – resposta às mudanças X seguir um plano. Desenvolvimento ágil pode trazer grandes benefícios, mas não é aplicável a todos os projetos, pessoas e situações. w w w .i n a te l. b r Processos Ágeis O que é Agilidade? Comunicação mais fácil entre todos os envolvidos (equipe de desenvolvimento, pessoal de negócio, gerentes e cliente). Resposta efetiva a mudanças. Ênfase na entrega rápida de software operacional. Cliente como parte da equipe de desenvolvimento (eliminar os termos: nós “desenvolvedores” e eles “clientes”). Reconhecer que o planejamento é limitado e que o plano de projeto deve ser flexível. w w w .i n a te l. b r Processos Ágeis 12 Princípios A Aliança Ágil [1] define 12 princípios para se atingir agilidade: 1. A maior prioridade é satisfazer o cliente por meio de entregas contínuas e rápidas. 2. Mudanças nos requisitos são bem-vindas, não importando a fase de desenvolvimento em que o projeto se encontra. Processos ágeis mudam para buscar a vantagem competitiva dos clientes. [1]The Agile Alliance Home Page, http://www.agilealliance.org.home w w w .i n a te l. b r Processos Ágeis 3. Entrega frequente do software operacional (diversas releases), com preferência pelo menor período possível (algumas semanas ou no máximo meses). 4. Desenvolvedores e especialistas no negócio devem trabalhar juntos diariamente ao longo do projeto. 5. Desenvolver projetos com pessoas motivadas. Disponibilizar o ambiente e o suporte que elas precisam e confiar que farão o trabalho. 12 Princípios w w w .i n a te l. b r Processos Ágeis 6. O método mais eficiente de garantir a troca de informação eficiente e efetiva é na conversa “cara-a- cara” entre os membros da equipe. 7. Software funcionando é a medida primária de progresso. 8. Processos ágeis promovem desenvolvimento sustentável. Financiadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente. 12 Princípios w w w .i n a te l. b r Processos Ágeis 9. Atenção contínua na agilidade em melhorar a excelência técnica e o bom projeto. 10. Simplicidade é essencial. 11. Os melhores requisitos, arquiteturas e soluções de projeto saem de equipes auto-organizadas. 12. Em intervalos regulares, a equipe reflete como pode tornar-se mais efetiva, então o seu comportamento deve se ajustar de acordo. 12 Princípios w w w .i n a te l. b r Processos Ágeis Processo Ágil É difícil prever com antecedência as mudanças de requisitos e/ou de prioridades do cliente ao longo do projeto. É difícil prever quanto de projeto é necessário antes da construção comprovar que está adequado, pois projeto e construção estão interligados. Análise, projeto, construção e teste não são tão previsíveis (do ponto de vista de planejamento) quanto gostaríamos que fosse. w w w .i n a te l. b r Processos Ágeis Processo Ágil Como tratar tanta falta de previsibilidade? Adaptabilidade Deve ser incremental. Feedback efetivo do cliente. Incrementos entregues em intervalos pequenos. w w w .i n a te l. b r Processos Ágeis Fatores Humanos Competência Conhecimento compartilhado entre todos. w w w .i n a te l. b r Processos Ágeis Fatores Humanos Competência Entregar o comprometido no prazo acertado. Foco Comum w w w .i n a te l. b r Processos Ágeis Fatores Humanos Competência Equipe de desenvolvimento, cliente e gerentes de negócios. Foco Comum Colaboração w w w .i n a te l. b r Processos Ágeis Fatores Humanos Competência Autonomia para tomar decisões. Foco Comum Colaboração Tomada de Decisão w w w .i n a te l. b r Processos Ágeis Fatores Humanos Competência Aprender com os problemas. Não repetir. Foco Comum Colaboração Tomada de Decisão Solução de Problemas w w w .i n a te l. b r Processos Ágeis Fatores Humanos Competência Foco Comum Colaboração Tomada de Decisão Solução de Problemas Respeito e Confiança Mútuos O todo maior do que a soma das partes. w w w .i n a te l. b r Processos Ágeis Fatores Humanos Competência Foco Comum Colaboração Tomada de Decisão Solução de Problemas Respeito e Confiança Mútuos Equipe se organiza para atender aos compromissos. Auto-Organização w w w .i n a te l. b r Processos Ágeis Modelos de Processos Ágeis • Quais são os modelos?w w w .i n a te l. b r Processos Ágeis Modelos de Processos Ágeis • Alguns modelos de processos ágeis são: – XP – eXtreme Programming – ASD – Adaptative Software Development – DSDM – Dynamic Systems Development Method – Scrum – Crystal – FDD – Feature Driven Development – AM – Agile Modeling w w w .i n a te l. b r Processos Ágeis Metodologia para pequenas e médias empresas. Boas práticas ao Extremo • Programação em pares • Testes unitários • Testes funcionais • Refactoring • O mais simples! • Metáforas • Integração contínua • O jogo do planejamento! eXtreme Programming - XP w w w .i n a te l. b r Processos Ágeis Jogo do Planejamento Determinar rapidamente o escopo da próxima release combinando prioridades de negócios e estimativas técnicas; atualizar o plano. Pequenas releases Colocar o sistema em produção rapidamente, então entregue novas versões em um curto espaço de tempo. Metáfora Guiar todo o desenvolvimento utilizando uma história simples e compartilhada que descreva como o sistema funciona. eXtreme Programming – XP - Práticas w w w .i n a te l. b r Processos Ágeis Projeto Simples Projetar o sistema tão simples quanto possível a qualquer momento. Assim que descobertas, as complexidades devem ser removidas. Teste Escrever testes unitários continuamente e os clientes escrevem os testes funcionais. Refactoring Reestruturar o sistema, sem mudar o seu comportamento, para remover duplicações, melhorar a comunicação, simplicidade e adicionar flexibilidade. eXtreme Programming – XP - Práticas w w w .i n a te l. b r Processos Ágeis Programação em pares Escrever todo o código com dois programadores em uma máquina. Propriedade coletiva Qualquer um pode mudar qualquer código, em qualquer lugar do sistema, a qualquer hora. Integração contínua Integrar e construir o sistema muitas vezes no dia, sempre que uma tarefa é completada. eXtreme Programming – XP - Práticas w w w .i n a te l. b r Processos Ágeis 40 horas semanais Não trabalhar mais que 40 horas semanais. Cliente on-site Incluir um usuário real na equipe, que esteja disponível o tempo todo para responder questões. Padrões de codificação Escrever todo o código de acordo com regras, enfatizando a comunicação através do código. eXtreme Programming – XP - Práticas w w w .i n a te l. b r Processos Ágeis eXtreme Programming - XP Estórias do usuário descrevem facilidades e funcionalidades. Cada estória é colocada em um cartão indexado. Equipe de desenvolvimento avalia cada estória e determina um valor (estimado em semanas de desenvolvimento). Planejamento Cada estória recebe um valor (prioridade – importância). w w w .i n a te l. b r Processos Ágeis eXtreme Programming - XP Estórias que demorem mais do que 3 semanas devem ser quebradas. Uma nova estória pode ser inserida a qualquer momento. Estórias podem ser mudadas. Após entrega da release, velocidade de desenvolvimento é avaliada. Planejamento Cliente e equipe de desenvolvimento decidem juntos as estórias da próxima release. w w w .i n a te l. b r Processos Ágeis eXtreme Programming - XP Keep it Simple - KIS. O projeto é um guia de implementação da estória. Se é encontrada alguma dificuldade de projeto é elaborado um protótipo (Solução Spike). Projeto Cartões CRC (Classe-Responsabilidade- Colaborador). Pensar o software orientado a objeto. Único produto de trabalho da fase. Poucos produtos de trabalho. Fácil de ser mudado. Refactoring. w w w .i n a te l. b r Processos Ágeis eXtreme Programming - XP Inicia pelos testes unitários. Código feito com objetivo de passar no teste. Integração diária. Minimiza problemas de compatibilidade e interfaceamento. Codificação Teste imediato do código. Feedback instantâneo Pair Programming. Um pensa na lógica e outro nos padrões (por exemplo). Troca de papéis frequente. w w w .i n a te l. b r Processos Ágeis eXtreme Programming - XP Automatização dos testes unitários.Realização de regressão. Testes de validação diários. Testes Testes de aceitação especificados pelo cliente. Derivados das estórias. w w w .i n a te l. b r Processos Ágeis Scrum • O que significa este termo? w w w .i n a te l. b r Processos Ágeis Scrum Companheiros de equipe trabalham juntos para mover a bola. Rugbi w w w .i n a te l. b r Processos Ágeis Scrum - Princípios Pequenas Equipes de Trabalho Organizadas para maximizar comunicação, minimizar overhead e maximizar a troca de conhecimento. w w w .i n a te l. b r Processos Ágeis Pequenas Equipes de Trabalho Adaptação de Processo Adaptar-se às mudanças técnicas e de negócio para garantir que o melhor produto possível será produzido. Scrum - Princípios w w w .i n a te l. b r Processos Ágeis Pequenas Equipes de Trabalho Adaptação de Processo Incrementos Podem ser inspecionados, ajustados, testados, documentados e apoio para evolução do produto. Scrum - Princípios w w w .i n a te l. b r Processos Ágeis Pequenas Equipes de Trabalho Adaptação de Processo Incrementos Divisão em Pequenos Pacotes O trabalho de desenvolvimento e as pessoas envolvidas são particionadas em pequenos pacotes. Scrum - Princípios w w w .i n a te l. b r Processos Ágeis Pequenas Equipes de Trabalho Adaptação de Processo Incrementos Divisão em Pequenos Pacotes Teste e Documentação Constantes À medida que o produto é construído. Scrum - Princípios w w w .i n a te l. b r Processos Ágeis Pequenas Equipes de Trabalho Adaptação de Processo Incrementos Divisão em Pequenos Pacotes Teste e Documentação Constantes Scrum - Princípios w w w .i n a te l. b r Processos Ágeis Scrum Fonte: http://www.sadhanbiswas.com/myblog/tag/technology/ w w w .i n a te l. b r Processos Ágeis Scrum Fonte: http://www.sadhanbiswas.com/myblog/tag/technology/ Lista priorizada de requisitos e facilidades do projeto que agregarão valor ao negócio. Itens podem ser incluídos a qualquer tempo, assim como as prioridades podem ser trocadas. w w w .i n a te l. b r Processos Ágeis Scrum Fonte: http://www.sadhanbiswas.com/myblog/tag/technology/ Backlog que entra no Sprint. Sprint Backlog não sofre alterações. w w w .i n a te l. b r Processos Ágeis Scrum Fonte: http://www.sadhanbiswas.com/myblog/tag/technology/ Desenvolvimento do incremento. w w w .i n a te l. b r Processos Ágeis Scrum Fonte: http://www.sadhanbiswas.com/myblog/tag/technology/w w w .i n a te l. b r Processos Ágeis Scrum Fonte: http://www.sadhanbiswas.com/myblog/tag/technology/ • Diárias e curtas - 15 minutos) • Três perguntas básicas. • O que foi feito desde a última reunião? • Quais obstáculos encontrados? • O que se planeja fazer antes da próxima reunião? •Porcos (comprometidos em cumprir as tarefas do dia) e Frangos (ouvintes). w w w .i n a te l. b r Processos Ágeis Scrum Fonte: http://www.sadhanbiswas.com/myblog/tag/technology/ w w w .i n a te l. b r Processos Ágeis Conclusão • Os principais processos ágeis utilizam a entrega do software por incremento, o que permite avaliar constantemente se o resultado está atendendo às expectativas e necessidades. • Os seus pontos chave são: – Equipes auto-organizadas; – Comunicação; – Colaboração; – Reconhecer que mudanças acontecem; – Ênfase na entrega rápida do software e – Principalmente, manter o sistema simples. • Dentre estes modelos, o Scrum tem sido o mais utilizado nas empresas.
Compartilhar