Gerenciamento de Projetos de Software

Documentos relacionados
Alexandre Lima Guilherme Melo Joeldson Costa Marcelo Guedes

Com metodologias de desenvolvimento

Gerenciamento da Integração (PMBoK 5ª ed.)

Desenvolvimento Ágil de Software

Metodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta Rafael Reimberg Vinicius Quaiato

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM)

SCRUM. Otimizando projetos. Adilson Taub Júnior tecproit.com.br

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Métodos Ágeis para Desenvolvimento de Software Livre

Géssica Talita. Márcia Verônica. Prof.: Edmilson

Scrum. Introdução UFRPE-DEINFO BSI-FÁBRICA DE SOFTWARE

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?

METODOLOGIAS ÁGEIS - SCRUM -

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES

Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades

INTRODUÇÃO A PROJETOS

Fundamentos de Teste de Software

Programação Extrema. Luis Fernando Machado. Engenharia de Software

Módulo de projetos ágeis Scrum Módulo de Projetos Ágeis Scrum

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Uma introdução ao SCRUM. Evandro João Agnes

Gestão de Projetos com Métodos Ágeis - Avançado

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução.

ITIL v3 - Operação de Serviço - Parte 1

Gestão Ágil de Requisitos e Scrum

UNIFEOB. Centro Universitário da Fundação de Ensino Octávio Bastos PROJETO DE PRÁTICAS BEM SUCEDIDAS EM SALA DE AULA CURSOS DE ARQUITETURA E URBANISMO

ANÁLISE COMPARATIVA ENTRE OS MODELOS DE PROCESSO: PROTOTIPAÇÃO, PSP E SCRUM

Um pouco de história

Por que sua organização deve implementar a ABR - Auditoria Baseada em Riscos

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

Introdução ao Processo Unificado (PU)

Fevereiro Scrum: Desenvolvido e mantido por Ken Schwaber e Jeff Sutherland

Engenharia de Software II

MDMS-ANAC. Metodologia de Desenvolvimento e Manutenção de Sistemas da ANAC. Superintendência de Tecnologia da Informação - STI

Comparativo entre Processos Ágeis. Daniel Ferreira

Processos de gerenciamento de projetos em um projeto

Sistemas de Informação I

SCRUM Gerência de Projetos Ágil. Prof. Elias Ferreira

Disciplina: Alfabetização

agility made possible

Gerenciamento de Equipes com Scrum

Um case de sucesso em equipe ágil, dedicada e remota com evolução adaptativa e gradativa do Scrum.

Expresso Livre Módulo de Projetos Ágeis

Scrum. Centro de Informática - Universidade Federal de Pernambuco Sistemas de Informação Kiev Gama kiev@cin.ufpe.br

Scrum Guia Prático. Raphael Rayro Louback Saliba Certified Scrum Master. Os papéis, eventos, artefatos e as regras do Scrum. Solutions.

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com

JORNADA DE COMPRA. O que é e sua importância para a estratégia de Marketing Digital VECTOR

Gerenciamento de Projetos Modulo III Grupo de Processos

ANEXO 07 CICLO DE DESENVOLVIMENTO ÁGIL PROCERGS

7 Mudanças Realizadas

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Aula 2 Introdução ao Scrum

Projetos Ágeis aplicados a TI. Júlio Cesar da Silva Msc.

Laudon & Laudon MIS, 7th Edition. Pg. 1.1

Profa. Dra. Ana Paula Gonçalves Serra

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

ÍNDICE INTRODUÇÃO...3

SCRUM. É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto.

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

PLANEJAMENTO ESTRATÉGICO

Prof. Me. Marcos Echevarria

Oportunidades GIFE. Como divulgar vagas na Comunidade

BSC Balance Score Card

Práticas do XP (Programação em Pares e Stand Up Meeting)

Projeto SIAC 2.0: Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)

TUTORIAL PARA UTILIZAÇÃO DA PLATAFORMA LMS

Mantis. Solicitando suporte. Manual do Cliente

Endereço de acesso:

Gerenciamento de custos do projeto

PREVISÃO DE DEMANDA - O QUE PREVISÃO DE DEMANDA - TIPOS E TÉCNICAS DE PREVISÃO DE DEMANDA - MÉTODOS DE PREVISÃO - EXERCÍCIOS

MANUAL DA SECRETARIA

Manifesto Ágil - Princípios

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis

Leslier Soares Corrêa Estácio de Sá / Facitec Abril/Maio 2015

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

CAPABILITY MATURITY MODEL FOR SOFTWARE. Eduardo Mayer Fagundes

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

Passo a Passo do Cadastro Funcionários no SIGLA Digital

Aluna: Vanessa de Mello Orientador: Everaldo Artur Grahl

Qualidade de Software

Estudo sobre Desenvolvimento de Software Utilizando o Framework Ágil Scrum

Métodos Ágeis em Gerenciamento de Projetos

Uma introdução ao SCRUM

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro

Estudo de Viabilidade. GMon Sistema de Gerenciamento de Monitores. Curso: Ciências da Computação Professora: Carla Silva

ágeis para projetos desenvolvidos por fábrica de software

QUALIDADE DE SOFTWARE COM SCRUM

Indústria de Cartões de Pagamento (PCI) Padrão de segurança de dados. Resumo de Alterações da Versão 2.0 para a 3.0 do PCI-DSS

Gerenciamento de Projetos Modulo VIII Riscos

FACULDADE PITÁGORAS DISCIPLINA: GESTÃO DE PROJETOS. Prof. Msc. Carlos José Giudice dos Santos

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

Guia do Nexus. O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado. Desenvolvido e mantido por Ken Schwaber e Scrum.

1. Acessando o SIGPRH

Transcrição:

Gerenciamento de Projetos de Software Framework Ágil, Scrum Prof. Júlio Cesar da Silva Msc. 2º Encontro

Ementa & Atividades Aula 1: Fundamentos do Gerenciamento de Projetos (p. 4) 30/abr (VISTO) Aula 2: Métodos Ágeis (p.21) 30/abr (VISTO) Caso: Airbus A3XX (VISTO) Aula 3: Lean, KanBan e extreme Programming (p.35) 07/mai Aula 4: Test Driven Development - TDD e Scrum (p.47), 07/mai Caso: Turner Construction Co. Aula 5: Framework Scrum (p.64) 21/mai Aula 6: Reuniões Reuniões Retrospectivas (p.76) 21/mai Pedras no Caminho ( Veja edição 2358 Pg. 84) Aula 7: Planejamento Orientado a Valor (p. 86) 04/jun. As ameaças à Copa (Veja edição 2364 Pg. 50)

Lean O Lean não é especificamente uma metodologia ágil, porém muitos de seus valores estão presentes em valores ágeis e sua adoção pode agregar muitos valores em diversas outras metodologias e boas práticas. Baseado na metodologia desenvolvida pela Toyota conhecida como Lean Manufacturing.

Lean O Lean está diretamente ligado à redução do desperdício. Para o Lean, desperdício é tudo que não é feito para o cliente, e no caso dos softwares podemos ter: espera (tempo de desenvolvimento parado por falta de informações), documentação excessiva, funcionalidades e rotinas não solicitadas pelo cliente.

Lean O Lean classifica o desperdício em 3 categorias: MURA: Desperdício gerado por antecipar possíveis necessidades do cliente (desenvolver o que não foi solicitado); MURI: Desperdício gerado pela falta de planejamento ou pelo excesso de burocracia; MUDA: Desperdício gerado pela cultura de trabalho, desperdícios do dia a dia, como: espera, superprocessamento, defeitos.

Lean Empoderar o time : Em vez da abordagem de microgestão, devemos respeitar o conhecimento superior dos membros do time e deixar que eles sejam responsáveis pelas decisões técnicas (locais) necessárias, para tornarem-se mais produtivos e bem-sucedidos, aumentando as chances de sucesso do projeto.

Lean Entregar rapidamente: Podemos aumentar o Retorno sobre Investimento (return on investment) ROI com entregas de valor rápidas. Com entregas rápidas e frequentes o cliente já pode iniciar o uso do software (das funcionalidades já desenvolvidas) gerando valor mais rapidamente para o investimento realizado no desenvolvimento.

Lean Otimizar o todo: Para o Lean o sistema não é apenas a soma de suas partes, devemos observar além de cada parte e como todas estão alinhadas aos interesses de negócio da empresa e como otimizá-las da melhor forma possível.

Lean Construir com qualidade: O Lean não testa a qualidade no final do processo. A qualidade do produto final deve ser assegurada com a qualidade de cada etapa/ parte do processo utilizando técnicas como refatoração, integração contínua e muitas outras que veremos mais adiante.

Lean Adiar decisões: Parece estranho esse conceito mas a mensagem aqui é equilibrar o planejamento antecipado com a tomada de decisões e decidir o mais tarde possível. Ve j a q u e n ã o s e e stá d efe n d e n d o a procrastinação, mas sim esperar o máximo possível antes de decidir.

Lean Amplificar aprendizagem: Esse conceito envolve facilitar a comunicação cedo e sempre, promovendo o feedback o mais rápido possível, e aprendizado contínuo com base no que aprendemos sobre projetos, softwares e negócios.

Kanban O KanBan possui a mesma filosofia dos cartões, é uma ferramenta visual que auxilia o acompanhamento do fluxo de trabalho e controle do WIP (Work in progress, Trabalho em progresso ).

Dimensionamento Kanban Dimensionamento da Escala Kanban 4h - Segurança 4h - Resposta 20h Lote de Produção 31

Kanban O quadro KanBan permite visualizar o trabalho que está em andamento e limitar o WIP. Tradicionalmente (mas não é uma regra), o quadro KanBan é dividido em quadros ou status como Do (A Fazer) Doing (Fazendo) Done (Feito), as tarefas que precisão ser realizadas são listadas (ou coladas ) na parte A Fazer, quando elas começam a ser feitas, elas mudam para o status Fazendo e quando estão (totalmente) prontas, vão para o status Feito.

Utilidade do Kanban Visualizar o fluxo de trabalho: O quadro KanBan é uma excelente ferramenta Low-Tech, High Touch. Quando inserimos a tarefa (ou funcionalidade) no quadro, tornamos o trabalho tangível, o que é um desafio para gerentes de projetos de softwares e serviços. A visualização nos permite identificar onde estão ocorrendo os gargalos no fluxo de trabalho e assim melhorar os processos redesenhando-os ou redimensionando a equipe em cada tarefa.

Kanban Limitar o WIP (Trabalho em Progresso): Uma das regras mais importantes para qualquer metodologia ou framework ágil é entregar mais que iniciar. Tornar regras e processos explícitos. Com o quadro é mais fácil discutir os trabalhos que estão em andamento, que precisarão ser feitos e como um trabalho em andamento poderá impactar outro.

Kanban Colaboração: A percepção visual do trabalho facilita o debate aberto do time sobre como resolver atividades que estão engarrafando o fluxo, além de dar a percepção do todo (do conjunto de atividades feitas, fazendo e a fazer).

extreming Programming Para entendermos o XP, inicialmente devemos compreender seus valores. Esses são conceitos não tangíveis que acredita-se fazer uma grande diferença na qualidade final do produto e na motivação dos times. O primeiro deles é a Comunicação. O valor da comunicação é visto dentro do time, entre seus membros, e entre o time e o cliente. Ambos têm igual importância.

extreming Programming A comunicação deve ser: Direta; Eficaz; Esclarecedora.

extreming Programming É um valor que engloba as relações interpessoais, mas também se refere ao feedback que o próprio código do projeto devolve aos membros do time. Para que o feedback do código funcione bem, são necessários testes automatizados de unidade e um servidor de integração contínua para que os testes mais longos sejam rodados com frequência e, se quebrarem, sinalizem uma inconsistência.

extreming Programming Com o feedback o cliente pode: Identificar erros rapidamente; Definir prioridades.

extreming Programming Coragem O XP prega que os desenvolvedores precisam ter coragem para refatorar o código em prol de melhorias em clareza e design e nada melhor para dar coragem do que testes automatizados. Coragem é também apagar o código, mesmo funcionalidades inteiras, não importa o trabalho que tenha sido empregado para desenvolvê-la.

extreming Programming Programação pareada A programação em par é uma forma eficaz de reduzir a incidência de bugs. Quem trabalha continuamente com programação em par se habitua a corrigir e ter seu trabalho corrigido. A programação em par ajuda os desenvolvedores a criarem soluções mais simples, mais rápidas de implementar e mais fáceis de manter. A programação em par também é uma forma de fazer com que o desenvolvedor tenha mais confiança no código que produz.

extreming Programming Testes automatizados e refatoração Um dos grandes desafios é trabalhar em códigos antigos. O XP prega a refatoração constante. Mas, quanto maior o projeto, maior é a quantidade de código não escrita por nós ou antigo, o que aumenta a insegurança de refatorar o código, impedindo a evolução do projeto.

extreming Programming Funções dos testes automatizados O XP prega o uso extensivo de testes automatizados que descrevem o comportamento de uma funcionalidade, preferencialmente escritos antes mesmo do código que eles testam, prática que recebe o nome de desenvolvimento dirigido por testes (test Driven Development - TDD)

Test Driven Development TDD Como vimos, o XP prega o uso extensivo de testes automatizados que descrevem o comportamento de uma funcionalidade, preferencialmente escritos antes mesmo do código que eles testam, prática que recebe o nome de desenvolvimento dirigido por testes (Test Driven Development - TDD).

Test Driven Development TDD 1 Faz-se o teste automatizado para o caso mais simples. 2 Roda-se o teste (que não deverá passar, pois a funcionalidade ainda não foi implementada). 3 Implementa-se através da mudança mais simples possível que faça o teste passar. 4 Se o código não estiver o melhor possível: Refatora ou Certifique-se de que os testes continuem passando. 5 Se o código estiver bom - Volte para o primeiro item com o próximo teste mais simples.

Test Driven Development TDD EXEMPLO "Como comprador do site, eu quero ser avisado por email quando um produto voltar a ficar disponível para compra, assim eu posso adquirilo".

Test Driven Development TDD Algumas perguntas que poderiam ser realizadas são as seguintes: O usuário deve possuir uma conta no site? Se sim, o que acontece se o usuário não está logado no site? O que acontece caso o usuário já tenha criado um alerta para o mesmo produto?

Test Driven Development TDD Após a obtenção dessas respostas, existe um entendimento melhor do que o espera que o produto faça ou não. Então, pode-se começar a estruturar os testes de aceitação em colaboração com todos

Test Driven Development TDD Fazemos isso em uma linguagem que todos entendam, por exemplo: usuário deve ser cadastrado no site; senão estiver, remeta-o para a página de cadastro; usuário deverá estar logado; senão estiver, solicite o usuário e senha; usuário cadastrado e logado deverá confirmar o alerta para o e-mail que está no cadastro.

Test Driven Development TDD O próximo passo é organizar os testes de aceitação em um formato requerido pelo framework de automação de testes. Existem diversos frameworks de automação de teste: FIT, FitNesse, Cucumber, Concordian, Robot Framework, RSpec, Jnario, entre outros.

SCRUM Scrum é um método ágil empírico, iterativo com entregas incrementais. Empírico porque apoia-se no empirismo que afirma que o conhecimento vem da experiência e de tomada de decisões baseadas no que é conhecido. O Scrum emprega uma abordagem iterativa e incremental para aperfeiçoar a previsibilidade e o controle de riscos

SCRUM Scrum é baseado em um artigo de 1986 escrito por Hirotaka Takeuchi e Ikujiro Nonaka para a Harvard Business Review, o "The Game Development New New Product".

SCRUM Jeff Sutherland, Ken Schwaber e Mike Beedle aderiram às ideias deste artigo, incluindo a m e t á f o r a, e a p l i c o u - a s n a á r e a d e desenvolvimento de software. Eles chamaram seu novo método de Scrum.

Os PILARES DO SCRUM Transparência: Todo o processo deve estar visível a todos os envolvidos. Essa transparência deve ser refletida no ambiente, nas pessoas e nos processos. Inspeção: O processo em si deve ser inspecionado regularmente na busca por anomalias e/ou oportunidades de melhorias.

Os PILARES DO SCRUM Adaptação: Caso a inspeção detecte algum processo que precise ser ajustado ou melhorado, as adaptações deverão ser feitas o mais rápido possível. O quanto antes as mudanças forem feitas, o novo processo proposto é testado e validado.

SCRUM No Scrum temos oportunidades constantes de verificar os 3 pilares (Transparência, Inspeção e Adaptação), e essas oportunidades estão nos eventos da Reunião de Planejamento, Scrum Diário, Reunião de Revisão do Sprint e Reunião de Retrospectiva do Sprint.

SCRUM

SCRUM Scrum é um framework (incompleto) para suportar o desenvolvimento e manutenção de projetos/produtos complexos. É incompleto, pois, na verdade, ele simplesmente fornece uma estrutura para entrega, mas não diz como fazer práticas específicas, deixando isso para a equipe determinar.

SCRUM O projeto começa com uma visão clara oferecida pelo negócio, e um conjunto de características do produto em ordem de importância. Esses recursos fazem parte da carteira de produtos, que é mantida pelo cliente ou representante do cliente referido como o Product Owner. Uma caixa de tempo comumente referida como uma iteração ou Sprint é a quantidade de tempo que a equipe tem para concluir as características selecionadas.

SCRUM DICAS O tamanho do Sprint é influenciado (ou pode ser alterado) dependendo do escopo, tamanho do time, disponibilidade do cliente, conhecimento do time sobre agilidade, conhecimento do time sobre a tecnologia, mudanças na formação do time. Porém, sempre que um novo tamanho é definido, as métricas de produtividade deverão ser refeitas. Uma vez que o time se comprometeu com um Sprint backlog, o trabalho começa.

SCRUM DICAS A regra do scrum não permite que o Sprint Backlog seja alterada, porém, se o item que está em desenvolvimento perde o objetivo de negócio, isto é, não agrega mais valor, não faz sentido continuar a ser desenvolvido, e deve ser interrompido. Geralmente o tempo restante do Sprint pode ser dedicado à refatoração de códigos existentes ou pode se iniciar um novo Sprint, mas são casos de exceção.

Dúvidas? Obrigado! juliocesar@eloquium.com.br