Universidade Federal de Pernambuco Centro de Informática
61 Slides326.00 KB
Universidade Federal de Pernambuco Centro de Informática Gerenciamento Ágil de Projetos Luciana de Queiroz Leal ([email protected]) Junho/2008
Agenda Motivação Mudança de Paradigma Gerenciamento Ágil de Projetos de Software – – – – Técnicas Problemas Críticas Abordagem Tradicional vs. Abordagem Ágil Scrum Considerações Finais Referências Luciana Leal 2 / 61
Motivação
Gerenciamento de Projetos Orientado a processos – Processos bem definidos devem ser impostos para garantir a qualidade do produto Rígido – Pressupõe que é possível especificar de antemão todos os requisitos do projeto Preditivo – Cada etapa de desenvolvimento é baseada na etapa anterior, parte do principio de que requisitos são estáveis Burocrático – Sobrecarrega desenvolvimento, pode comprometer a velocidade do projeto Possui forte resistência a mudanças Luciana Leal 4 / 61
Gerenciamento de Projetos de Software Particularidades – Invisibilidade Progresso não é imediatamente visível – Complexidade – Flexibilidade Propenso a um alto grau de mudança – Dificuldade de antever suas funcionalidades – Necessidades surgem durante seu desenvolvimento, e vão amadurecendo até a sua implantação A mudança se torna inevitável Luciana Leal 5 / 61
O que é agilidade? Agilidade – Rapidez, desembaraço – Qualidade de quem é veloz Capacidade de responder rapidamente a mudanças – Mudanças de tecnologias, de equipe, de requisitos. Entregar valor ao cliente quando se lida com imprevisibilidade e dinamismo dos projetos Problema – Aparenta ser indisciplinado Luciana Leal 6 / 61
Manifesto Ágil Estamos descobrindo melhores formas de desenvolver software através da nossa própria prática e auxiliando outros. Valores Indivíduos e Iterações Software funcionando Colaboração com cliente Responder a mudanças Processos e Ferramentas Documentação detalhada Negociação de contratos Seguir um plano Luciana Leal 7 / 61
Princípios da agilidade 1. A mais alta prioridade é a satisfação do cliente, por meio da liberação mais rápida e contínua de software de valor. 2. Receba bem as mudanças de requisitos, mesmo em estágios tardios do desenvolvimento. Processos ágeis devem admitir mudanças que trazem vantagens competitivas para o cliente. 3. Libere software freqüentemente (em intervalos de 2 semanas até meses), dando preferência para uma escala de tempo mais curta. 4. Mantenha pessoas ligadas ao negócio (clientes) e desenvolvedores trabalhando juntos a maior parte do tempo do projeto. Luciana Leal 8 / 61
Princípios da agilidade 5. Construa projetos com indivíduos motivados, dê a eles o ambiente e suporte que precisam e confie neles para ter o trabalho realizado. 6. O método mais eficiente e efetivo para repassar informação entre uma equipe de desenvolvimento é pela comunicação face-a-face. 7. Software funcionando é a principal medida de progresso de um projeto de software 8. Processos ágeis promovem desenvolvimento sustentado. Assim, patrocinadores, desenvolvedores e usuários devem ser capazes de manter conversação pacífica indefinidamente. Luciana Leal 9 / 61
Princípios da agilidade 9. A atenção contínua para a excelência técnica e um bom projeto (design) aprimoram a agilidade. 10. Simplicidade - a arte de maximizar a quantidade de trabalho não feito – é essencial, devendo ser assumida em todos os aspectos do projeto. 11. As melhores arquiteturas, requisitos e projetos emergem de equipes auto-organizadas. 12. Em intervalos regulares, as equipes devem refletir sobre como se tornarem mais efetivas, e então refinarem e ajustarem seu comportamento de acordo. Luciana Leal 10 / 61
Signatários do Manifesto Kent Beck Jon KernBrian Marick Mike Beedle Robert C. Martin Arie van Bennekum Steve Mellor Alistair Cockburn Ken Schwaber Ward Cunningham Jeff Sutherland Martin Fowler Dave Thomas James Grenning Andrew Hunt Jim Highsmith Scott Ambler Ron Jeffries Luciana Leal 11 / 61
Declaração de Interdependência Abordagens ágeis e adaptativas para permitir ligar pessoas, projetos e valor “Somos uma comunidade de líderes de projeto que é altamente eficaz entregando resultados.” Luciana Leal 12 / 61
O que significa interdependência? Que membros de uma equipe de projeto são parte interdependente do tudo e não um grupo de indivíduos desconectados. – Dependem reciprocamente uns dos outros Que equipes de projeto, seus clientes, seus interessados (stakeholders) também são interdependentes. Equipes de projeto que não reconhecem esta interdependência raramente tem sucesso. Luciana Leal 13 / 61
Declaração de Interdependência Para atingir os resultados: – Entregamos resultados confiáveis engajando clientes em iterações freqüentes e propriedade compartilhada. – Esperamos incerteza e a gerenciamos através de iterações, antecipação e adaptação. – Despertamos a criatividade e a inovação através do reconhecimento que indivíduos são a fonte ultima de valor, e criando um ambiente no qual eles possam fazer diferença. Luciana Leal 14 / 61
Declaração de Interdependência Para atingir os resultados: – Impulsionamos desempenho através de cobrança do grupo por resultados e responsabilidade compartilhada pela efetividade da equipe. – Melhoramos efetividade e a confiabilidade através de estratégias, processos e praticas especificas dependendo da situação. Luciana Leal 15 / 61
Signatários da Declaração David Anderson Ole Jepsen Sanjiv Augustine Lowell Lindstrom Christopher Avery Todd Little Alistair Cockburn Kent McDonald Mike Cohn Pollyanna Pixton Doug DeCarlo Preston Smith Donna Fitzgerald Robert Wysocki Jim Highsmith Luciana Leal 16 / 61
Mudança de paradigma
Gerenciamento de Projetos Projetos gerenciados através de – Especificação detalhada dos requisitos Auxilia no planejamento O sistema construído atende a necessidade do cliente? – Abordagem BRUF Big Requirements Up Front (Grandes requisitos primeiro) Algumas funcionalidades raramente utilizadas Luciana Leal 18 / 61
Gerenciamento de Projetos Implicações da abordagem BRUF – Criar um plano de projeto precocemente detalhado no ciclo de vida – Criar precocemente estimativas precisas para o projeto – Usar o processo de mudanças preventivamente Luciana Leal 19 / 61
Quebra de paradigma Clássico Ágil Escopo Qualidade Escopo Qualidade Prazo Custo Prazo Custo Luciana Leal 20 / 61
Gerenciamento Ágil de Projetos de Software
Gerenciamento Ágil de Projetos Um conjunto de valores, princípios e práticas que auxiliam a equipe de projeto a entregar produtos ou serviços de valor em um ambiente complexo, instável e desafiador É o exercício de princípios e práticas ágeis aliados aos conhecimentos, habilidades e técnicas na elaboração das atividades de projeto, de forma a diminuir o time-to-market, e se adequar às mudanças durante o projeto. Objetivo – Garantir que exista um equilíbrio entre demandas de qualidade, escopo, tempo e custos Luciana Leal 22 / 61
Gerenciamento Ágil de Projetos Valores centrais – As respostas às mudanças são mais importantes que o segmento de um plano – A entrega de produtos está acima da entrega de documentação – Priorização da colaboração do cliente sobre a negociação de contratos – Os indivíduos e suas interações são mais importantes que os processos e ferramentas Luciana Leal 23 / 61
Gerenciamento Ágil de Projetos Principais objetivos – Inovação contínua: a idéia de inovação é associada a um ambiente cuja cultura estimule o auto-gerenciamento e a autodisciplina – Adaptabilidade do produto: os produtos adaptáveis às novas necessidades do futuro – Tempos de entrega reduzidos: direcionamento preciso e capacidade técnica da equipe – Capacidade de adaptação do processo e das pessoas: equipe confortável com mudanças, processo leve – Resultados confiáveis: entrega de produtos que garantam operação, crescimento e lucratividade da empresa Luciana Leal 24 / 61
Técnicas de Gerenciamento Ágil de Projetos Foque nas pessoas – As pessoas e a maneira como interagem são determinantes mais importantes para o sucesso de um projeto Organize seu projeto em iterações – Curtos períodos de tempo onde ao seu final chega-se a um objetivo específico Estabeleça marco de entrega final somente se for realmente necessário Luciana Leal 25 / 61
Técnicas de Gerenciamento Ágil de Projetos Tenha um plano de projeto de alto nível – Principais dependências externas, iterações planejadas e uma estimativa de término (se possível) Crie planos de iteração detalhados com base no JIT (Just In Time) – Você só pode planejar precisamente com algumas semanas de antecedência da realização Envolva todos da equipe no planejamento – Planejar as próprias atividades Luciana Leal 26 / 61
Técnicas de Gerenciamento Ágil de Projetos As pessoas deveriam escolher seu trabalho ao invés de serem mandadas para fazê-lo – Organizar o próprio trabalho Faça estimativa de coisas pequenas – É mais fácil fazer a estimativa de um trabalho que levará apenas um dia do que estimar algo que levará um mês. As pessoas deveriam estimar seu próprio trabalho – As melhores estimativas vêm de baixo para cima e não de cima para baixo Luciana Leal 27 / 61
Gerenciamento Ágil de Projetos Ambientes onde pode apresentar problemas – – – – Cultura da documentação Dificuldade para aceitar mudanças Demora para obtenção da realimentação Resistência cultural Luciana Leal 28 / 61
Gerenciamento Ágil de Projetos Críticas – – – – – Dificuldade de manutenção pela falta de documentação Efetividade da programação em pares: custo x benefício Dificuldade de se ter o cliente no local Dificuldade de estabelecer contrato com escopo variável Requer colaboração e confiança entre equipe e cliente Luciana Leal 29 / 61
Abordagem Clássica vs. Abordagem Ágil Clássica Ágil Desenvolvedor hábil ágil Cliente pouco envolvido comprometido Requisitos conhecidos, estáveis emergentes, mutáveis Retrabalho caro barato Planejamento direciona resultados resultados o direcionam Foco Objetivo grandes projetos projetos de natureza exploratória e inovadores controlar, em busca de alcançar o planejado simplificar processo de desenvolvimento Luciana Leal 30 / 61
Abordagem Clássica vs. Abordagem Ágil Ciclo de vida ágil é semelhante ao clássico – – – – Define o que o cliente quer e inicia o projeto Planeja o projeto, calculando o esforço Executa o plano, construindo a solução Monitora resultados e entrega ao cliente Luciana Leal 31 / 61
Scrum
Scrum Uma alternativa de utilizar métodos ágeis na gerência de projetos Pode ser aplicável a qualquer tipo de projeto É simples – Processo, artefatos e regras são poucos e fáceis de entender – A simplicidade pode ser decepcionante aos acostumados com metodologias clássicas Luciana Leal 33 / 61
Scrum Não é um método prescritivo – Não define previamente o que deve ser feito em cada situação – Projetos complexos não permitem prever todos os eventos Define um framework e um conjunto de práticas Aplica o senso comum – Combinação de experiência, treinamento, confiança e inteligência de toda a equipe – Senso comum em vez do senso de uma única pessoa é uma das razões do sucesso do Scrum Luciana Leal 34 / 61
Fases Planejamento Sprints – Reuniões Diárias – Revisão – Retrospectivas Encerramento Luciana Leal 35 / 61
Planejamento Relativamente curto Projeto da arquitetura do sistema Estimativas de datas e custos Criação do backlog Backlog – Participação de clientes e outros departamentos Levantamento dos requisitos e atribuição de prioridades Definição de equipes e seus líderes Definição de pacotes a serem desenvolvidos Luciana Leal 36 / 61
Sprint O time recebe uma parte do backlog para desenvolvimento – O backlog não sofrerá modificações durante o Sprint Duração de 1 a 4 semanas Sempre apresentam um executável ao final Luciana Leal 37 / 61
Sprint - Reuniões Diárias Cerca de 15 minutos de duração Todos respondem às perguntas: – O que você realizou desde a última reunião? – Quais problemas você enfrentou? – Em que você trabalhará até a próxima reunião? Benefícios: – Maior integração entre os membros da equipe – Rápida solução de problemas Promovem o compartilhamento de conhecimento – Progresso medido continuamente Minimização de riscos Luciana Leal 38 / 61
Sprint - Revisão Deve obedecer à data de entrega – Permitida a diminuição de funcionalidades Apresentação do produto ao cliente – Sugestões de mudanças são incorporadas ao backlog Benefícios: – Apresentar resultados concretos ao cliente – Integrar e testar uma boa parte do software – Motivação da equipe Luciana Leal Nova funcionalida de 39 / 61
Encerramento Finalização do projeto Atividades: – – – – – Testes de integração Testes de sistema Documentação do usuário Preparação de material de treinamento Preparação de material de marketing Luciana Leal 40 / 61
Papéis no Scrum Todas as responsabilidades de gerenciamento são divididas entre três papéis: – Product Owner – Scrum Master – Time Para o bom funcionamento do Scrum as pessoas responsáveis pelo projeto devem ter autoridade para fazer o que for necessário pelo seu sucesso Pessoas não responsáveis não podem interferir no projeto – Gera aumento de produtividade – Evita situações constrangedoras para os envolvidos Luciana Leal 41 / 61
Papéis – Product Owner Responsável por apresentar os interesses de todos os stakeholders Define fundamentos iniciais do projeto, objetivos e planos de release Responsável pela lista de requisitos (Product Backlog) Certifica se as atividades com maior valor para o negócio são desenvolvidas primeiro – Priorização freqüente das funcionalidades antes de cada iteração Luciana Leal 42 / 61
Papéis – Scrum Master Responsável pelo sucesso do Scrum Ensina o Scrum para os envolvidos com o projeto Implementa o Scrum na empresa de forma adaptada a sua cultura, para continuamente gerar benefícios Certifica se cada pessoa envolvida está seguindo seus papéis e as regras do Scrum Certifica que pessoas não responsáveis não interfiram no processo Luciana Leal 43 / 61
Papéis – Time Responsável por escolher as funcionalidades a serem desenvolvidas em cada interação e desenvolvê-las O time se auto-gerencia, se auto-organiza Todos os membros do time são coletivamente responsáveis pelo sucesso de cada iteração Luciana Leal 44 / 61
Regras no Scrum O ScrumMaster deve se certificar de que cada envolvido no projeto siga suas regras As regras permitem a execução correta do Scrum Mudanças das regras devem se originar do time – O ScrumMaster deve ser convencido de que todos envolvidos entenderam suficientemente as regras do Scrum para o correto discernimento – Discussões desnecessárias são perda de tempo de produção da equipe Luciana Leal 45 / 61
Sprint Planning Meeting A reunião de planejamento do Sprint deve ocorrer dentro de 8 horas com duas partes de 4 horas Primeiro seguimento: – Product Owner deve preparar o Product Backlog antes da reunião – Seleção dos itens do Product Backlog que o time se compromete em torná-los incrementos potencialmente implementáveis – Decisão final é do Product Owner – Stakeholders não devem participar Luciana Leal 46 / 61
Sprint Planning Meeting Segundo seguimento: – Ocorre imediatamente após o primeiro – Product Owner deve estar disponível para o que o time faça perguntas sobre o Product Backlog – O time deve decidir sozinho como os itens selecionados serão implementados – Nenhum outro participante pode fazer perguntas ou observações nesta parte – Resultado deste seguimento é o Sprint Backlog Luciana Leal 47 / 61
Scrum Daily Meeting Reunião de no máximo 15 minutos, a menos que o time seja grande o suficiente para precisar de mais tempo Deve ser feita no mesmo lugar onde o time trabalha Resulta em melhores resultados se realizada no inicio do dia de trabalho Todos os membros do time devem participar desta reunião Luciana Leal 48 / 61
Scrum Daily Meeting ScrumMaster faz as seguintes perguntas para cada membro do time: – O que você fez desde a última reunião diária do Scrum relacionada a este projeto? – O que você irá fazer desde agora até a próxima reunião diária do Scrum relacionada a este projeto? – O que está impedindo você de realizar o seu trabalho o mais efetivamente possível? Os membros devem responder apenas a estas perguntas para não estender a reunião Luciana Leal 49 / 61
Sprint Não deve ser maior do que 30 dias consecutivos Sem considerar outros fatores, este é o tempo necessário para produzir algo de interesse para o Product Owner e os stakeholders O time se compromete com o Product Backlog – Não são permitidas modificações nele durante o Sprint Luciana Leal 50 / 61
Sprint Responsabilidades do time durante o Sprint: – Participar das reuniões diárias do Scrum – Manter o Sprint Backlog atualizado – Disponibilizar o Sprint Backlog publicamente O time tem o compromisso de implementar todos os itens selecionados Luciana Leal 51 / 61
Reunião de Revisão do Sprint Reunião de no máximo 4 horas sob responsabilidade do ScrumMaster O time não deve gastar mais de 1 hora na preparação desta reunião Objetivo: – Mostrar ao Product Owner e stakeholders as funcionalidades que foram feitas Artefatos não devem ser apresentados, pois não são funcionalidades No final da reunião – Cada stakeholder fala suas impressões e sugere mudanças com suas respectivas prioridades – Possíveis modificações no Product Backlog são discutidas entre o Product Owner e o time – ScrumMaster anuncia a data e o local da próxima reunião de revisão do Sprint ao Product Owner e a todos stakeholders Luciana Leal 52 / 61
Reunião de Retrospectiva do Sprint Não deve ser maior do que 3 horas Participam desta reunião – Time, ScrumMaster e, opcionalmente, Product Owner Os membros do time devem responder a duas questões: – O que aconteceu de bom durante o último Sprint? – O que pode ser melhorado para o próximo Sprint? ScrumMaster escreve as respostas e prioriza na ordem que deseja discutir as potenciais melhorias ScrumMaster nesta reunião tem o papel de fazer com que o time encontre melhores formas de aplicar o Scrum Luciana Leal 53 / 61
Considerações
Reflexão Qual a melhor abordagem de gerenciamento para o desenvolvimento de software conduzido por metodologias ágeis? Grandes projetos podem ser gerenciados de forma ágil? – Como é possível? – É confiável? Gerenciamento ágil para qualquer tipo de projeto – Construção de edifícios, aviões, robôs Como é possível? Luciana Leal 55 / 61
Considerações Finais Manifesto ágil – Pares de alternativas se reforçam Processos e ferramentas podem melhor capacitar os indivíduos e interações Documentação ajuda as pessoas a entenderem um software complexo Negociação de contrato pode ser parte integrante da colaboração do cliente Seguir um plano pode ser o melhor modo para responder a mudança, quando esta for previsível Luciana Leal 56 / 61
Considerações Finais Abordagens possuem pontos positivos e negativos – Partem de pressupostos diferentes – Podem coexistir e conviver bem em um mesmo ambiente Considerar criteriosamente o ambiente correto – Necessário buscar o ponto de equilíbrio, avaliando riscos Planejamento aperfeiçoa a agilidade Agilidade dá eficiência ao planejamento Luciana Leal 57 / 61
Considerações Finais Projetos complexos e com restrições de tempo necessitam de uma nova abordagem Scrum é uma boa solução – É eficiente quando as regras e os papéis são bem seguidos – Apesar da sua simplicidade, as pessoas costumam não aceitar facilmente a nova abordagem – Há diversos casos de sucesso Deve-se considerar as condições da equipe e as características dos projetos antes de uma migração Luciana Leal 58 / 61
Referências AMBLER, S. Gerenciamento ágil de projetos: Colocando o desenvolvimento de software em ordem. Mundo PM. out/nov 2006 ANDERSON, D. J. Agile management for software engineering: Applying the theory of constraints for business results. New Jersey: Prentice Hall, 2003. 336p. AUGUSTINE, S. Managing agile projects. Prentice Hall, 2005. 264p. AUGUSTINE, S.; PAYNE, B.; SENCINDIVER, F.; WOODCOCK, S. Agile project management: Steering from the edges. Communications of the ACM, v. 48, dez. 2005. p. 85-89. BECK, K. 2001. AGILE ALLIANCE. Manifesto for agile software development. Disponível em http://www.agilemanifesto.org/ . Acesso em 29 nov. 2006. CHIN, G. Agile project management: how to succeed in the face of changing project requirements. New York: Amacon, 2004. 229 p. DECARLO, D. Extreme project management: Using leadership, principles, and tools to deliver value in the face of volatility. California: Jossey-Bass, 2004. 560p. Luciana Leal 59 / 61
Referências DECLARATION OF INTERDEPENDENCE. 2001. Declaration of interdependence. Disponível em http://pmdoi.org/ . Acesso em 29 nov. 2006. GRIFFITHS, M. Using agile alongside the PMBOK. PMI Global Congress Proceedings, 2004. HIGHSMITH, J. Agile project management: creating innovative products. Boston: Addison-Wesley, 2004. 312 p . KERZNER, H. Project Management: A Systems Approach to Planning, Scheduling, and Controlling. New Jersey: John Wiley & Sons, 2003. 912p. PROJECT MANAGEMENT INSTITUTE – PMI. PMBOK Guide: Um guia do conjunto de conhecimentos do gerenciamento de projetos. Pennsylvania: Project Management Institute, 3. ed., 2004. SCHWABER, K. Agile Project Management with Scrum. Microsoft Press, 2004. MAGALHÃES, A. O gerenciamento de projetos desenvolvidos à luz das metodologias ágeis. PMI-MG jun/2006. Disponível em http://www.pmimg.org.br/downloads/Palestra-GerenciamentoAgil.pdf . Acesso em 29 nov. 2006 Luciana Leal 60 / 61
Universidade Federal de Pernambuco Centro de Informática Gerenciamento Ágil de Projetos Obrigada! Luciana de Queiroz Leal ([email protected]) Junho/2008