Métodos Ágeis de Gerência de Software



Documentos relacionados
Desenvolvimento Ágil com XP e Scrum. Guilherme Chapiewski guilherme.chapiewski@gmail.com

2012. Quinta Conferência de Qualidade de Software ASR Consultoria

REVIEW. O ápice no ciclo do SCRUM. Rodrigo de Toledo (Cenpes, Petrobras) (How to fulfill PO s s Expectations) Maio 2009

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

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

Daniel Wildt

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

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

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

Gerenciamento de Equipes com Scrum

Um pouco de história

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

Manifesto Ágil - Princípios

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

Quais são as características de um projeto?

Retrospectivas e Scrum

INTRODUÇÃO A PROJETOS

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

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

Wesley Torres Galindo.

Alexandre Lima Guilherme Melo Joeldson Costa Marcelo Guedes

Wesley Torres Galindo

1º SEMESTRE DE 2011 Prof. Msc. Hilmer Rodrigues Neri

Com metodologias de desenvolvimento

Uma introdução ao SCRUM

development Teresa Maciel DEINFO/UFRPE

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

Gestão de Projetos com Scrum

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro

Desenvolvimento Ágil de Software

Metodologias Ágeis. Aécio Costa

Desenvolvimento Ágil sob a Perspectiva de um ScrumMaster

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

ScRUM na prática. Scrum no dia-a-dia. V Semana de Tecnologia da Informação

Os Desafios da Segurança no Desenvolvimento com Métodos Ágeis. OWASP Education Project. The OWASP Foundation

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

ágeis para projetos desenvolvidos por fábrica de software

Metodologias Ágeis para Desenvolvimento de Software

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

Objetivos do Módulo 3

METODOLOGIA ÁGIL. Lílian Simão Oliveira

Métodos Ágeis de Desenvolvimento de Software

Scrum e CMMI no C.E.S.A.R Relato de Experiência

Scrum. Gestão ágil de projetos

Métodos Ágeis e Gestão de Dados Moderna

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

SCRUM Discussão e reflexão sobre Agilidade. Fernando Wanderley

Desafios no Uso do Scrum em Ambientes CMMI

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

Aplicando Scrum no. Vítor E. Silva Souza

Agilidade parte 3/3 - Scrum. Prof. Dr. Luís Fernando Fortes Garcia luis@garcia.pro.br

SCRUM. Aula de Luiz Eduardo Guarino de Vasconcelos

METODOLOGIAS ÁGEIS - SCRUM -

Frederico Aranha, Instrutor. Scrum 100 Lero Lero. Um curso objetivo!

Ferramenta para gestão ágil

O Guia Passo-a-Passo para IMPLANTAR. Em seu próprio Projeto

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

SCRUM. Fabrício Sousa

Caso Prático: Java como ferramenta de suporte a um ambiente realmente colaborativo no método Scrum de trabalho

Scrum How it works. Há quatro grupos com papéis bem definidos:

Universidade Estadual de Campinas UNICAMP Faculdade de Tecnologia FT. Métodos Ágeis. Paula L.O. Libardi, Vladimir Barbosa

Francielle Santos

Desmistificando Agile & Scrum Desenvolvimento de Software Sem Stress. Teamware do Brasil 2009

Processo de Desenvolvimento de Software Scrum. Prof. Antonio Almeida de Barros Jr.

Estudo sobre Desenvolvimento de Software Utilizando o Framework Ágil Scrum

Gestão Ágil de Projetos e a certificação PMI-ACP

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

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP

Proposta. Treinamento Scrum Master Gerenciamento Ágil de Projetos. Apresentação Executiva

Desenvolvimento Ágil 1

Comparativo entre Processos Ágeis. Daniel Ferreira

RESUMO PARA O EXAME PSM I

Agradecimento. Adaptação do curso Scrum de Márcio Sete, ChallengeIT. Adaptação do curso The Zen of Scrum de Alexandre Magno, AdaptaWorks

Promoção especial para o III Congresso Cearense de Gerenciamento Certified ScrumMaster, Certified Scrum Product Owner e Management 3.

PGP - Aula T 4 Modelos Ágeis

Engenharia de Software

Scrum Uma breve apresentação. Alfredo Goldman Dairton Bassi

SCRUM. Ricardo Coelho

Aluna: Vanessa de Mello Orientador: Everaldo Artur Grahl

Metodologia de Trabalho

ANEXO 07 CICLO DE DESENVOLVIMENTO ÁGIL PROCERGS

Tecnologias Atuais de. Desenvolvimento de Software

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

PROJETO CEMEA. Um trabalho educacional

Desenvolvimento Ágil de Software em Larga Escala

Uma introdução ao SCRUM

Métodos Ágeis de Gerência de Desenvolvimento de Software

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

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

Por que o Scrum? o Foco na Gerência de Projetos; o Participação efetiva do Cliente.

SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO

ELABORAÇÃO DE UM PRODUCT BACKLOG EFETIVO

ENGENHARIA DE SOFTWARE I

Agenda. Visão Revolução Ágil EduScrum Visão Geral do Método Benefícios Projeto Scrum for Education Sinergias

Engenharia de Software I

Workshop SCRUM. Versão 5 Out 2010 RFS. rildo.santos@etecnologia.com.br

Curso Certified ScrumMaster (CSM)

RESUMO: APRESENTAÇÃO DOS RESULTADOS DO ESTUDO DE CASO:

Transcrição:

Métodos Ágeis de Gerência de Software Rodrigo de Toledo (CSM) 10 maio 2008 (Formação)

Plano Introdução: Motivação Histórico Princípios Scrum: Scrum flow Personagens, artefatos e meetings Prática: Velocity, Sprint, Review Aplicações, mitos e restrições Conclusão: Metodologias ágeis no mundo Scrum e CMMI Metodologias ágeis na Petrobras Hoje, a curto prazo e a longo prazo

Introdução

Motivação Métodos Ágeis Metodologias apropriadas a essa nova ciência: a engenharia de software O que tem de tão interessante: Processos iterativos, people-oriented, Cross-functional teams, inspeção/adaptação, Alta produtividade (4 a 10 vezes maior) Satisfação de todos: clientes, usuários, gerentes e desenvolvedores

Motivação Métodos Ágeis Mudanças de paradigma

Termos Métodos Ágeis: se contrapõem às metodologias de engenharia clássica, geralmente aplicados ao desenvolvimento de software. Ex: XP, Scrum, Crystal, Lean (RUP?)... Iteração: Etapas curtas (2 a 4 semanas) de planejamento/desenvolvimento. O processo iterativo se contrapõem ao processo em cascata. Adaptação: Passa a ser a verdadeira opção à natureza imprevisível do desenvolvimento de software. Troca-se o par planejamento/controle por inspeção/adaptação. Self-organization: As pessoas são responsáveis pelo seu próprio trabalho. (people-oriented x process-oriented) Time-box: Todas as etapas devem estar contidas no seu tempo e isso é mais importante que a completude do escopo.

Motivação - Caos Desenvolvimento caótico Code and fix ou Quick and dirty Um cara só faz tudo - generalista Imprevisível Pode funcionar para aplicações pequenas Pontos negativos: Dono do código Baixo reuso Dificuldade para manutenção...

Motivação - Engenharia Metodologias de engenharias Eng. de sw é muito nova comparada com as demais Por que não usar outras metodologias clássicas? Eng. Civil, mecânica, aeronáutica... Planejamento Implementação Linha de montagem Cada etapa tem um responsável diferente - especialistas Benefícios: Gerenciamento facilitado (pessoas são peças) Reuso possível Mais formalidade no relacionamento com o cliente

Motivação - Engenharia Metodologias de engenharias Questionamentos: Esforço no planejamento é muito maior que nas outras engenharias É previsível? Desenvolvimento de sw é considerado a atividade mais complexa do ser humano. Pontos negativos: Software não é prédio Perda de flexibilidade Falsas verdades

Motivação - Engenharia Construir software NÃO É igual a construir prédio Metáforas são perigosas (mas quase inevitáveis) Nosso peão é um arquiteto (criativo, artista) Desde a primeira prova de programação Peão feliz/infeliz (muro/igreja) Se derrubar uma parede errada, basta fazer um ctrl+z Falta um tijolo no prédio falta um ; no código Não estamos presos a leis físicas (e.g., gravidade) Mudanças tecnológicas maiores em impacto e freqüência.

Motivação - Engenharia Perda de Flexibilidade Mudanças externas constantes Decorrentes da imprecisão dos requisitos Falha de quem está levantando Incapacidade do cliente em detalhar (ex: construção customizada de um carro) Frase comum: o problema deste projeto é que os requisitos vivem mudando Decorrentes das mudanças do negócio

Motivação - Engenharia Perda de Flexibilidade (Jeff Sutherland et al. 08) Ziv s Uncertainty Principle: Uncertainty is inherent and inevitable in software development processes and products Humphrey s Requirements Uncertainty Principle: For a new software system the requirements will not be completely known until after the users have used it. Wegner s Lemma: It is not possible to completely specify an interactive system

Motivação - Engenharia Mitos sobre as metodologias de engenharia: Esforço maior apenas no início do projeto Pessoas são apenas peças do processo Quanto mais informação escrita melhor Previsibilidade Processos criativos não são fáceis de planejar ((A engenharia de software é ao mesmo tempo uma ciência precisa/matemática e um exercício criativo/humano)) Pior ainda: Fingir que é previsível Documentos que não são lidos Documentos para descrever como algo será feito escritos depois desse algo feito Fim do projeto! Bom projeto tem fim? O que é um produto de sucesso? No prazo, no custo e de acordo com o plano Não Maior Business Value

Video

Histórico Métodos Ágeis Anos 80 (qualidade) Nonaka e Takeuchi: Toyota, Xerox, 3M, Fujifilm... Knowledge Management Papers: The New New Product Development Game, 1986 The knowledge-creating company Algumas histórias ou lendas: Força tarefa japonesa Grupo de consultoria (Toyota consulting) Qualidade começou anos 70 com americano SmallTalk (Xerox, 1980) OO, metaclasses, dev. environment, virtual machine (1983), unit test

Histórico Métodos Ágeis Anos 90 (Eng.Sw.) XP (Kent Beck e Ron Jeffries, ~97) 5 valores, 14 princípios, 24 práticas Outra lenda: Kent Beck desafia QA s (GQS) em 2001 TDD Scrum (Jeff Sutherland, Ken Schwaber, Mike Beedle 93~95~99) Mais gerencial que XP Crystal (Alistair Cockburn) Coleção de métodos Mais flexível que XP Lean (from manufacturing)

Histórico Métodos Ágeis Anos 2000 Grande divulgação Diversos exemplos de uso 2001 Agile Manifesto Agile Alliance Últimos anos Google, Yahoo, Borland, Sega (todas as grandes empresas de jogos), MS

Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Kent Beck James Grenning Robert C. Martin Mike Beedle Jim Highsmith Steve Mellor Arie van Bennekum Andrew Hunt Ken Schwaber Alistair Cockburn Ron Jeffries Jeff Sutherland Ward Cunningham Jon Kern Dave Thomas Martin Fowler Brian Marick

Principles behind the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from selforganizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Video Mr. Walter Falls and A. Giles

About SCRUM Sprint Done Product Backlog Selected Backlog Visibility Story Points Sprint Backlog Stand-up Meeting Retrospectives Burn-down Chart Task Board Product Owner Planning POKER Scrum Master Time Box Team

SCRUM

Scrum Metaprocesso (framework) Metodologia que diz que metodologias não são tão importantes Adaptável 1ª regra: as regras podem ser alteradas* Promete alta qualidade software robusto Promete alta produtividade 4 a 10 vezes mais produtivo Mais business value ou valor agregado * Existem algumas pré-condições

Scrum Primeiros Conceitos Sprint: iteração período de 2 a 4 semanas de trabalho da equipe Daily sprint: 1 dia de trabalho da equipe Product backlog: Lista de requisitos em formato user-story Ordenada por prioridade Selected backlog: Lista de tarefas a serem realizadas durante a sprint Baseada nas maiores prioridades do product backlog De acordo com a capacidade da equipe em uma sprint

Scrum

Scrum - Personagens

Scrum - Personagens Apenas três Não tem relação direta com cargos e hierarquias Product Owner Time Scrum Master

Scrum - Personagens Product Owner Fornece a visão do negócio Mantém os itens do product backlog atualizados e priorizados A cada início de sprint auxilia a elaborar o selected backlog Maximiza ROI ("valor agregado") Aceita ou rejeita o que foi produzido Alta participação em início e fim de sprints Disponível para esclarecer dúvidas

Scrum - Personagens Scrum Master Facilitador Não tem autoridade Conduz reuniões e eventos Mantém o Scrum funcionando Remove empecilhos e obstáculos Presta serviço ao time Protege o time Ajuda o time nas suas tarefas Ajuda o product owner nas suas tarefas

Scrum - Personagens Time Multidisciplinar sem papéis específicos Auto-gerenciado de 5 a 9 pessoas Comprometido com o objetivo e consigo mesmo esforçado, pontual etc. Autoridade para fazer o que for necessário para atingir o objetivo Comunicação constante transparência e diálogo

Scrum - Comprometimento Comprometimento x Envolvimento Porcos e galinhas Às vezes somos porcos, às vezes galinhas

Scrum - Princípios

Scrum - Princípios Processo iterativo e incremental (1/6) Modelo Tradicional NA TEORIA Modelo Ágil NA PRÁTICA

Scrum - Princípios Processo iterativo e incremental (1/6) Benefícios: confiabilidade do software antecipação de valor agregado aumento de confiança do cliente motivação do time Manifesto Ágil: devemos valorizar mais SOFTWARE FUNCIONAIS do que documentações extensas.

Scrum - Princípios Auto-organização (2/6) Acreditar na competência das pessoas O time tem capacidade de se autoorganizar Tarefas não devem ser atribuídas autoritariamente, mas voluntariamente pull tasks, not push atribuições ocorrem diariamente Manifesto Ágil: devemos valorizar mais INDIVÍDUOS e INTERAÇÕES que processos e ferramentas

Scrum - Princípios Comunicação (transparência) (3/6) Através de reuniões diárias a comunicação é feita pessoalmente Controles visuais Reuniões regulares de retrospectiva A cada mudança de sprint Verificação de obstáculos Melhora contínua Problemas vêem rapidamente a superfície group programming (collective code ownership) Resultado das atribuições diárias e Equipes cross-functional (especialista-generalista)

Scrum - Princípios Time-box (4/6) O tempo da sprint é mandatório (assim como qualidade) Qualidade Todos os meetings tem tempo fixo: Daily-meeting Sprint Planning Etc... Único que pode alterar Fixos custo/esforço Tempo Escopo

Scrum - Princípios Menos planejamento, mais ação (5/6) Retardar decisões Por causa da complexidade Não há conflito com: "não deixe para amanhã o que pode ser feito hoje" Um é ação e outro é planejamento Retardar uma decisão e retomá-la apenas no momento apropriado: cenário mais atualizado novas prioridades mais conhecimento sobre as condições Manifesto Ágil: devemos valorizar mais REAGIR A MUDANÇAS do que seguir um plano.

Scrum - Princípios Menos planejamento, mais ação (5/6) Mais código e menos documentação prévia Manifesto Ágil: devemos valorizar mais SOFTWARE FUNCIONAIS do que documentações extensas. REPETINDO Planejamento Fibonacci (1,1,2,3,5,8,13,21...) Escala progressiva Detalhes do planejamento devem ser inversamente proporcionais à distância no tempo Scrum tem 3 escalas: projeto, sprint, dia Não discutir muito o processo: Tentar primeiro e melhorar para a próxima sprint

Scrum - Princípios Cliente é um parceiro (6/6) Participação ao longo do projeto Acompanhamento mensal Disponibilidade para dúvidas Mudanças de requisitos são bem-vindas a qualquer momento Manifesto Ágil: devemos valorizar mais COLABORAÇÃO COM O CLIENTE do que negociação de contratos.

Scrum Phases Diferença entre estratégia e tática Já vimos: Product Backlog Selected Backlog Falta vermos: User story Story point Task e Sprint Backlog Task Board Burn-down Chart

Scrum Flow

Scrum - Artefatos

Scrum Artefatos User Story (backlog items) Product e Selected Backlogs são compostos por user stories. Campos: ID, Título (ou descrição sucinta) Valor Valor medido pelo product owner (business value) Não precisa ter valores absolutos, podem ser relativos Story points Descrição mais detalhada Suficiente para compreensão de time Pode ser uma descrição da interação com o usuário ou uma prévia da lista de tarefas Outros possíveis campos: Me <name>, as <user role>, would like to <feature>, so that <value> Sprint number How to demo

Scrum Artefatos Story Points Medida de esforço de implementação Associado a cada story Valores concretos ou relativos? Pode ser associado a uma referência concreta ex: Homem-dia de trabalho Pode ser simplesmente um valor relativo Ex: Escolhe-se a story mais simples e pontua com valor 2 Usa-se uma série adaptada de Fibonacci: 1, 2, 3, 5, 8, 13, 20, 40 e 100 Medida para determinar a VELOCITY da equipe

Scrum Artefatos Tasks Cada story deverá ser quebrada em tarefas Idealmente, tarefas correspondem a 1 dia de trabalho São a menor unidade de divisão Cada tarefa vira um Post-it As atribuições das tarefas às pessoas ocorre diariamente Sprint Backlog Conjunto de tasks de cada uma das stories da sprint corrente

Scrum Artefatos Task Board

Scrum Artefatos Task Board To do, doing, done Conceito de DONE Pode ter outras colunas, exemplos: commited reviewed Burn-down chart Outros conteúdos: Post-it chart Limbo Impediments Notícias Mesa retrátil

Scrum Artefatos Burn-down Chart São dois: Por sprint Produto completo Contagem de pontos Pontos parciais das stories Total de pontos da story

Scrum - Meetings

Scrum - Meetings São 6 diferentes meetings MEETINGS... Daily meetings Daily meetings Sprint i Sprint i +1 Estimation Review Retrospecitve Estimation Sprint Planning 2 Sprint Planning 1 Obs: São permitidos observadores externos (mas galinhas não tem voz)...

Scrum - Meetings Sprint Planning 1 Material: Product backlog atualizado, priorizado e estimado. Informações práticas sobre próximo sprint pessoas, tempo de sprint etc. Envolvidos: Product owner + time + scrum master Objetivo: Definir sprint backlog Procedimento: sprint backlog é preenchido com os itens de maior prioridade do product backlog até completar o número de story points correspondente a velocity do time. O product owner poderá então propor alterações para incluir, excluir e alterar o escopo das stories. Freqüência: todo início de sprint

Scrum - Meetings Sprint Planning 2 Material: Sprint backlog priorizado e detalhes do sprint (incluindo o objetivo). Informações práticas sobre próximo sprint (pessoas, tempo de sprint etc.). Envolvidos: Time + scrum master (+ product owner) Objetivo: Definir tarefas de cada story do sprint. Procedimento: Divisão das stories em tarefas de 1 dia, criando post-its para a coluna to do do VRSIVIEP:painel de tarefas. Lembrar que as tarefas devem incluir: Aprendizado de tecnologia desconhecida Programação Teste Code review Documentação Freqüência: todo início de sprint

Scrum - Meetings Planning Poker ou Estimation meeting Envolvidos: time Material: cartas do planning poker com os valores: 1 2 3 5 8 13 20 40 100 200. Procedimento: 1. Identificar no product backlog o item que o time julga ser o de menor esforço e pontuamos como 2. 2. A partir do product backlog fazemos um "pre-selected" backlog com os itens mais urgentes na visão do prod. owner, ou seja, Luciano+Ismael. Para cada item: 4. Lemos a story relativa ao item e verificamos se não há desentendimento. 5. Fazemos uma rodada de PP entre os membros do time. 6. Os membros que tiverem dado menor e maior valores fazem uma breve defesa do porque. Repetimos itens 4 e 5 até convergir 8. O valor é associado ao item, você pode verificar naquele arquivo sprint1.txt que passei para você os valores atribuídos aos 9 itens do sprint1. Freqüência: algumas poucas vezes e de maneira rápida ao longo do sprint

Scrum - Meetings Daily meetings ou Satand-up meetings ou Scrum meetings Envolvidos: time. Material: Painel de tarefas; post-it; canetas. Procedimento: De pé, máximo de 15 minutos, não é para discutir/resolver problemas 3 perguntas atualizando o Task Board: o que eu fiz ontem? o que farei hoje? tenho algum empecilho? Sincronização de conhecimento atualização do burn-down Freqüência: diária

Scrum - Meetings O que eu fiz ontem? O que vou fazer hoje? Tenho algum obstáculo? 1 2 3

Scrum - Meetings Retrospective Material: informações do VRSIVIEP:painel de tarefas já organizados. post-its e flip-chart Envolvidos: Time, scrum master (+ product owner) Objetivo: Rediscutir o processo de desenvolvimento (visando sua melhora) Procedimento: Repassar a sprint cronologicamente 5 min de WWWs (What Went Well & What Went Wrong) em post-it Discutir os itens organizando o impediment backlog who is in control?. Fechamento: cada individuo faz sua conclusão (Se a retrospective for anterior a review, pode-se preparar a review com o time.) Freqüência: a cada fim de sprint

Scrum - Meetings Review Material: informações do painel de tarefas Envolvidos: time + scrum master + product owner Objetivo: Revisar último sprint e andamento global do projeto Procedimento: Revisar detalhes da última sprint: objetivo, stories, burndown chart etc. Demo do último incremento do projeto. Pode incluir a demonstração de documentos e outros. (Se a review for posterior a retrospective, pode-se discutir impediments) Freqüência: a cada fim de sprint

Scrum Flow

Ainda sobre SCRUM Sprint, um resumo Done, Velocity Infraestrutura Escalabilidade Aprendizado Exemplo Prático

Scrum - Sprint Sprint, um resumo Iteração de 2 a 4 semanas Termina com uma deployable version Não pode ter sua data postergada O que fazer se atrasar? A descrição da sprint deve conter: Data início e fim Pessoas envolvidas (time) Objetivo Total de pontos Sprint backlog Botão Vermelho

Gráfico de Baleia Requerimentos Projeto Código Teste Ao invés de completar uma coisa por vez...... equipes Scrum fazem um pouco de cada coisa, todo o tempo.

Scrum - DONE Design Codificação Unit-test Code review Refactoring Comentado Commited Documentado Deve estar bem acordado com o time

Scrum - Velocity Velocity Como calcular

Jogo das bolas Um único time As bolas devem passar por todos Bolas devem ser passadas ficando um tempo no ar Não podem ser passadas ao vizinho Mesmo ponto de início e fim 2 minutos por sprint 1 minuto para retrospectiva/review 5 iterações

Scrum Suporte Tecnológico Teste Unitário J-Unit Cpp-Unit NUnit Integração Contínua Hudson Scons Wiki (Visibilidade) Confluence Subversion TortoiseSVN Acompanhamento de issues Jira

Escalabilidade Times de 7 ± 2 pessoas Pode ser escalável Scrum of Scrum Ken Schwaber Diversas vezes implementou para centenas de desenvolvedores Mike Cohn Implementou para mais de 1000 Faz uso genérico do Scrum (além de des. de sw) Próximo objetivo: + de 10.000 pessoas

Scrum of Scrum

Scrum of Scrum

Scrum - Relatórios Product backlog a cada sprint Análise das diferenças Análise de desempenho Burn-down charts, velocity Ações de melhorias realizadas

Scrum - Aprendizado Group programming Especialistas compartilham sua experiência Retrospective Todos aprendem sobre o processo e como melhorá-lo Essa é a explicação de porque os métodos ágeis se tornaram tão bons

Exemplo Prático - SiVIEP Sistema de Visualização Integrado de E&P Alta complexidade de requisitos: Multi-plataforma Realidade Virtual Renderização distribuída Interação com dispositivos 3D Suporte a grafo de cena Som 3D Cluster Distribuído Arquitetura de componentes Plug-in Acesso as funcionalidades via script Open source Plataforma de desenvolvimento para outras universidades Browser 3D

Exemplo Prático - SiVIEP Um pouco mais de ano de projeto antes do Scrum 5-6 pessoas ±10 sprints realizadas

Plataforma (PNA-I) Plataforma (PNA-II) Poços Reservatório Falhas da Superfície

Exemplo Prático - SiVIEP Adaptações do Scrum no SiVIEP: 3 dias úteis de trabalho por semana Estimation meeting acontece em conjunto com sprint planning 1 Limbo + Prod. Backlog candidates mesa retrátil Post-it chart (cor diferente para post-it novo) Inversão entre retrospective e review

PROCESSO CONVENCIONAL Meetings Daily meetings... 1 day 1 day Sprint i Estimation Review Retrospecitve Pontos positivos: Participação do Prod. Owner em 1 único dia Apenas 1 dia sem produção... Pontos negativos: - retrospective antes da review - Estimation na frente do prod. Owner Daily meetings Sprint i +1... Estimation Sprint Planning 2 Sprint Planning 1 PROCESSO SIVIEP Meetings Daily meetings Sprint i 1 day Daily meetings Sprint i +1 Estimation Review Retrospecitve Sprint Planning 2 Sprint Planning 1.

Exemplo Prático V3O2 E&P Projeto antigo com diversos usuários ± 8 sprints realizadas 2 times de 5 pessoas (± scrum of scrum)

Tópicos para discussão Pontos negativos CMMI Futuro

Pontos negativos dos Métodos Ágeis Para times com pessoas experientes Ken Schwaber diz que funciona para idiotas Processo exigente, trabalha-se muito Google compensa com o esquema 80-20 Perda de flexibilidade no horário Como tratar especialistas em equipes multidisciplinares? Como fazer o contrato (preço e escopo)? Como auditar e certificar? Atenção! Cuidado com os falsos mitos negativos: Só serve para grupos pequenos (FALSO) Não gera documentação (FALSO)

Contratos Fixed price / fixed date or Latest date / maximum cost Já existem diversos modelos de contrato prontos

Scrum & CMM Level 2: Christ Vriens, Certifying for CMM Level 2 and ISO9001 with XP@Scrum, May 2002 Ken Schwaber Primeira experiência ruim: Sistema web para um grande banco (CMM level3, há 3 anos), 1997 Encontro com Mark Paulk, 2002 Descobriu que o SCRUM já era CMM level 2 quase 3 2003, fez pequenos ajustes para tornar SCRUM em CMM level 3 Jeff Sutherland Se tornou especialista em CMM (em conjunto com o Scrum) Certificou algumas empresas em CMMI com Scrum J Sutherland et al., Scrum and CMMI Level 5: The Magic Potion for Code Warriors, 2008

Scrum and CMMI Level 5 Establish and maintain an organizational policy for planning and performing Agile Methods Establish and maintain the plan for performing Agile Methods Provide adequate resources for performing Agile Methods Assign responsibility and authority for performing Agile Methods Train the people performing Agile Methods Place designated work products under appropriate level of configuration management Identify and involve the relevant stakeholders as planned Monitor and control Agile Methods against the plan and take appropriate corrective action Objectively evaluate adherence to the Agile Methods and address noncompliance Review the activities, status, and results of the Agile Methods with higher-level management and resolve issues Establish and maintain the description of Agile Methods Collect the results from using Agile Methods to support future use and improve the organization s approach to Agile Methods

Falhas no CMMI (corrigidas pelo Scrum) Respeita processos mas ignora pessoas Não foca em problemas organizacionais internos Associa erradamente qualidade de produto à qualidade do processo. (O que é um produto de sucesso?) Não é business-oriented Ignora infra-estrutura técnica e organizacional Foca em eficiência interna e ignora a competitividade externa

Métodos Ágeis aplicados no mundo Empreas Google, Yahoo, Microsoft, Electronic Arts, High Moon Studios, Lockheed Martin, Philips, Siemens, Nokia, Capital One, BBC, Intuit, Nielsen Media, First American Real Estate, BMC Software, Ipswitch, John Deere, Lexis Nexis, Sabre, Salesforce.com, Time Warner, Turner Broadcasting, Oce. Como introduzir: Ken Schwaber: democraticamente (bottom-up) Jeff Sutherland: institucionalmente (top-down) Mike Cohn: ambos os métodos são interessantes Mark Striebeck at Google: Ssh! We Are Adding a Process..., 2006

Métodos Ágeis aplicados no mundo Cenário ideal para começar: Grupo pequeno (<10) Projeto complexo Time interessado Product owner disponível Perfil ideal das empresas: Empresas que valorizam o bem-estar dos funcionários Informais Respeitem as horas de trabalho dos funcionários Pequenas ou grandes empresas (de software) Vocês conhecem alguma empresa assim?

Métodos Ágeis aplicados na Petrobras Justamente por essas características, a Petrobras proporciona boas possibilidades de uso Ágil Hoje Existem algumas iniciativas Mais por parte das prestadoras de serviços Escolher projetos mais propícios (E&P, CENPES...) Pouco desenvolvedores crachá verde Curto Prazo Nós podemos mudar o cenário (agora todos os 40 são ágeis) Deve ser feito democraticamente (ou não?) Longo Prazo Metodologia Agil (além de OO, R/3 etc...) Associar a CMMI?

Futuro dos métodos ágeis É possível usar SCRUM para outros desenvolvimentos que não sejam software? Essa pergunta me ocorre desde o meu curso de CSM Recentemente, no TMCE 2008: Agile PDM-implementation, Jörg Feldhusen, Frederik Bungert, Manuel Löwer Caso de uso na engenharia mecânica

Referências Sobre o SCRUM (by Ken Schwaber) Ken Schwaber e Mike Beedle Sobre a prática do Scrum Ken Schwaber Implementação do Scrum em diversas empresas Quase um romance Ken Schwaber pretendo ler

Referências Da Internet Jeff-Sutherland-7-Ways-To-Fail-With-Scrum.pdf Agile Project Management Sobre liderança ágil Scrum from the trenches Experiência de uso do Scrum em uma empresa na Suécia Altamente recomendável para quem está implementando Scrum pela primeira vez "Ssh! We are adding a process, Scrum na Google

Referências Outras: Nonaka e Takeuchi: The New New Product Development Game, 1986 The knowledge-creating company, 1995, 8000 referências (+ 4000 para versão japonesa) Jeff Sutherland: Scrum and CMMI Level 5: The Magic Potion for Code Warriors, 2008 Agile development: lessons learned from the first scrum, 2004 Sobre implementação do Scrum em 1993

Agradecimentos Turma UP2*, AS-ES-2008.1 Uanderson Marcio Mascarenhas Saulo (videos) Dani e Carol Tecgraf