METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO. Bruno Edgar Fuhr 1

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

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

Metodologias Ágeis. Aécio Costa

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

Wesley Torres Galindo.

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

Wesley Torres Galindo

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

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

Desenvolvimento Ágil de Software

Alexandre Lima Guilherme Melo Joeldson Costa Marcelo Guedes

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

SCRUM. Fabrício Sousa

INTRODUÇÃO AOS MÉTODOS ÁGEIS

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

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

ENGENHARIA DE SOFTWARE I

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

Manifesto Ágil - Princípios

Agenda. Introdução Etapas genéricas Atividades de apoio Ferramentas de apoio Modelos genéricos Modelos de mercado Modelos de melhoria

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

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

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

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro

Metodologia SCRUM. Moyses Santana Jacob RM Stelvio Mazza RM Tiago Pereira RM Hugo Cisneiros RM 60900

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

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

Guia Projectlab para Métodos Agéis

Gerenciamento de Equipes com Scrum

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

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

Prof. Me. Marcos Echevarria

Ferramenta para gestão ágil

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

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

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

Aluna: Vanessa de Mello Orientador: Everaldo Artur Grahl

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ê?

Scrum. Gestão ágil de projetos

Expresso Livre Módulo de Projetos Ágeis

Ouvir o cliente e reconhecer o problema: ingredientes essenciais à gestão de projetos

Engenharia de Software II

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Com metodologias de desenvolvimento

SCRUM. Desafios e benefícios trazidos pela implementação do método ágil SCRUM. Conhecimento em Tecnologia da Informação

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

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

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

LISTA DE EXERCÍCIOS METODOLOGIAS ÁGEIS ENGENHARIA DE SOFTWARE 10/08/2013

Método Aldeia de Projetos

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

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

Resumo artigo Agile Modeling- Overview

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

TUTORIAIS. Framework SCRUM. Rafael Buck Eduardo Franceschini. MSc., PMP, CSM MBA

EXIN Agile Scrum Fundamentos

PRINCÍPIOS DE SISTEMAS DE INFORMAÇÃO MÓDULO 17

Processo de Desenvolvimento Unificado

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

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

ANEXO 07 CICLO DE DESENVOLVIMENTO ÁGIL PROCERGS

Gestão de Projetos com Scrum

Sistemas de Informação I

O modelo unificado de processo. O Rational Unified Process, RUP.

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

Engenharia de Software

Análise da aplicação da metodologia SCRUM em uma empresa de Desenvolvimento de Software

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

RESUMO PARA O EXAME PSM I

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

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

Desenvolvimento Ágil de Software em Larga Escala

Comparativo entre Processos Ágeis. Daniel Ferreira

SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014.

Aula Anterior. Capítulo 2

A PRIMMER possui casos importantes nesta área. Venha compartilhar conosco desta experiência magnífica no mundo das metodologias ágeis.

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

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

Processo de Abertura de Projetosescritorio. Bizagi Process Modeler

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

UMA ABORDAGEM PARA VIABILIZAR A ADERÊNCIA DA METODOLOGIA SCRUM AO MODELO MPS.BR NÍVEL G.

Processos de Software

A Disciplina Gerência de Projetos

Sistemas de Informação I

Profa. Dra. Ana Paula Gonçalves Serra

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

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

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Sistemas de Informação e Programação II Odorico Machado Mendizabal

development Teresa Maciel DEINFO/UFRPE

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2

Segurança de Aplicações Aula 6

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

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

Transcrição:

METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO Bruno Edgar Fuhr 1 Resumo: O atual mercado de sistemas informatizados exige das empresas de desenvolvimento, um produto que tenha ao mesmo tempo qualidade e agilidade de execução. Hoje em dia, o cliente do software não aceita esperar um longo período para receber o seu produto, coisa que era comum no passado. Com isso, é clara a necessidade da adoção de uma metodologia de gerenciamento de projetos moderna e ágil, que possa responder às frequentes mudanças de requisitos, de forma rápida e funcional. Este artigo tem como objetivo apresentar a metodologia Scrum como uma alternativa a outras estratégias de gerenciamento de projetos existentes no mercado, mostrando suas características principais e o seu processo de funcionamento. Palavras-chave: Gerenciamento de projetos. Metodologias ágeis. Scrum. 1 INTRODUÇÃO Com o crescente aumento na demanda de sistemas informatizados em praticamente todas as áreas da nossa sociedade, é necessário, e quase que imprescindível, a constante atualização e melhoramento dos processos de desenvolvimento de software. Cada vez mais, o mercado consumidor exige sistemas de qualidade, sem deixar de buscar pelo melhor custo/benefício. Neste contexto, um projeto de software, para ser bem sucedido e vantajoso perante seus concorrentes, deve conseguir aliar a qualidade do produto desenvolvido com a redução de custos e prazos de produção. Em busca destes objetivos, foram-se desenvolvendo ao longo dos anos, diversas metodologias para o gerenciamento de projetos, desde modelos mais conservadores, ou tradicionais, até métodos mais flexíveis e ágeis. O presente artigo visa apresentar uma destas metodologias ágeis, denominada Scrum, como uma alternativa atualizada ao gerenciamento de projetos de software tradicional, demonstrando seu funcionamento e suas principais características. 2 GERENCIAMENTO DE PROJETOS Pode-se definir projeto como um esforço temporário e único, executado de forma coordenada por uma conjunto de indivíduos, com a meta de, em um 1 Acadêmico do curso de Sistemas de Informação, do Centro Universitário UNIVATES.

determinado período de tempo, alcançar um objetivo pré-estabelecido. Segundo Pressman (1995), para que um projeto de software seja bem sucedido, é necessário que alguns parâmetros sejam corretamente analisados, como por exemplo, o escopo do software, os riscos envolvidos, os recursos necessários, as tarefas a serem realizadas, os indicadores a serem acompanhados, os esforços e custos aplicados e a sistemática a ser seguida. Para que se possa acompanhar o andamento e garantir o cumprimento dos objetivos, são aplicadas técnicas e utilizadas ferramentas para o planejamento, execução e controle do projeto. Esta atividade é definida como Gerenciamento de Projetos. Na área de sistemas de informação, existem diferentes visões como o projeto deve ser gerenciado, sendo estas centradas em alguns modelos. Pode-se dividir estes modelos em dois grupos: tradicionais e ágeis. 2.1 Metodologias tradicionais de gerência de projetos Assim que os primeiros sistemas começaram a ser desenvolvidos, começouse a perceber uma série de problemas de qualidade e demandas maiores do que a capacidade produtiva. 2.1.1 Modelo Cascata Neste cenário, surgiu o primeiro modelo de gerenciamento de software, chamado Cascata (ou Waterfall). Este modelo definiu um ciclo de vida básico do software e foi um grande salto qualitativo para o desenvolvimento de software. Este ciclo de vida divide o desenvolvimento do software em etapas claras, onde somente é possível passar para a próxima etapa do ciclo após a etapa anterior ter sido concluída. Mesmo sendo um modelo antigo, o processo Cascata ainda é utilizado atualmente e, apesar de ter ajudado muito a organizar o desenvolvimento de sistemas, traz consigo uma série de problemas. Segundo Pressman (1995), as principais críticas a esse modelo são: Os projetos raramente seguem o fluxo sequencial; É muito difícil para o cliente declarar todas as suas necessidades corretamente e de forma clara logo no início do projeto;

Decorre muito tempo entre o início do projeto e a disponibilização de uma primeira versão utilizável do sistema (durante esse período, os requisitos podem sofrer modificações ou mesmo deixar de fazer sentido); O risco de insucesso é alto, visto que, se um erro de grande impacto for cometido e não detectado, provavelmente só será descoberto muito tarde o que pode ser desastroso para o projeto. O ciclo Cascata presume que o projeto terá uma sequência correta, sem desvios ou problemas, ou seja, não considera riscos que podem impactar ou até inviabilizar o projeto. 2.1.2 Modelo Espiral O modelo espiral foi originalmente proposto por Boehm em 1988 e traz uma alternativa interessante aos problemas do modelo Cascata, pois divide a tarefa de levantar requisitos em etapas que não ocorrem todas de uma vez, no início do desenvolvimento. À medida que o desenvolvimento ocorre, caminha-se, na espiral, para sua parte mais externa, passando pelas disciplinas de desenvolvimento várias vezes. O efeito dessa forma de trabalho são entregas parciais de software para o cliente, em vez de uma entrega única ao final do processo. Figura 1 Ciclo de Vida Espiral (SOMMERVILLE, 2003).

O modelo espiral foi a base para diversos modelos posteriores, do qual podese citar o modelo RUP (Rational Unified Process) criado pela IBM e que é o mais utilizado atualmente. 2.2 Metodologias ágeis de gerência de projetos No início dos anos 2000, um grupo de representantes de diversas metodologias consideradas leves se reuniu para levantar pontos em comum entre suas metodologias. A partir dessa reunião foi criado o Manifesto Ágil e definidos os princípios para o desenvolvimento ágil de software. Dentre esses princípios, pode-se citar alguns, como: A maior prioridade é satisfazer o cliente através da entrega contínua e desde cedo de software com valor; Mudanças de requisitos são bem-vindas, mesmo tardiamente no desenvolvimento. Processos ágeis utilizam a mudança em favor da vantagem competitiva do cliente; Entregar frequentemente software em funcionamento, desde a cada duas semanas até a cada dois meses, com uma preferência por prazos mais curtos; Pessoas do negócio e desenvolvedores devem trabalhar em conjunto diariamente por todo o projeto; Construa projetos em torno de indivíduos motivados. Dê-lhes o ambiente e o suporte que precisam e confie neles para fazerem o trabalho; O método mais eficiente e eficaz de se transmitir informação para e entre uma equipe de desenvolvimento é a conversação face a face; Software em funcionamento é a medida primária de progresso. O objetivo do Manifesto Ágil não é desconsiderar processos, ferramentas, documentação, negociação de contratos ou planejamento, mas mostrar o valor secundário que estes possuem diante dos indivíduos e interações, do bom funcionamento do software, da colaboração do cliente e das respostas velozes às modificações. Esses conceitos estão mais relacionados à forma que as pequenas e médias empresas trabalham, devido a estarem habituadas a mudanças. Os métodos ágeis mais conhecidos são o Extreme Programming (conhecido também como XP) e o Scrum, que será detalhado a seguir.

3 METODOLOGIA SCRUM Scrum é uma metodologia ágil de gestão de projetos, que teve sua origem em um artigo, intitulado The New New Product Development, publicado por Hirotaka Takeuchi e Ikujiro Nonaka na prestigiada Harvard Business Review em 1986. Neste artigo, os autores descrevem uma abordagem onde, pequenos e multifuncionais times trabalham com sucesso em direção a um objetivo comum, semelhante à formação scrum do jogo rúgbi (DA SILVA et al, 2008). Segundo Bissi (2007), este método pode ser aplicado a qualquer produto ou no gerenciamento de qualquer atividade complexa, porém é bastante indicado para o desenvolvimento de softwares, onde os requisitos surgem e mudam com certa frequência, por sua flexibilidade e poder de adaptação. Sua abordagem se opõem ao modelo Cascata pois inicia-se o desenvolvimento assim que alguma análise tenha sido feita, e não mais aguarda a finalização de toda a análise para então iniciar o desenvolvimento. 3.1 Características Os princípios do Scrum são baseados em boas práticas de gestão e tem por objetivo definir um processo iterativo e incremental de desenvolvimento de software. Ao final de cada iteração, que no Scrum são chamadas de Sprints, visa produzir um conjunto de funcionalidades mais próximas do objetivo final. O Sprint representa um período de tempo (geralmente 15 ou 30 dias), dentro do qual um conjunto de atividades deve ser executado. É uma metodologia voltada ao trabalho em equipe, que melhora a comunicação e a cooperação entre os envolvidos, permitindo que cada um desempenhe o seu melhor e se sinta bem com o que faz, resultando em um aumento na produtividade. Não requer técnicas ou métodos específicos para a fase de desenvolvimento, estabelecendo apenas um conjunto de regras e práticas de gestão que devem ser adotadas para garantir o sucesso do projeto (FERREIRA, 2005). 3.2 Personagens São três os personagens do processo Scrum: Product Owner (Dono do produto) é, de preferência, uma única pessoa, a

qual não necessariamente tem por obrigação ser um funcionário do cliente, apesar de ser muito recomendado, visto que essa pessoa deverá ter um ótimo conhecimento das necessidades da empresa, de maneira a expressar pontualmente as prioridades dentro do projeto. É quem irá elencar as funcionalidades pretendidas, bem como um grau de importância para essas funcionalidades dentro do processo. É também atribuído a esse personagem o poder de aceitar ou rejeitar o resultado do trabalho efetuado em cada Sprint; Scrum Master é o elemento da equipe responsável pela gestão do projeto e de liderar as reuniões. São normalmente engenheiros de software ou de sistemas e que, apesar de serem gestores, não tem propriamente autoridade sobre os demais membros da equipe. O Scrum Master pode exercer outros papéis no processo, desde que não o impossibilitem de exercer suas funções de gerência; Scrum Team (Time) é a equipe de desenvolvimento de um Sprint. 3.3 Artefatos Artefato, em engenharia de software, é um modelo, documento ou código produzido por uma atividade. Na metodologia Scrum, os principais artefatos são: Product Backlog é uma lista de todas as funcionalidades desejadas em um produto. Esta lista é definida pelo dono do produto (Product Owner), que prioriza os itens e os descreve para a equipe. O Product Backlog não precisa estar completo no início do projeto, podendo-se começar com itens mais báscios, ou óbvios; Sprint Backlog é uma lista de tarefas que o Scrum Team se compromete a desenvolver em um Sprint. Os itens desta lista são extraídos do Product Backlog, com base na priorização realizada pelo Product Owner e a percepção da equipe sobre o tempo necessário para realizá-los; Product Burndown Chart é um gráfico que representa o trabalho restante no Product Backlog. Tem o objetivo de informar o andamento global do projeto; Sprint Burndown Chart é um gráfico informativo do trabalho restante em um Sprint. 4 O PROCESSO SCRUM O Product Backlog é o ponto inicial do Scrum, sendo considerada a prática

responsável pela coleta de requisitos do produto a ser desenvolvido. Nesta prática, através de reuniões com o Product Owner, são apontados os itens com todas as necessidades e requisitos técnicos a serem desenvolvidos, e que irão constituir o Product Backlog (ZANATTA et al, 2005). Para iniciar o processo Scrum deve-se, inicialmente, definir as pessoas que irão trabalhar no projeto. Cada equipe deve ter de 6 a 9 integrantes (FERREIRA, 2005), e cada equipe irá focar em uma área específica do trabalho. Após a definição das equipes, define-se o Scrum Master. É a ele que compete o papel de gerente do projeto. Todo o processo é controlado durante o Sprint que, ao final de seu período de desenvolvimento, resulta em um incremento no produto final, que é analisado pelo Product Owner. No início de cada Sprint, realiza-se uma reunião de planejamento (Sprint Planning Meeting), onde o Product Owner prioriza os itens do Product Backlog e a equipe seleciona atividades que julga ser capaz de implementar durante o Sprint que se inicia. As tarefas então são transferidas do Product Backlog para o Sprint Backlog. Quanto à priorização dos itens do Product Backlog, pode-se utilizar uma técnica chamada de MoSCoW, onde os itens são classificados em Must (Deve ter), Should (Deveria ter), Could (Poderia ter) e Want (Interessante ter). A cada dia de um Sprint, a equipe faz uma breve reunião, chamada de Scrum Meeting, com o objetivo de monitorar o andamento dos trabalhos, identificar possíveis impedimentos, definir e priorizar o trabalho a ser feito no dia. Cabe ao Scrum Master tomar decisões imediatas e resolver todos os impedimentos rapidamente, de modo a não estender o tempo da reunião. No fim de cada Sprint, deve ser feita uma Sprint Review Meeting (reunião de revisão do Sprint) para revisão e demonstração das funcionalidades implementadas. Cada equipe deve demonstrar algo, uma vez que o objetivo é que sigam regras de auto-organização. Ao final do Sprint deve sair um produto com valor agregado, ou seja, é feito um incremento no produto. Esse ciclo se repete várias vezes até que o Product Backlog seja todo atendido (SCHWABER, 2008).

Figura 2 Ciclo de desenvolvimento do Scrum. 5 CONCLUSÃO O Scrum se mostra uma ótima metodologia para o gerenciamento dos processos de desenvolvimento de software, pois possui muitas características desejadas pelos gestores atuais, tais como acompanhamento em tempo real do trabalho realizado, diminuição dos riscos, maior integração e comprometimento dos envolvidos, rápida solução de problemas e respostas frequentes ao cliente (dono do produto). É uma excelente opção para empresas e desenvolvedores que buscam implantar um padrão e qualificar seus processos, e mesmo para a substituição de uma metodologia já aplicada, mas que esteja dificultando o potencial produtivo da equipe. REFERÊNCIAS PRESSMAN, R. S. Engenharia de Software. Makron Books. São Paulo. Brasil. 1995. SOMMERVILLE, I. Engenharia de Software. 6. ed. Addison Wesley. São Paulo. Brasil. 2003. SCHWABER, Ken. Control Chaos. Disponível em: <http://www.controlchaos.com/>. Acesso em: dez de 2012.

FERREIRA, D., COSTA, F., ALONSO, F., ALVES, P., NUNES, T. SCRUM. Um Modelo Ágil para Gestão de Projetos de Software. ZANATTA, Alexandre Lazaretti, VILAIN, Patrícia. Uma análise do método ágil Scrum conforme abordagem nas áreas de processo Gerenciamento e Desenvolvimento de Requisitos do CMMI. Anais do WER05 - Workshop em Engenharia de Requisitos. Porto. Portugal. p. 209-220. 2005. DA SILVA, Alexandre Almeida et al. Breve descrição do método SCRUM de gerenciamento de projetos. Minas Gerais. Brasil. 2008. Disponível em: <http://pt.scribd.com/doc/44265501/scrum>. Acesso em dez. 2012.