Projeto de Sistemas Aula 3 • Professora Kelly de Paula Cunha Distribuição da pontuação das atividades • Acessar o moodle para ver o cronograma das atividades e suas respectivas pontuações Modelos Tradicionais versus Modelos Ágeis o o o o Modelos Tradicionais: Modelo Cascata Modelo Rad Modelo Incremental Modelo de Prototipação ... Modelos Ágeis: o Scrum o Kanban o XP Desenvolvimento Ágil de Software Agile Development Material Didático Elaborado pelo Professor Felipe A. Moura Miranda Índice Desenvolvimento Ágil 1.Introdução 2.Métodos de Desenvolvimento Ágil 3.Scrum 4.Programação Extrema – XP 5.Kanban 5 Introdução O que é Desenvolvimento Ágil? Resumidamente: Mudança de Perspectiva! 6 Introdução O que é Desenvolvimento Ágil? Resumidamente: Mudança de Perspectiva! Modelo Tradicional • Análise ==> Projeto ==> Construção Modelo Ágil • Iterações curtas! ==> Entrega/Execução ==> • Entregas pequenas, mas frequentes! Manutenção • Uso de Padrões de Projetos e • Baseado em modelos industriais de produção. • Mudanças feitas em estágios avançados são caríssimas. Frameworks. • Diminuição de riscos no desenvolvimento. • Maior envolvimento do cliente. • O cliente só vê o software no fim do processo. 7 Introdução O que é Desenvolvimento Ágil? Motivação e Valores Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo. Indivíduos e interações 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 Fonte: Manifesto Ágil (http://www.agilemanifesto.org/iso/ptbr/) Introdução O que é Desenvolvimento Ágil? Princípios Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado. Mudanças nos requisitos são bem-vindas, mesmo tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente. Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo. E outros 9… Métodos de Desenvolvimento Ágil ★ SCRUM - Forma simples e de fácil repetição para gerenciar trabalho. ★XP (Extreme Programming) - Baseia-se nos valores de simplicidade, comunicação, feeback e coragem e em um conjunto de práticas iterativas. ★KANBAN - Método principalmente visual. As tarefas são colocadas num quadro para todos do time verem. SCRUM Quem é quem no SCRUM Dono do Produto - Responsável pelo “Por que? & O que?” - Prioriza e valida requisitos - Dita o rumo do projeto Equipe Scrum Master - Responsável pelo “Como?" - Se organiza de forma independente - Estima e produz o software - Coordena o processo - Resolve problemas e impedimentos - Foca na cultura da empresa SCRUM Fluxo de Trabalho SCRUM Fluxo de Trabalho Sprint (Corrida, Tiro) - É a unidade básica de trabalho da equipe, onde o desenvolvimento realmente acontece. - A duração pode ser escolhida pela equipe. Normalmente, fica entre 1 semana e 1 mês. - Uma duração constante favorece o ritmo da equipe. - No exemplo, o sprint é de 2 semanas. SCRUM Fluxo de Trabalho Backlog - É a lista de itens a serem desenvolvidos. - O dono do produto prioriza os itens no backlog. - Um número de itens é selecionado na fase de Planejamento de Sprint, de acordo com a prioridade, para desenvolver no próximo Sprint. SCRUM Fluxo de Trabalho Planejamento de Sprint - Antes de começar um novo Sprint, todos os envolvidos se reúnem. - A lista de itens priorizados é revista, e a equipe estima o esforço (tempo) que cada um dos itens leva para ser concluído. - Um número adequado de itens é selecionado, gerando o Sprint Backlog. Dono do Produto Scrum Master Equipe SCRUM Fluxo de Trabalho Atividade diária: Reuniões em pé - Ocorre todos os dias durante o Sprint e tem duração limitada. Normalmente é de 15 minutos. - Os participantes devem reportar: > O que você fez ontem? > O que fará hoje? > Tem alguma coisa o atrapalhando? - O Scrum Master controla o andamento da reunião e visa facilitar o processo. - As reuniões são em pé para garantir que acabe no prazo estabelecido. SCRUM Fluxo de Trabalho Burndown Chart - Gráfico de Progresso - Trabalho restante x Tempo restante - Eixo y: número de tarefas existentes no Sprint. - Eixo x: dias correspondentes à duração do Sprint. SCRUM Fluxo de Trabalho Fim de um Sprint - 1: Sprint Review - É realizado um trabalho de revisão do Sprint que terminou. - A reunião é informal, e todos os envolvidos são convidados. - O software parcial, mas que funciona, é apresentado, exibindo as novas funcionalidades. - As métricas de desempenho do Sprint também são mostradas. SCRUM Fluxo de Trabalho Fim de um Sprint - 2: Retrospectiva - É realizado ainda um trabalho de retrospectiva do Sprint que terminou. - A reunião é fechada ao time e ao Scrum Master. O dono do produto pode participar. - A duração é entre 30 a 60 minutos. - Discute-se o que deu certo, o que não deu, e o que deve ser feito de diferente no próximo Sprint. XP: Extreme Programming Introdução - XP usa um conjunto de práticas iterativas de desenvolvimento para obter os mesmos tipos de benefícios que o Scrum. Entre eles: - Ciclos curtos de desenvolvimento. - Priorização dos itens a serem desenvolvidos. - Refatoração constante. XP: Extreme Programming Práticas 1 - Planejamento incremental Os casos de uso do projeto são transformados em Histórias do Usuário, em que cada história uma situação do uso do sistema é representada. Os desenvolvedores transformam uma história em tarefas de desenvolvimento. - Design simples O design do projeto deve satisfazer os requisitos mínimos do sistema e nada mais. - Desenvolvimento baseado em testes Testes automatizados são escritos para testar uma funcionalidade antes mesmo de a nova funcionalidade existir, para garantir que ela satisfaça o que era desejado inicialmente. - Programação em pares O desenvolvimento é feito em pares de desenvolvedores, para que um verifique o trabalho do outro e pensem juntos na resolução de problemas. XP: Extreme Programming Práticas 2 - Refatoração constante Sempre que os desenvolvedores encontrarem possibilidades de melhoramento do código, devem refatorar, para garantir que a base de código continue simples. - Integração contínua Assim que uma tarefa é concluída, ela deve ser incluída e testada no sistema inteiro. - Propriedade compartilhada Todos os pares de desenvolvedores trabalham em todo o sistema, e não em partes específicas. Isso garante que o código é constantemente revisado. Kanban (看板) Melhoria Contínua: Princípios e Práticas - Comece com o que você já faz Kanban não estipula um processo, apenas motiva para a melhoria contínua. - Mudanças pequenas, graduais e evolucionárias As mudanças introduzidas devem ser pequenas, e não revolucionárias, para que o processo e as pessoas possam se ajustar de acordo. - Respeite o processo atual Provavelmente há coisas que funcionam na metodologia atual, e nem tudo deve ser descartado - deve-se preservar o que funciona. - Liderança em todos os níveis Todos os níveis devem ter poder de influência sobre o próprio trabalho. - Visualização O objetivo é facilitar o entendimento do fluxo de informação. Por isso, deve ser visível a todos os envolvidos. - Limite o que está em andamento Deve haver um limite nas atividades desenvolvidas simultaneamente para garantir um nível de produtividade aceitável. Referências Bibliográficas • 1. SHORE, Warden. A Arte do Desenvolvimento Ágil. Alta Books, 2008. • 2. COHN, Mike. Desenvolvimento de Software com Scrum - Aplicando Métodos Ágeis com Sucesso. Bookman, 2011. • 3. KERIEVSKY, Joshua. Refatoração para Padrões. Bookman, 2008. • 4. PHAM, Andrew; PHAM, Phuong-Van. Scrum em Ação Gerenciamento e Desenvolvimento Ágil de Projetos de Software. Novatec, 2011. • 5. MACEDO, Paulo Cesar de; SBROCCO, José Henrique Teixeira de Carvalho. Metodologias Ágeis - Engenharia de Software Sob Medida. Ed. Érica, 2012. Atividade 4 Escolha um dos métodos de desenvolvimento de software, para ser empregado no seu trabalho Ex: Scrum, Kanban, XP... Justifique porquê este método é mais adequado para o seu trabalho, e descreva o método. Entrega: 11/09/2015 Enviar para o e-mail: [email protected] Cronograma • 04/09/2015 - Atividade 2 - Elaboração do Resumo e submissão para o site da Feira de Ciências • 04/08/2015 - Atividade 3 - Elaboração do Plano de Trabalho • 11/08/2015 - Atividade 4 - Descrição da metodologia de desenvolvimento a ser utilizada