You are on page 1of 8

UNES Faculdade do Esprito Santo Coordenao do Curso de Sistemas de Informao

ABC da pesquisa cientfica

Scrum em desenvolvimento distribudo de software

Resumo: Ao longo dos ltimos anos, empresas de desenvolvimento de software tem optado pela forma distribuda na realizao de seus projetos, com isso indispensvel utilizao de metodologias geis com o intuito de atender a essa grande demanda, reduzir custos e otimizar assim o prazo de entrega desses projetos. Portanto, este trabalho objetiva analisar o desenvolvimento distribudo de software associado ao mtodo gil Scrum. Palavras-chave: Metodologias geis; Desenvolvimento distribudo; Scrum. 1. Introduo Atualmente, com o crescimento contnuo do desenvolvimento de software por equipes distribudas e devido grande competitividade do mercado e aos prazos cada vez mais restritos impostos por seus clientes, diversas empresas de desenvolvimento de software tem optado por metodologias mais geis para gesto do desenvolvimento de software. Sendo assim, a utilizao do Scrum como metodologia gil, vem otimizando ainda mais a entrega do produto de software aos clientes, tal como a reduo do custo para o desenvolvimento do mesmo. Boehm (2006), afima que estamos vivendo uma tendncia para o desenvolvimento gil de aplicaes devido a um ritmo acelerado de mudanas e inovaes na tecnologia da informao, em organizaes e no ambiente de negcios. Neste contexto, o presente trabalho apresenta o Scrum como metodologia gil no desenvolvimento de aplicaes em sistemas distribudos. O artigo estruturado conforme discutido a seguir. Na seo 2 apresenta-se uma viso geral do desenvolvimento distribudo de software. Na seo 3 apresentada uma descrio geral do Scrum. Na seo 4 so apresentadas conceitos sobre metodologias geis. A seo 5 descreve o Scrum como metodologia gil no desenvolvimento de software distribudo, a seo 6 apresenta as concluses finais e finalmente na seo 7 as referncias bibliogrficas. 2. A distribuio no desenvolvimento de software Atualmente, notvel que o nmero de empresas que esto distribuindo seus processos de desenvolvimento de software ao redor do mundo cada vez mais significativo. Assim, essas empresas visam obter vantagens competitivas associadas ao custo, qualidade e flexibilidade no desenvolvimento de software, buscando um aumento de produtividade, assim como, diminuio de riscos (SENGUPTA, 2006).

UNES Faculdade do Esprito Santo Coordenao do Curso de Sistemas de Informao

ABC da pesquisa cientfica

Segundo Andrew Tanenbaum (2007), sistemas distribudos uma "coleo de computadores independentes que se apresenta ao usurio como um sistema nico e consistente". Um sistema distribudo permite a comunicao e a troca de informaes de variadas aplicaes em diferentes localidades. Essa aplicao no sistema distribudo pode ser dividida em diferentes partes e ser processada em diversos ncleos e processamento. Devido crescente demanda no desenvolvimento de softwares e a falta de recursos capacitados, o mercado global de software vem buscando alternativas para suprir essas necessidades. Com isso organizaes esto buscando desenvolver software de forma distribuda, com equipes geograficamente distantes entre si (ZANONI, 2002). Cada organizao de acordo com a atividade a ser realizada, tem sua prpria estratgia de distribuio. Segundo Carmel (1999), o DDS vem causando um grande impacto no apenas no mercado propriamente dito, mas na maneira como os produtos de software tm sido modelados, construdos, testados e entregues para os clientes. Destaca-se tambm que trabalhar com DDS um dos maiores desafios que o atual ambiente de negcios apresenta do ponto de vista do processo de desenvolvimento de software. Zanoni (2002) afirma que a distribuio geogrfica de recursos e investimentos, surge uma nova tendncia de desenvolvimento de software, em que usurios e equipes de desenvolvimento esto em locais fsicos diferentes, s vezes, com culturas diferentes. O desenvolvimento distribudo de software, incluindo a terceirizao, subcontratao e parcerias, tornou-se uma realidade empresarial comum. Com o intuito de diminuir custos, proporcionar a contratao de mo-de-obra qualificada e aumentar a produtividade, o desenvolvimento distribudo de software vem proporcionar um maior poder de competitividade entre as organizaes. Fatores como a evoluo e maior acessibilidade a recursos de telecomunicao, a formao de equipes virtuais para explorar as oportunidades de mercado, o surgimento de novas ferramentas de desenvolvimento, a necessidade de possuir recursos globais para utilizar a qualquer hora e as vantagens de estar perto do mercado local, tm contribudo muito para o crescimento do DDS. A complexidade no desenvolvimento de um projeto e a necessidade de mo-de-obra qualificada, obriga que ele seja realizado por diferentes empresas em diversas localidades. Com isso se faz necessrio a utilizao do desenvolvimento distribudo de software (DDS). 3. Metodologias geis Em Fevereiro de 2001, na The Lodge da estao de esqui Snowbird nas montanhas Wasatch em Utah, EUA, um grupo de dezessete representantes de metodologias de desenvolvimento de software se reuniram por dois dias para levantar pontos em comum entre suas metodologias. A partir dessa reunio, foi criado o Manifesto gil (MANIFESTO GIL, 2001), onde foram definidos os seguintes valores geis:

UNES Faculdade do Esprito Santo Coordenao do Curso de Sistemas de Informao

ABC da pesquisa cientfica

Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o ns mesmos e ajudando outros a fazerem o mesmo. Atravs deste trabalho, passamos a valorizar: Indivduos e interaes mais que processos e ferramentas. Software em funcionamento mais que documentao abrangente. Colaborao com o cliente mais que negociao de contratos. Responder a mudanas mais que seguir um plano.

Ou seja, mesmo havendo valor nos itens direita, valorizamos mais os itens esquerda. (MANIFESTO GIL, 2001). Definir um processo como gil significa permitir que a equipe possa adaptar e aperfeioar tarefas, manter apenas os trabalhos essenciais implementados, simplificar os trabalhos essenciais, fazer entregas incrementais do software funcionando ao cliente no menor tempo possvel (PRESSMAN, 2006). Com isso criou-se metodologias geis para agilizar a entrega rpida de cdigo que agregue valor ao cliente por meio do desenvolvimento em pequenos ciclos. Para atingir esse objetivo, esses mtodos so focados na contnua interao entre desenvolvedores e clientes, que garantem que o software atenda as necessidades de mudana dos requisitos do cliente (PAETSCH, 2003). 4. Viso Geral do Scrum Criado em 1996 por Ken Schwaber e Jeff Sutherland, o Scrum teve como inspirao inicial um artigo de Takeuchi e Nonaka (TAKEUCHI; NONAKA, 1986), intitulado "The New Product Development Game" (SCHWABER; BEEDLE, 2002). Scrum uma metodologia gil de desenvolvimento de software, seu nome est relacionado a uma atividade que ocorre durante o jogo de rugby onde o grupo de jogadores se juntam ao redor da bola e trabalham juntos para mover a bola pelo campo. (PRESSMAN, 2006). Destacando-se das demais metodologias geis por dar uma maior importncia ao gerenciamento do projeto, o Scrum trata o desenvolvimento de software como um conjunto de processos empricos, pois acredita que a complexidade do desenvolvimento de software, por ser uma atividade criativa e de trabalho intelectual intenso, leva a resultados imprevisveis (SCHWABER; BEEDLE, 2002; SCHWABER, 2004). Como intuito de encontrar uma forma de trabalho dos membros da equipe para desenvolver software de forma mais flexvel e em um ambiente em constante mudana, o Scrum reintroduz as idias de flexibilidade, adaptabilidade e produtividade. Segundo Schwaber (2004) o Scrum realiza atividades de monitoramento e feedback, em geral, reunies rpidas e dirias com toda a equipe, visando identificao e correo de quaisquer deficincias ou impedimentos no processo de desenvolvimento.

UNES Faculdade do Esprito Santo Coordenao do Curso de Sistemas de Informao

ABC da pesquisa cientfica

O Scrum trata o processo de desenvolvimento de software de forma imprevisvel, avaliando constantemente o que desenvolvido e se adaptando rapidamente s mudanas que surgem no decorrer do projeto para que possa manter o controle (HIGHSMITH, 2002). Os princpios do Scrum norteiam o processo de desenvolvimento de software que tem as seguintes atividades: levantamento de requisitos, anlise, projeto, evoluo e entrega. (PRESSMAN, 2006). Os princpios do Scrum so compatveis com o Manifesto gil (MANIFESTO GIL, 2001): Pequenas equipes O processo precisa ser adaptado para garantir que o melhor produto seja produzido Produzir incrementos de software Trabalho de desenvolvimento dividido Teste e documentao so realizados durante todo o desenvolvimento. De acordo com Schwaber (2004), o Scrum implementa um esqueleto iterativo e incremental atravs de trs papis principais: Product Owner: representa os interesses de todos no projeto Time: desenvolve as funcionalidades do produto ScrumMaster: garante que todos sigam as regras e prticas do Scrum, alm de ser o responsvel por remover os impedimentos do projeto. O fluxo de desenvolvimento detalhado do Scrum mostrado na Figura 1.

Figura 1. Viso geral do processo do Scrum (adaptada de [Gloger, 2007])

De acordo com Schwaber (2004), um projeto no Scrum se inicia com uma viso do produto que ser desenvolvido. Na viso so listadas as caractersticas do produto estabelecidas pelo cliente, alm de algumas premissas e restries. Em seguida, o Product Backlog criado contendo a lista de todos os requisitos conhecidos. O Product Backlog ento priorizado e dividido em releases.

UNES Faculdade do Esprito Santo Coordenao do Curso de Sistemas de Informao

ABC da pesquisa cientfica

Schwaber (2004) explica que cada Sprint inicia-se com uma reunio de planejamento (Sprint Planning Meeting), na qual o Product Owner e o Time decidem em conjunto o que dever ser implementado (Selected Product Backlog). A reunio dividida em duas partes. Na primeira parte (Sprint Planning 1) o Product Owner apresenta os requisitos de maior valor e prioriza aqueles que devem ser implementados. O Time ento define colaborativamente, o que poder entrar no desenvolvimento da prxima Sprint, considerando sua capacidade de produo. Na segunda parte (Sprint Planning 2), o time planeja seu trabalho, definindo o Sprint Backlog, que so as tarefas necessrias para implementar as funcionalidades selecionadas no Product Backlog. Nas primeiras Sprints, realizada a maioria dos trabalhos de arquitetura e de infra-estrutura. A lista de tarefas pode ser modificada pelo Time ao longo da Sprint, e as tarefas podem variar entre quatro e dezesseis horas para a sua concluso. Durante a execuo das Sprints, diariamente o time faz uma reunio de quinze minutos para acompanhar o progresso do trabalho e agendar outras reunies necessrias. 5. Scrum como metodologia gil o desenvolvimento de software distribudo O Scrum, assim como outras metodologias geis, enfatiza a interao do time atravs de comunicao constante e face-to-face. No entanto, o desenvolvimento por equipes remotas tem apresentado um crescimento contnuo, particularmente visvel desde a ltima dcada (DAMIAN; MOITRA, 2006). Entre as razes para a adoo por times distribudos, destaca-se a facilidade de envolvimento de especialistas em reas chave, flexibilidade para criao e desativao de equipes de trabalho e a reduo de custos de locomoo. No ambiente de desenvolvimento de software fundamental a utilizao de ferramentas, tcnicas e metodologias que auxiliem na comunicao entre as equipes fisicamente distribudas para a execuo das atividades. Segundo Boehm (2003), mtodos, prticas e tcnicas para o desenvolvimento gil de projetos prometem aumentar a satisfao do cliente. A combinao de metodologias geis com DDS est crescendo no mercado. Soares et al. (2007), em seu estudo, apresenta a utilizao do mtodo gil, Scrum, em um processo de desenvolvimento de software open source, com fortes caractersticas de DDS. Portanto, notvel que a utilizao de DDS com Scrum, pode ser considerado um processo simples e objetivo, focado nas necessidades do cliente, e no, na documentao do projeto, com isso foi apresentado resultados satisfatrios de acordo com os estudos de Soares et al. (2007). O DDS tem como objetivo acelerar o desenvolvimento e com isso reduzir o tempo de entrega, trazendo assim, uma maior satisfao para o cliente. Essa reduo do tempo de desenvolvimento pode ser obtida atravs de equipes trabalhando em paralelo, assim como equipes trabalhando alm do fuso-horrio. Alm disso, as empresas podem formar parcerias com o objetivo de explorar mercados maiores, alm da facilidade em selecionar profissionais com competncias especficas em qualquer espao geogrfico (HERBSLEB, 2001).

UNES Faculdade do Esprito Santo Coordenao do Curso de Sistemas de Informao

ABC da pesquisa cientfica

Facilitar a comunicao, a coordenao e a cooperao entre equipes distribudas tm sido uma grande preocupao no gerenciamento de projetos de software atualmente. Assim sendo, o Scrum tem sido uma nova abordagem para gesto de projetos de desenvolvimento de software. Caracterizado como uma metodologia gil, utiliza conceitos que procuram otimizar ainda mais a entrega peridica de incrementos funcionais do produto aos clientes. Entre as principais caractersticas do Scrum esto a organizao dos recursos em equipes pequenas e multidisciplinares, as iteraes dos incrementos (chamadas de Sprints) normalmente mais curtas e o forte envolvimento do cliente durante todo o processo de desenvolvimento. A utilizao de metodologias geis como o Scrum tem sido uma forma adotada por muitas empresas para contornar os problemas enfrentados por times distribudos, como a falta de comunicao e gerenciamento. Sendo que para que se tenha um ambiente realmente produtivo, necessrio acompanhar o trabalho dos times, sendo importante dar nfase comunicao e interao entre os membros da equipe (SUTHERLAND, 2008). Segundo Schwaber (2004), o Scrum possui um conjunto de prticas que torna tudo isso visvel. Atualmente, uma das metodologias mais utilizadas pela sua estrutura simples, de fcil aprendizado, com papis claramente definidos (Schwaber, 2004). 6. Concluses Este artigo apresentou um contexto do desenvolvimento distribudo de software apoiado pela metodologia gil Scrum. Atualmente a necessidade do mercado por sistemas complexos em um curto espao de tempo, requisitos que mudam a todo instante e a dificuldade na obteno de recursos humanos capacitado, as empresas vem buscando o desenvolvimento gil e distribudo a fim permitir manter o foco na entrega do produto, no menor tempo possvel, permitindo rpida e contnua inspeo do software em produo, atendendo assim as necessidades do negcio. Com isso o desenvolvimento distribudo e o Scrum vm ganhando espao no mercado de software. Por contar com equipes que se autoorganizam a fim de definir a melhor maneira de entregar as funcionalidades de maior prioridade, dando assim um forte avano na construo do projeto, o Scrum vem colaborando muito com o mercado atual de desenvolvimento de software. A principal contribuio deste artigo est na descrio do mtodo gil Scrum integrado ao desenvolvimento de software distribudo. Os resultados obtidos at o presente momento propiciam expectativas de trabalhos futuros, onde se pretende criar um projeto implantando a metodologia gil Scrum numa fbrica de desenvolvimento de sistemas distribudos a fim de otimizar os processos e dar melhoria continua a empresa. 7. Referncias
BERTHOLDO L.; BARBAN L. Adaptao do Scrum ao Modelo Incremental. Universidade Estadual de Campinas - Faculdade de Tecnologia, So Paulo, 2010.

UNES Faculdade do Esprito Santo Coordenao do Curso de Sistemas de Informao

ABC da pesquisa cientfica

BOEHM, B. and Turner, R., Balancing Agility and Discipline A Guide for the Perplexed, AddisonWesley, 2003. BOEHM, B. (2006), A View of 20th and 21st Century Software Engineering, ICSE 2006. CARMEL, E. Global Software Teams Collaborating Across Borders and Time- Zones. Prentice Hall, USA, 1999, 269p. DAMIAN, D.; MOITRA, D. Guest Editors' Introduction: Global Software Development: How far Have We Come? IEEE Software, 2006. 23(5), pp.1719. GLOGER, B. The Zen of Scrum. Disponvel em: http://www.glogerconsulting.com. Acessado em 15 de junho de 2011. HERBSLEB, J. D.; MOITRA, D. (2001). Guest editors introduction: global software Development. IEEE Software. HUZITA, M. et al. Um Ambiente de Desenvolvimento Distribudo de Software- DiSEN. I Workshop de Desenvolvimento Distribudo de Software, Paran, 2007. LUNA, A. et al. Desenvolvimento Distribudo de uma Aplicao de Telessade com a Metodologia gil SCRUM. X Congresso Brasileiro de Informtica em Sade. So Paulo, 2008. Manifesto para o desenvolvimento gil de software, 2001. Disponvel em http://manifestoagil.com.br/. Acesso 10 de junho de 2011 O Manifesto gil. Disponvel em: http://scrumemacao.com.br/web/. Acesso em 15 de junho de 2011. PAETSCH, F. Requirements Engineering in Agile Software Development. PhD thesis, University of Calgary, Calgary, Alberta, 2003. PRESSMAN, R. S. Engenharia de Software. 6 ed. Rio de Janeiro: McGraw-Hill, 2006. 40, 41, 60, 69, 70 p. SCHWABER, K., and Beedle, M., Agile Software Development With Scrum, Prentice Hall, 2002. SCHWABER, K. (2004), Agile Project Management With Scrum, Microsoft. SENGUPTA, B.; CHANDRA, S.; SINHA, V. A Research Agenda for Distributed Software Development. In: 28th ICSE, Xangai, China. SIQUEIRA, F.; SILVA, P., As Caractersticas do Desenvolvimento Distribudo de Software Departamento de Engenharia de Computao e Sistemas Digitais Escola Politcnica, So Paulo,2004. SOARES, M. et al. Metodologias geis Extreme Programming e Scrum para o Desenvolvimento de Software. Universidade Presidente Antnio Carlos, Minas Gerais, 2004. SOARES, F. et al. Adoo de Scrum em uma Fbrica de Desenvolvimento Distribudo de Software. I Workshop de Desenvolvimento Distribudo de Software. Joo Pessoa, 2007. SUTHERLAND, J. Fully Distributed Scrum: The Secret Sauce for Hyperproductive Offshored Development Teams. 2008. IEEE Software. TAKEUCHI, H.; NONAKA, I. The New Product Development Game. Harvard Business Review, 1986. Janeiro-Fevereiro, pp137-146. TANENBAUM, A. Distributed Systems: Principles and Paradigms, 2007.

UNES Faculdade do Esprito Santo Coordenao do Curso de Sistemas de Informao

ABC da pesquisa cientfica

TRINDADE, D. Uma ferramenta para gerenciar a comunicao em um ambiente distribudo de desenvolvimento de software . Dissertao apresentada ao Programa de Ps-Graduao em Cincia da Computao da Universidade Estadual de Maring. Paran, 2008. ZANONI, R. Modelo de Gerncia de Projeto Baseado no PMI para ambientes de Desenvolvimento de Software Fisicamente Distribudo. Dissertao de Mestrado, PUC/RS, Porto Alegre, RS, Brasil, 2002.

You might also like