6

Click here to load reader

Scrum - Principais Vantagens do Método no Processo de Desenvolvimento de Software

  • Upload
    ronnie

  • View
    3.987

  • Download
    0

Embed Size (px)

DESCRIPTION

Artigo Científico vencedor em segundo lugar na categoria "Melhor Pôster" no 1º Encontro Regional de Tecnologia e Negócios promovido pelos cursos de Bacharelado em Sistemas de Informação e de Administração da UAST/UFRPE (Universidade Federal Rural de Pernambuco - Unidade Acadêmica de Serra Talhada).

Citation preview

Page 1: Scrum - Principais Vantagens do Método no Processo de Desenvolvimento de Software

Scrum - Principais Vantagens do Método no Processo de Desenvolvimento de Software

Ronnie Edson de Souza Santos 1 , Cleyton Vanut Cordeiro de Magalhães2, Jorge da Silva Correia Neto3

Universidade Federal Rural de Pernambuco (UFRPE)Unidade Acadêmica de Serra Talhada (UAST)

Serra Talhada - Brasil { ronnie.gd, cleyton.vanut, jorgecorreianeto}@gmail.com

RESUMO

No início da década de 70 o fracasso no desenvolvimento de grandes projetos de software era resultado da deficiência no gerenciamento das atividades que envolvem este complexo processo. Atualmente, existem duas abordagens distintas para o gerenciamento: por um lado a tradicional, que visa planejamento e acordos na etapa inicial do projeto com a produção de uma rica documentação e, por outro, a abordagem ágil, adaptada às mudanças e focada na interação da equipe e na entregua rápida do produto de software com todas as funcionalidades implementadas. Um método de desenvolvimento ágil que está se tornando bastante popular é o Scrum, que vem sendo utilizado nas áreas de produção de grandes empresas como a Microsoft e a Google. A partir de uma pesquisa bibliográfica e de entrevistas com especialistas na área, este trabalho aponta as principais vantagens deste método ágil que aos poucos está sendo utilizado também por muitas empresas brasileiras.

PALAVRAS-CHAVE

Scrum, Desenvolvimento Ágil, Produto de Software, Jeff Sutherland

1. INTRODUÇÃO

Processo de Desenvolvimento de Software é como está conhecido o conjunto de atividades executadas com a finalidade de obter um produto de software, através da definição de sub-processos, responsáveis, artefatos e um fluxo de realização (ALMEIDA, 2007).

No início da década de 70 o fracasso no desenvolvimento de grandes projetos de software se dava pela falta de gerenciamento das atividades, o que acarretava em atrasos na entrega dos produtos, sistemas que não refletiam a verdadeira necessidade do cliente e problemas com as equipes no ambiente de desenvolvimento. A gerência de projetos surge como uma das atividades mais importantes do processo de desenvolvimento de software, fazendo uso da aplicação de conhecimentos, habilidades e técnicas que visam atingir o sucesso dos projetos de software (SOMMERVILLE, 2007).

Atualmente a gerência de projetos atua com dois tipos de abordagens diferentes. Na abordagem tradicional o processo de desenvolvimento é tratado como uma sequência de atividades encadeadas, onde cada etapa fornece os insumos necessários para a próxima. Uma das principais características desta abordagem é a realização de trabalhos de forma individual, ou seja, cada profissional trabalha separadamente com o intuito de contribuir para o sucesso do produto final. Na abordagem oposta à tradicional, conhecida como desenvolvimento ágil, o projeto é visto como um conjunto de pequenas tarefas, ao invés de um

1 Bacharelando em Sistemas de Informação da UFRPE-UAST.2 Bacharelando em Sistemas de Informação da UFRPE-UAST.3 Professor Assistente da UFRPE-UAST.

Page 2: Scrum - Principais Vantagens do Método no Processo de Desenvolvimento de Software

processo completo. Neste caso o gerenciamento procura aumentar a leveza e a rapidez no desenvolvimento do software (FREITAS; MIRANDA, 2008).

A necessidade da construção de sistemas de maneira rápida, ocasionada pelo ritmo acelerado de mudanças na tecnologia da informação e do grande dinamismo no ambiente de negócios, fez com que a abordagem de desenvolvimento ágil apresentasse rápido crescimento e aceitação desde sua criação em 2001.

O método ágil vem ganhando mais espaço dentro dos ambientes de desenvolvimento nos últimos tempos. No Brasil o Scrum é comumente aplicado a pequenas equipes e em ambientes de desenvolvimento que sofrem constantes mudanças. Seu foco é a maximização da habilidade da equipe em responder de forma ágil aos desafios emergentes. Desta forma, pode-se resolver rapidamente qualquer tipo de problema que apareça durante o processo de desenvolvimento, uma vez que todos os membros sabem exatamente o que acontece ao longo do projeto.

Dentre as características principais do método Scrum pode-se destacar a divisão do processo em pequenos ciclos de desenvolvimento chamados Sprint, onde um conjunto de funcionalidades pré-definidas deve ser concluído e entregue aos clientes em intervalos regulares. As equipes são bem pequenas e trabalham em conjunto para atingir o resultado desejado. Para monitorar o progresso do processo são realizadas reuniões diárias com toda a equipe, a fim de refletir sobre o trabalho do dia anterior, do dia corrente e do dia seguinte, além de reuniões com os stakeholders (todos os envolvidos no processo) no fim de cada ciclo de desenvolvimento, o que transforma o cliente em um integrante da equipe, que mantém feedback constante a respeito do andamento do sistema.

Neste método o gerente do projeto é conhecido como Scrum Master e tem como principal função remover qualquer fator que venha a impedir a conclusão do objetivo. Pode-se dizer que o Scrum Master atua como um firewall entre a equipe e qualquer fator desestabilizador. Outro de seus papéis importantes é assegurar que a equipe esteja utilizando corretamente as práticas de Scrum e motivada a atingir o foco principal do sprint.

O Scrum está sendo utilizado no gerenciamento de projetos em alguns fabricantes de software e produtos de consumo, que atingiram resultados bastante positivos usando equipes pequenas e multidisciplinares, como é o caso da Microsoft, Google, Nokia e Yahoo. No Brasil a Globo.com e a UOL são exemplos de empresas que estão com as suas áreas de desenvolvimento funcionando 100% com Scrum (IMASTERS, 2009).

Baseado nas experiências de empresas que utilizam o Scrum no processo gerenciamento de projetos de software, este trabalho tem a finalidade de discutir as vantagens deste método de desenvolvimento que aos poucos está se tornando cada vez mais popular na produção de software no Brasil.

2. MATERIAL E MÉTODOS

O presente trabalho tem um enfoque exploratório e descritivo, realizado através de revisão bibliográfica e entrevistas com pessoas que têm experiência com o tema.

3. DISCUSSÃO E RESULTADOS

Além da Globo.com e da UOL, que passaram a utilizar o Scrum para gerenciar seus processos de desenvolvimento de software, outras empresas brasileiras mostraram interesse neste método ágil e começaram a utilizá-lo. Entre estas empresas estão a Knowtec, a H2J e a OnCast Technologies, em Santa Catarina, a InterBusiness Technologies, no Paraná, a Ci&T, em São Paulo, a Fundação Paulo Feitosa (FPF), no Amazonas, a FemaHosp, no Maranhão, a Powerlogic S.A., em Minas Gerais e a Living Consultoria, no Rio de Janeiro, além de muitas outras (SCRUM COMMUNITY WIKI, 2009).

Em Pernambuco existe um grande movimento para a difusão dos conceitos e dos benefícios do Scrum. Dentre as empresas que adotaram este método de desenvolvimento no Estado podem ser citadas o C.E.S.A.R, a SWQuality, a Provider e a PARTEC (SCRUM RECIFE, 2009).

Segundo apurou a pesquisa, o Scrum tem como principais vantagens, a velocidade de desenvolvimento, associada à diminuição dos bugs de implementação e à maior qualidade do produto final. Isto pode ser explicado pela maior interação da equipe durante o processo de construção do produto e pelo fato do método priorizar o software funcionando ao invés de uma documentação detalhada.

Page 3: Scrum - Principais Vantagens do Método no Processo de Desenvolvimento de Software

Além disto, o Scrum está adaptado a mudanças e possui grande colaboração do cliente no momento da avaliação de um ciclo de desenvolvimento e definição das novas prioridades. Isso é bem diferente da abordagem tradicional que segue um plano traçado no início do projeto e o cliente participa do processo apenas para as negociações e definição de requisitos.

Um dos itens que pode ser aplicado independente da metodologia, mas que no Scrum é um critério fundamental, é que as funcionalidades que agregam valor têm prioridade, isto porque o que acrescenta maior importância ao negócio do cliente deve ser finalizado primeiro.

Outro ponto positivo identificado pela pesquisa é que nos ambientes de desenvolvimento onde o Scrum está empregado é maior a motivação dos programadores para atingir as metas traçadas no início do sprint. Este ponto está relacionado com a melhor visualização do projeto pela equipe, que passa a ter acesso a informações que antes eram de conhecimento apenas do gerente de projetos.

Boris Gloger, um famoso Scrum Trainer4, avalia o Scrum como sendo um processo mais produtivo, prazeroso e transparente e destaca a importância do espírito de equipe no processo de desenvolvimento de software para aumentar a rapidez na resolução de problemas e obtenção de resultados.

Para Jeff Sutherland, um dos criadores do Scrum, a principal vantagem do método está na capacidade de redução de custos e de bugs no processo de desenvolvimento. A prova disto está na “Systematic Software Engineering”, empresa em nível 5 de CMMI5 que vem utilizando o Scrum em projetos de todos os tipos e tamanhos, sendo a redução de custos por projeto estimada em 50% e a redução de defeitos nos produtos que podem chegar a 40% (SUTHERLAND; JAKOBSEN; JOHNSON, 2007).

4. CONCLUSÃO

Conclui-se que o Scrum é um modelo do processo de desenvolvimento ágil de software que tem como foco principal a resolução dos problemas e o sucesso do projeto baseados no trabalho em equipe. A velocidade com que o produto de software é entregue e a qualidade que apresenta é o que mais chama a atenção do cliente, enquanto a interação da equipe cria um ambiente de desenvolvimento mais transparente e produtivo.

O Scrum é extremamente ágil e flexível, definindo um processo de desenvolvimento de software iterativo e incremental, estabelecendo um conjunto de atividades de gerência que devem ser seguidas para garantir o sucesso do projeto, esforçando-se para eliminar qualquer tipo de barreira que venha a impedir o andamento das atividades.

Pela sua capacidade de adaptação, o método é muito útil em projetos em que existam constantes conflitos de interesses e necessidades. No entanto só é possível gerar bons resultados quando há o comprometimento de todos os membros da equipe.

O próprio cenário econômico mundial está em uma situação inconstante, e o processo de desenvolvimento de sistemas precisa apoiar mudanças e ocorrer de forma rápida e dinâmica, evitando ao máximo o desperdício de tempo e de recursos. Ken Schwaber, em seu livro The Enterprise and Scrum, afirma que cerca de 50% do tempo do projeto é gasto com requisitos, arquitetura e especificações, sendo isso tudo feito antes de se construir qualquer funcionalidade. No entanto, 35% dos requisitos mudam e 65% das funcionalidades descritas pelos requisitos nunca ou raramente serão utilizadas.

O Scrum defende que a produção da documentação deve ser estritamente necessária para ajudar no desenvolvimento do projeto (INFOQ, 2009). O resultado final do processo de desenvolvimento deve ser um software que seja realmente útil para o cliente.

5. AGRADECIMENTOS

Agradecemos a Jeff Sutherland e Boris Gloger pelas respostas referentes ao contato por e-mail6.

4 Profissional qualificado para emitir certificações Scrum.5 Modelo de Capacidade e Maturidade do Processo de Desenvolvimento de Software.6 Entrevistas concedidas por e-mail no dia 31/05/2009.

Page 4: Scrum - Principais Vantagens do Método no Processo de Desenvolvimento de Software

6. REFERÊNCIAS

ALMEIDA, R. R. Processo de Desenvolvimento de Software, 2007. Disponível em <http://www.rodrigor.com/disciplinas>. Acesso em 28 jun. 2009.

SOMMERVILLE, I. Engenharia de Software. 8.ed, São Paulo: Editora Addison-Wesley, 2007.

FREITAS, H. R.; MIRANDA, J. M. Metodologias Ágeis para o Desenvolvimento de Software, Scrum e Extreme Programming X Metodologias Tradicionais RUP. Universidade Cândido Mendes – Campos, RJ, Brasil, 2008.

IMASTERS. Gerenciamento de Projetos Web - Vamos de SCRUM!. Disponível em: <http://imasters.uol.com.br/artigo/7240/gerencia/gerenciamento_de_projetos_web_-_vamos_de_scrum/> Acesso em: 02 maio 2009.

SCRUM COMMUNITY WIKI. Firms Using Scrum. Disponível em: <http://scrumcommunity.pbworks.com/Firms-Using-Scrum> Acesso em: 28 jun. 2009.

SCRUM RECIFE. Listas. Disponível em: <http://www.scrum.org.br/listas> Acesso em: 28 jun. 2009.

SUTHERLAND, J.; JAKOBSEN, C. R.; JOHNSON, K. Scrum and CMMI Level 5: The Magic Potion for Code Warriors. IEEE Computer Society, USA, 2007.

INFOQ. Scrum e a Crise Mundial - Por que Scrum é a melhor opção para projetos em tempos de crise? Disponível em: < http://www.infoq.com/br/articles/scrum-crise-mundial> Acesso em: 28 jun. 2009.