Blog do Abu – Apostila de Apoio Blog do Abu - Apostila de Apoio Versão 2.1 – Em fase de correção ortográfica e técnica. Prof. Nelson Abu Samra Rahal Junior – [email protected] Certified SCRUM Master Nelson Abu Samra Rahal Junior ([email protected]) - Página: 1 Blog do Abu – Apostila de Apoio Contents Autores.........................................................................................................................4 Nelson Abu Samra Rahal Junior................................................................................4 Neilza Andrea Abu Samra Rahal...............................................................................4 Scrum...........................................................................................................................5 Você sabe o que é Scrum?.........................................................................................5 Framework Scrum.....................................................................................................7 Papéis no Scrum........................................................................................................8 Product Owner (PO)..............................................................................................8 Scrum Máster (SM)...............................................................................................8 Equipe (EQ)..........................................................................................................9 Visão do Produto....................................................................................................11 Executando a Visão do Produto...........................................................................11 Exemplo de Visão do Produto.............................................................................12 Product Backlog......................................................................................................13 Exemplo de Product Backlog..............................................................................13 Estimativas, Velocidade da Equipe, Quantidade de Sprint’s e Product Burndown Chart.......................................................................................................................15 Contando os Pontos.............................................................................................16 Exemplo de Pontos Contados..............................................................................17 Determinando o Tempo do Projeto......................................................................17 Product Burndown Chart.....................................................................................18 Priorização e Distribuição de Requisitos por Sprint’s..............................................20 Executando a Priorização....................................................................................20 Sprint, Planejamento da Sprint #1, Planejamento da Sprint #2, Sprint Burndown Chart e Execução da Sprint.....................................................................................22 Planejamento da Sprint #1...................................................................................23 Planejamento da Sprint #2...................................................................................24 Sprint Burndown Chart.......................................................................................24 Calculo de Velocidade da Sprint..........................................................................25 Exemplo de Tarefas na Sprint..............................................................................25 Exemplo de Ciclo de Vida de Uma Sprint...........................................................26 Executando a Sprint............................................................................................28 Desenvolvimento e Reuniões Diárias......................................................................30 Sete Fundamentos para reuniões diárias eficazes.................................................30 Impedimentos......................................................................................................31 Dia a Dia da Reunião Diária................................................................................31 Review....................................................................................................................32 Retrospectiva..........................................................................................................33 Linha do Tempo (Timeline).................................................................................33 Retrospectiva Rápida...........................................................................................37 Dia a Dia Após a Retrospectiva...........................................................................38 Release (Versões)....................................................................................................39 Scrum de Scrum......................................................................................................41 Potencializando Scrum............................................................................................43 Épicos, Temas e Historias...........................................................................................45 Cartão de Historia...................................................................................................45 Exemplo de Cartão de Historia............................................................................45 Template de Cartão de Historia...........................................................................45 Organizando Cartões de Historia.........................................................................46 Nelson Abu Samra Rahal Junior ([email protected]) - Página: 2 Blog do Abu – Apostila de Apoio Exemplos de Cartão de Historia..........................................................................48 Escopo do Projeto...............................................................................................49 Épico, Tema e Historia........................................................................................50 Trabalhando com Temas.....................................................................................51 Exemplos de Testes criados para Cartões de História..........................................52 Templates de Documentos..........................................................................................55 Visão do Produto....................................................................................................55 Planejamento da Sprint #1.......................................................................................57 Planejamento da Sprint #2.......................................................................................58 Review....................................................................................................................59 Retrospectiva..........................................................................................................59 Softwares Para Gerenciamento Ágil de Projetos..........................................................61 Nelson Abu Samra Rahal Junior ([email protected]) - Página: 3 Blog do Abu – Apostila de Apoio Autores Nelson Abu Samra Rahal Junior • Paulista de Assis • Professor universitário desde 1996 • Atuo na área de desenvolvimento de software desde 1991 • Especialista em gerenciamento de projetos ágeis • Graduado em Processamento de Dados • Pós-graduação em Didática e Metodologia de Ensino • Pós-graduação em Gerência de Projetos de TI (PMI) • Mestre em Ciência da Computação • Certificado ScrumMaster • Consultor da Innovit Gestão de Projetos e Processos Neilza Andrea Abu Samra Rahal • Paranaense de Arapongas • Professora universitária desde 1998 • Especialista em gerenciamento de projetos na área de Teste de Software • Graduado em Processamento de Dados • Pós-graduação em Didática e Metodologia de Ensino • Pós-graduação em Gerência de Projetos de TI (PMI) • Mestre em Ciência da Computação • Certificada em Teste de Software Nelson Abu Samra Rahal Junior ([email protected]) - Página: 4 Blog do Abu – Apostila de Apoio Scrum Você sabe o que é Scrum? * Escrito em parceria com Marcelo dos Santos Scrum é um processo de gerenciamento de projetos ágeis, adaptado para a área de desenvolvimento de software, pelo especialista Ken Schwaber. Ken define Scrum, em um de seus livros, como: “um processo Ágil ou ainda um framework para gerenciamento de projetos Ágeis. É um processo de gerência de projetos, certamente não é uma metodologia, pois isto seria pesado demais”. A primeira experiência com o Scrum ocorreu em uma fábrica de automóveis, onde se constatou que a utilização de equipes pequenas e multidisciplinares produzia melhores resultados. Em analogia a essas equipes, associou-se a formação do Scrum a de um jogo de Rugby. A partir de 1995, Ken Schwaber formalizou a definição de Scrum e ajudou a implantá-lo em desenvolvimento de software em todo o mundo. Ilustração 1 - Formação de Scrum em jogo de Rugby Martin Fowler, um dos maiores estudiosos em desenvolvimento de software, comenta em seu artigo A Nova Metodologia que: “Nos últimos anos, vem crescendo rapidamente o interesse em metodologias ágeis (ou "leves"). Também caracterizadas como um antídoto contra a burocracia ou uma licença para "hackear". Estas metodologias despertaram os interesses em toda a extensão da indústria do software”. Dentre as técnicas de utilização do Scrum, há a entrega de produtos em períodos de tempo pré-estabelecidos, nunca inferiores a uma semana ou superiores a trinta dias. Nelson Abu Samra Rahal Junior ([email protected]) - Página: 5 Blog do Abu – Apostila de Apoio Para estimular o contato entre empresa e cliente, os projetos são interrompidos em períodos regulares de tempo. A essas ações dá-se o nome de Sprint. Ao término de cada Sprint, o cliente recebe um conjunto de funcionalidades desenvolvidas e prontas para serem utilizadas. A melhor maneira de comprovar se o software atende às necessidades é fazer com que o cliente o utilize, apontando as qualidades e o que falta ser aperfeiçoado. Importante destacar que a participação ativa do cliente no processo de desenvolvimento de software faz com que sejam atribuídas a ele algumas responsabilidades como definição das funcionalidades do produto, decisão quanto às datas de lançamento de conteúdo e ajuste de funcionalidades. Nelson Abu Samra Rahal Junior ([email protected]) - Página: 6 Blog do Abu – Apostila de Apoio Framework Scrum Ilustração 2 - Framework Scrum Nelson Abu Samra Rahal Junior ([email protected]) - Página: 7 Blog do Abu – Apostila de Apoio Papéis no Scrum Scrum possui apenas três papeis, sendo eles: Product Owner, Scrum Master e a Equipe. Product Owner (PO) Conhecido também como dono do produto é o responsável pela definição do projeto, levando a equipe de desenvolvimento o que chamamos de Visão do Produto. Uma vez transmitida a Visão do Produto a equipe de desenvolvimento o dono do produto é responsável pela priorização dos requisitos e definição dos mesmos. O Product Owner pode mudar as priorizações, adicionar ou remover novos requisitos conforme as suas necessidades. Ele apenas não pode mudar o trabalho que já está em codificação pela equipe de desenvolvimento. Uma das grandes chaves de sucesso do Scrum está no Product Owner, por intermédio da definição e clareza dos requisitos. Os requisitos não devem chegar parcialmente definidos a equipe de desenvolvimento, caso isso ocorra a capacidade de produção da equipe vai diminuir. O Product Owner também é responsável pelo retorno de investimento (ROI) do projeto. É difícil definir ROI, mas no Scrum ele se materializa com a priorização dos requisitos e codificação dos mesmos. No Scrum a entrega o mais rápido possível ao Product Owner dos módulos que ele tem necessidade caracteriza ROI e o Product Owner com o sistema em funcionamento pode avaliar o que está sendo construído ou até mesmo utilizá-lo o mais rápido possível. Também uma das chaves de sucesso do Scrum com o Product Owner está na sua disponibilidade a equipe de desenvolvimento de software. As vezes ter o Product Owner sempre disponível é difícil, mas é uma meta a ser seguida. Devemos lembrar que o Product Owner é o representante do cliente e a equipe de desenvolvimento de software tem que atender as suas expectativas e orientações. O Product Owner tem o poder de aceitar ou rejeitar um trabalho realizado pela equipe de desenvolvimento de software. Scrum Máster (SM) O Scrum Máster é uma pessoa da equipe de desenvolvimento do software que possui algumas responsabilidades diferentes dos demais. Entre as responsabilidades está a de manter o processo do Scrum ativo, garantindo que o projeto vai ser realizado seguindo as boas praticas do Scrum. Também faz parte das responsabilidades do Scrum Master identificar todos os problemas que estão ocorrendo durante o desenvolvimento do Nelson Abu Samra Rahal Junior ([email protected]) - Página: 8 Blog do Abu – Apostila de Apoio sistema, que faz com que a capacidade de produção da equipe diminua ou até mesmo não permita que a equipe continue trabalhando. Estes problemas nos chamamos de obstáculos ou impedimentos e devem ser solucionados pelo Scrum Master. Quando o Scrum Master não tem condições de solucionar o impedimento ele deve buscar a pessoa que pode resolver o problema identificado. A produtividade da equipe é mais uma responsabilidade do Scrum Master, pois ele deve fazer com que a equipe de desenvolvimento do sistema fique focada o maximo possível na sua área de atuação, que é a construção do software. Neste ponto nos falamos que o Scrum Master tem que ser uma blindagem da equipe, não permitindo que eventos externos atrapalhem os trabalhos que estão sendo realizados. Um ponto importante é que o Scrum Master não tem que ter autoridade sobre a equipe, isto é, qualquer integrante da equipe de desenvolvimento de software pode ser o Scrum Master e até mesmo fazer um rodízio desta responsabilidade. A troca de Scrum Master entre as pessoas da equipe deve ser realizada com cautela, nunca a cada sprint (fase, ciclo ou iteração) de desenvolvimento e sim por projeto ou por versões (releases) do sistema. Podemos ter também um Scrum Master coringa, para que caso o Scrum Master do projeto não possa estar presente com a equipe, uma pessoa da equipe já saiba que ele é o responsável por executar as atribuições de trabalho do Scrum Master. Equipe (EQ) É a responsável pela execução do projeto, sendo protegida pelo Scrum Master e tendo como foco o atendimento das necessidades do Product Owner. Uma equipe em Scrum é constituída de no mínimo 2 pessoas e no maximo de 7 pessoas. As equipes são menores para potencializar uma das maiores armas do Scrum, a comunicação entre a equipe. Três pessoas nos temos uma comunicação direta entre cada integrante da equipe, conforme a equipe vai aumentando a complexidade de comunicação entre todos os integrantes vai aumentando. Equipes enxutas chegam a ter a sua capacidade de produção melhor que equipes grandes. Este aumento de velocidade ocorre em virtude da potencialização da comunicação entre os integrantes da equipe. Nelson Abu Samra Rahal Junior ([email protected]) - Página: 9 Blog do Abu – Apostila de Apoio Ilustração 3 - Complexidade da Comunicação A formação da equipe é multidisciplinar, sendo ela constituída de: Engenheiros de Software, Arquitetos, Programadores, Analista, Peritos em Qualidade, Testadores, Web designers. Mas em Scrum as equipes são generalistas e não especialistas. Todos os integrantes da equipe podem e devem desempenhar todos os papeis, conforme a necessidade e definição da equipe. Nos utilizamos equipes multidisciplinares e generalistas para que o projeto possa ter uma velocidade de execução maior e uma redução de riscos com relação a definição do produto que está sendo realizado. Os generalistas permitem com que todas as pessoas do projeto sempre executam qualquer atividade. Com a equipe generalista nos passamos a potencializar a capacidade de produção que o nosso projeto possui, removendo o risco de um integrante da equipe ficar parado aguardando o trabalho que deve ser executado ficar disponível. Os multidisciplinares permitem a redução do risco nas definições do produto, permitindo a integração das mais diversas áreas na busca de um produto melhor. As equipes em Scrum são auto-organizadas, isto é, elas definem a sua forma de trabalho e evoluem está forma de trabalho pela sua própria avaliação de como está sendo executado o projeto. Dentro da equipe de Scrum é instituído o conceito de auto-gestão, onde a equipe passa a ter autonomia de tomada de decisão para o seu foco de atuação, que é o de desenvolver o sistema solicitado pelo Product Owner. Nelson Abu Samra Rahal Junior ([email protected]) - Página: 10
Description: