SlideShare ist ein Scribd-Unternehmen logo
1 von 4
Downloaden Sie, um offline zu lesen
Adoção de Metodologias Ágeis para Produção de Jogos Sociais com
                                Times Distribuídos
         João E. Ambrósio Gomes                      Dhiego A. de Oliveira Martins              Jamilson Batista Antunes
         Lenin E. Abadié Otero                       Vinicius Cardoso Garcia                    Silvio Lemos Meira

             Centro de Informática, Universidade Federal de Pernambuco (UFPE) - Recife - PE - Brasil

Resumo                                                                 com times distribuídos para desenvolvimento de jogos
                                                                       sociais; a Seção 5 descreve os principais problemas
A utilização de metodologias ágeis para desenvolvimento de             enfrentados e as lições aprendidas; e finalmente, a Seção 6
software tem se tornado uma demanda em times geograficamente           apresenta as conclusões.
distribuídos. Este trabalho tem por objetivo relatar as experiências
obtidas em uma fábrica de software open source para
desenvolvimento de jogos sociais, adaptando a metodologia Scrum
                                                                       2. Visão Geral de Desenvolvimento de
para o processo de desenvolvimento distribuído.                        Jogos Sociais Open Source
Palavras chave: Metodologias Ágeis, Desenvolvimento Distribuído            Segundo Raymond [2], software open source é
de Software, Jogos Sociais.                                            desenvolvido por times auto-organizados e distribuídos, que
                                                                       raramente se reúnem presencialmente, coordenando suas
Contato dos autores:                                                   atividades através de ferramentas específicas. O mesmo autor,
{jeag, daom, jba, leao, vcg, srlm, ispj}@cin.ufpe.br                   ainda descreve um trabalho relevante sobre o processo de
                                                                       software open source quando associa o desenvolvimento nas
1. Introdução                                                          comunidades de software livre, desprovido de qualquer
                                                                       processo formalizado, a um “Bazar” no qual as contribuições
Com o crescente mercado de jogos sociais e as constantes               ocorrem ad hoc. Enquanto que o modelo de desenvolvimento
exigências de mais recursos para conseguir atrair um maior             tradicional de software está associado a uma “Catedral” e
número de usuários, empresas necessitam expandir a                     possui um processo formal bem definido.
capacidade      de     produção     e   descentralização   no              De acordo com Lovell [3], jogos sociais são aplicativos de
desenvolvimento dos seus projetos, uma vez que o                       entretenimento que utilizam as plataformas da web social,
desenvolvimento centralizado de software tem se tornado                com o objetivo de se propagarem. Estes apresentam como
cada vez mais oneroso e menos competitivo.                             principais características a formação de “meta-redes” entre os
   Como vantagens desse novo modelo de desenvolvimento                 jogadores (adicionar amigos nas redes sociais),
de jogos têm-se benefícios, como a redução de custos e ganho           compartilhamento de pontuações, geração de desafios e
de produtividade. Contudo, como grande parte dos desafios              competições entre os “adversários virtuais”.
na Engenharia de Software não é limitada apenas a aspectos                 Conforme descrito por González e Robles em [5], muitos
técnicos [1], o desenvolvimento distribuído de software                são os benefícios do modelo de desenvolvimento open
(DDS) ainda deixa muitas dúvidas quanto a sua real eficácia,           source, tais como: (i) realização dos releases mais frequentes;
como, por exemplo: times distribuídos têm a mesma                      (ii) baixo custo dos projetos, visto que desenvolvedores e
eficiência que times centralizados? A comunicação                      testadores trabalham de forma voluntária; e, (iii) alta
distribuída é tão eficiente quanto à comunicação síncrona? Os          qualidade e confiabilidade, visto que são muitas pessoas
processos de software atuais são capazes de lidar com as               revisando e testando o mesmo código em arquiteturas e
características do desenvolvimento distribuído enquanto                ambientes distintos.
garantem a qualidade do produto?
     Neste contexto é possível visualizar os métodos ágeis             3. Scrum
como solução para auxiliar no desenvolvimento distribuído de
jogos, acelerando o rítmo no desenvolvimento e organização
                                                                       O Scrum é um framework para criação de produtos
dos times e ganhando produtividade. Como exemplo, tem-se
                                                                       complexos que vem sendo utilizado desde a década de 90 [6],
um framework baseado em princípios ágeis, denominado
                                                                       e destaca-se dos métodos ágeis existentes pela maior ênfase
Scrum, no qual foi projetado para acrescentar foco,
                                                                       dada ao gerenciamento do projeto. O Scrum é formado por
comunicação, clareza, e transparência para desenvolvimento
                                                                       um conjunto de boas práticas de gestão que admite ajustes
de software.
                                                                       rápidos, acompanhamento e visibilidade constantes e planos
   Com base nisso, este trabalho apresenta a experiência do
                                                                       realísticos. Segundo Shuwaber e Sutherland [7], este
desenvolvimento de um jogo social multiplaforma utilizando-
                                                                       framework de processo ágil se fundamenta na teoria de
se a metodologia Scrum para auxilio no gerenciamento de
                                                                       controle de processos empíricos, utiliza uma abordagem
times distribuídos, ferramentas e técnicas apropriadas para
                                                                       iterativa e incremental para aperfeiçoar a previsibilidade e
gerenciamento e organização dos times.
                                                                       controlar ímpetos.
   Este trabalho está organizado conforme se segue: a Seção 2
                                                                          Este framework baseia-se ainda em princípios como:
apresenta uma visão geral de desenvolvimento de jogos
                                                                       equipes pequenas de, no máximo, sete pessoas; requisitos que
sociais open source; a Seção 3 descreve a metodologia
                                                                       são pouco estáveis ou desconhecidos; e iterações curtas.
Scrum; a Seção 4 apresenta o estudo de caso: modelo ágil
Consiste em um conjunto formado por Times de Scrum e seus         em ambientes web ou móveis que utilizam o sistema
papéis associados, Time-Boxes (eventos com duração fixa),         operacional Android. O objetivo principal do jogo é salvar o
Artefatos e Regras.                                               pombo correio, impedindo a sua captura enquanto leva
   Os Times Scrum são auto-gerenciáveis, multidisciplinares       mensagens à rede social [14].
e trabalham em interação, visando otimizar flexibilidade e           O presente estudo é apresentado seguindo os tópicos:
produtividade. Cada Time de Scrum possui três papeis: 1) O        metodologia Scrum, práticas da metodologia, organização e
Scrum Master: um líder, um facilitador; responsável por           gerenciamento das fases na fábrica, e por fim a divisão dos
garantir que o processo será compreendido e acompanhado;          times.
2) O Product Owner, responsável por elevar ao máximo o
valor realizado pelo Time de Scrum, serve como ponte entre o      4.1 Metodologia
cliente e o fornecedor; 3) o Time, que tem por função
trabalhar na execução das tasks que resultarão em uma             Segundo Keith [6] a utilização da metodologia Scrum para
release.                                                          desenvolvimento de jogos, apresenta características
   Os principais artefatos do Scrum [7] são: Product Backlog,     específicas, e cada Sprint é composta pelas iterações:
que consiste em uma lista priorizada de tudo que pode ser         Concept, Design, Coding, Asset Creation, Debugging,
necessário no produto (requisitos); Sprint Backlog, uma lista     Optimizing, Tuning and Polishing.
de tarefas para transformar o Product Backlog, por uma               As iterações em uma sprint são organizadas dentro do ciclo
Sprint, em um incremento do produto potencialmente                de vida em cascata. Esta foi uma alternativa adotada pela
entregável; Um burndown é uma medida do backlog restante          fábrica MOSAIC com base nos projeto de jogos
pelo tempo; Um burndown de release mede o Product                 desenvolvidos pelo C.E.S.A.R (Centro de Estudos e Sistemas
Backlog restante ao longo do tempo de um plano de release;        Avançados do Recife).
E ainda um Burndown de Sprint que mede os itens do Sprint            O processo adotado segue as atividades (levantamento de
Backlog restante ao longo do tempo de uma Sprint. Já as           requisitos, análise e projeto, desenvolvimento, testes e
Regras fazem a ligação entre os Time-Boxes, os Papéis e os        operação), bem como a aplicação de práticas de testes de
Artefatos do Scrum.                                               software, como, por exemplo, TDD (Test Driven
   Ao final de cada Sprint é realizada a reunião de revisão       Development). É apresentada na Fig. 1 uma visão geral do
(Sprint Review Meeting) para que o Team apresente o               ciclo de trabalho.
resultado alcançado na interação ao Product Owner, para que          Nos próximos tópicos serão abordadas as práticas adotadas
ocorra a inspeção e adaptação das funcionalidades e do            do Scrum e organização dos times, bem como a adaptação das
projeto. Em seguida, Scrum Master conduz a reunião de             ferramentas de gerenciamento e configuração para essa
retrospectiva (Sprint Retrospective Meeting), onde os             metodologia.
participantes relatam quais foram os impedimentos
apresentados durante a sprint, isto com o objetivo de melhorar
o processo e/ou produto para a próxima Sprint. Na seção 4
apresentaremos com detalhes a forma de planejamento do
Scrum durante o desenvolvimento do jogo Catch the Pigeon e
a sua adaptação para times distribuídos.

4. Estudo de Caso: Modelo Ágil com Times
Distribuídos para Desenvolvimento de
Jogos Sociais
O estudo foi realizado na fábrica de software MOSAIC
(Mobile Social Applications in the Cloud). A fábrica é
formada por 23 (vinte e três) alunos do curso de Pós-                  Fig. 1. Visão geral do ciclo de trabalho da Fábrica MOSAIC.
Graduação do Centro de Informática da Universidade Federal
de Pernambuco, dentre eles mestrandos e doutorandos que           4.2 Práticas
fazem parte da estrutura organizacional da fábrica. Os alunos
estão distribuídos de forma descentralizada, com equipes          Seguindo a organização proposta pelo Scrum para o
auto-organizadas e auto-gerenciáveis. Essa estrutura é            gerenciamento, o processo da Fábrica MOSAIC é composto
composta por um Comitê Gestor, responsável pelas principais       das seguintes práticas:
decisões estratégicas da Fábrica, times de produção liderados        Sprint Planing Meeting : reunião com o objetivo de definir
pelo Scrum Master, o Product Owner e os Stakeholders.             e identificar os requisitos que serão desenvolvidos na sprint.
   O projeto consiste no desenvolvimento de um jogo social e         Sprint: os itens definidos no Product Backlog serão
open source denominado Catch the Pigeon [14]. O jogo              implementados pela equipe, em períodos de tempo com
utiliza os serviços da rede social facebook, e foi desenvolvido   duração de no máximo duas semanas (14 dias).
para mais de uma plataforma, o que permite a sua execução
Daily Scrum: reuniões diárias, com duração de                       Optimizing: este estágio visa melhorar a aplicação de
aproximadamente 5 minutos, entre os envolvidos do projeto.          forma incremental, procurando corrigir eventuais problemas
Através dessa reunião é possível ter conhecimento das               relacionados a requisitos não-funcionais, requisitos gráficos,
atividades que estão sendo realizadas e da existência de um         requisitos de inteligência, entre outros.
possível impedimento.                                                  Tuning and polishing: neste estágio, características
   Sprint Review Meeting: reunião para revisão dos resultados       relacionadas ao game design, por exemplo, podem ser
obtidos na Sprint por parte dos envolvidos no projeto. Caso         refinadas para melhorar a experiência do usuário. Esta fase é
novos requisitos surjam durante a revisão, estes são                dedicada a verificar o quão divertido é o jogo, ajustando a
adicionados ao Product Backlog para serem desenvolvidos na          jogabilidade quando preciso. Tarefas de “polimento” podem
próxima Sprint.                                                     ser alocadas no Backlog.
   Release: uma versão do jogo com melhorias agregadas e                Todas estas fases são realizadas durante o ciclo de
potencialmente     entregável,      que       implementa       as   desenvolvimento de jogos adotado pela fábrica MOSAIC.
funcionalidades previstas para uma determinada sprint.              Apesar de ser baseada no modelo cascata, a abordagem é
   Sprint Retrospective: uma reunião realizada pela equipe na       distinta quando aplicada a metodologia Scrum para
sequência da revisão da sprint, para refletir sobre a eficácia da   desenvolvimento de jogos, pois esse ciclo se repete a cada
equipe no desenvolvimento da Sprint, analisando formas de           Sprint, já no modelo tradicional executa-se uma única vez.
melhorar as suas práticas. Na fábrica MOSAIC, este ítem
envolve o scrum master de cada time (scrum de scrum’s),
juntamente ao Comitê Gestor, Product Owner e Stakeholders.

4.3 Fases

Em função das características específicas da aplicação, as
sprints são compostas pelas atividades ilustradas na Fig. 2 e
descritas a seguir:
   Concept: idéias são geradas, possivelmente prototipadas, e
textualizadas em uma base regular. Exemplo: a criação do
documento de game design, com a descrição do core do jogo
(roteiro, cenários, personagens) e especificação de requisitos.
   Design: projeto das ideias geradas, estudo de viabilidade.
Neste estágio, além de projetar como as funcionalidades serão                  Fig. 2 - Atividades que compõem cada sprint.
implementadas, pode-se projetar testes de unidade para cada
uma delas. Exemplo: os programadores irão definir o projeto         4.4 Times
(classes, métodos, relacionamentos, entre outros) de como as
ações referentes ao vôo dos personagens serão implementadas         Além dos papéis inerentes ao processo Scrum, foram
em cada plataforma.                                                 incorporados papéis específicos ao processo de
   Coding: codificação de acordo com o que foi projetado na         desenvolvimento de jogos. Estes papéis compõem a equipe de
fase anterior. Exemplo: codificação das ações relacionadas ao       desenvolvimento do grupo de game design, Web-Móvel,
vôo das personagens, na linguagem específica de cada                podendo haver casos de intersecção:
ambiente (móvel e web). Com a utilização de TDD, os testes             Arte Designer: responsável por desenhar personagens,
de unidade e os seus códigos associados são construídos em          cenários, instrumentos do jogo, efeitos resultantes das ações
conjunto.                                                           do jogador, ícones e menus do jogo.
   Asset creation: componentes relacionados à arte (como as            Áudio Designer: será responsável por toda sonorização do
figuras das personagens, cenários, entre outros), aos sons do       jogo, desde sons emitidos pelos personagens, aos sons das
jogo (quando uma personagem é atingida ou morre, por                armas e demais efeitos pertencentes ao jogo.
exemplo), e às animações (bater de asas das personagens,               Animador: responsável por criar e manter as animações
explosões, entre outras), ou implementações obtidas a partir        dos elementos existentes no jogo.
da codificação, podem ser componentes (ou pacotes) que                 A equipe da fábrica encontra-se organizada em subgrupos
agregam determinadas funcionalidades a aplicação. Exemplo:          com times constituídos de 2 a 8 membros. Os times
um pacote que implementa o vôo de uma determinada                   selecionam o objetivo da sprint e especificam os produtos de
personagem, como um pombo do mal.                                   trabalho em conjunto.
   Debugging: busca minimizar a ocorrência de bugs nas                 Alguns times em particular atuam no apoio ao
funcionalidades implementadas, por meio da aplicação de             desenvolvimento. Esses times definem, compartilham e
testes, identificação e correção de defeitos. Os erros              melhoram continuamente processos, técnicas, padrões e
encontrados precisam ser corrigidos antes da implementação          ferramentas que apoiam os times, promovendo a capacitação
da funcionalidade ser categorizada como concluída.                  dos mesmos. É apresentado na Fig. 3 uma visão geral da
                                                                    organização da fábrica, seus times e papéis.
6. Conclusões

                                                                Este trabalho apresentou um estudo de caso sobre a aplicação
                                                                de métodos ágeis, baseado na abordagem proposta pelo
                                                                Scrum, em um processo para desenvolvimento de jogos socais
                                                                open source com times distribuídos. Relatou-se a experiência
                                                                adquirida durante todo o processo de adaptação da
                                                                metodologia Scrum para o processo de desenvolvimento
                                                                distribuído.
                                                                   O projeto teve duração de 5 (cinco) meses (entre fevereiro
                                                                e julho de 2011), durante este período foram criados 36 (trinta
                                                                e seis) itens de backlog e realizadas 303 (trezentos e três)
                                                                tarefas, dividas entre os times da fábrica MOSAIC.
             Fig. 3. Organização da Fábrica MOSAIC.                Apesar do Scrum não cobrir todas as características
                                                                especificadas para equipes distribuídas, foi possível fazer uso
   Ressaltando-se, ainda, que durante o desenvolvimento do
                                                                de diversos aspectos de desenvolvimento ágil sem
projeto, pode-se contar com a participação de colaboradores
                                                                comprometer os requisitos exigidos no projeto.
externos. Estes colaboradores foram avaliados pelo líder do
time em que o mesmo demonstrou interesse.
                                                                Referências
5. Problemas             Enfrentados          e       Lições
                                                                [1] Kontio, J., Höglund, M., Rydén, J. and Abrahamsson, P. (2004)
Aprendidas                                                      "Managing Commitments and Risks: Challenges in Distributed Agile
                                                                Development,". In Proceedings of the 26th International Conference on
                                                                Software Engineering, pp. 732-733.
   Ao longo do desenvolvimento do projeto foi percebido que         [2] RAYMOND, E. S. (1998) “The Cathedral and the Bazaar”.
nem todas as práticas do Scrum eram diretamente aplicadas       Disponível      em:     http://www.firstmonday.org/issues/issue3_3/raymond/.
ao contexto de desenvolvimento distribuído de software. A       Acesso em 15 Mai 2007.
seguir apresentam-se os maiores desafios para a utilização de       [3] LOVELL, Nicholas, WHAT IS A SOCIAL GAME?, 2011.
                                                                Disponível em: http://www.gamesbrief.com/2011/01/what-is-a-social-game/.
Scrum no desenvolvimento de jogos sociais open source com       Acesso em: 18 jun 2011.
times distribuídos e como foram solucionados:                       [4] POSEA, Vlad; BALINT, Mihaela; DIMITRIU Alexandru; IOSUP,
   ● O Scrum defende a unidade da equipe de                     Alexandru. An Analysis of the BBO Fans Online Social Gaming Community,
      desenvolvimento. Isso está fortemente relacionado com     2010.
                                                                    [5] Gonzáles, J. e Robles, G.(2003) “Free Software Engineering : A Field
      a presença física da equipe e com iterações diárias. As   to Explore”, Upgrade - Software Engineering State of Art, Novática, volume
      equipes conseguiram superar o desafio de estar            IV, N. 4.
      geograficamente distribuídas com o uso sistemático de         [6] KEITH, Clinton. Agile Game Development with Scrum (Addison-
      fóruns, listas de discussões e ferramentas de             Wesley Signature Series. Editora: Addison-Wesley Professional; 1º ed, 2010.
                                                                384 pg.
      comunicação (videoconferências, chats, entre outros).         [7] SCHWABER, KEN e SUTHERLAND,JEFF. Scrum, fevereiro 2010.
   ● As reuniões diárias previstas no Scrum foram               Disponível                                                              em:
      substituídas por 2 (duas) reuniões semanais de cada       <http://www.scrum.org/storage/scrumguides/Scrum%20Guide%20-
      time, conforme o processo definido para a fábrica de      %20PTBR.pdf>. Acesso em: 17 mai. 2011.
                                                                    [8] ZANONI, R. Modelo de gerência de Projeto Baseado no PMI para
      software;                                                 ambientes de Desenvolvimento de Software Distribuído. Dissertação de
   ● O Scrum é focado em equipes auto-organizadas e auto-       Mestrado, PUC/RS, Porto Alegre, RS, Brasil, 2002.
      gerenciáveis, além de prever a questão motivacional           [9] AUDY, J.; PRIKLADNICKI, R. (2007). Desenvolvimento
      como principal aspecto de sucesso do projeto. Esses       Distribuído de Software: Desenvolvimento de software com equipes
                                                                distribuídas. Rio de Janeiro: Elsevier.
      mesmos aspectos puderam ser percebidos no                     [10] KOMI-Sirvo, S; TIHINEN M. (2005). Lessons Learned by
      desenvolvimento distribuído, onde a equipe poderia        Participants of Distributed Software Development. Journal Knowledge and
      integrar um membro externo.                               Process Management, vol. 12 n 2 p. 108 – 122.
   ● A preocupação com os requisitos não funcionais deverá          [11] CARMEL, E. Global Software Teams – Collaborating Across
                                                                Borders and Time Zones. Prentice Hall, EUA, 1999.
      ser constante por parte de todos os times envolvidos,         [12] PRIKLADNICKI, R. MuNDDoS Um Modelo de Referência para
      mas será mais observado pelo time de processo e game      Desenvolvimento Distribuído de Software. Dissertação de Mestrado,
      design.                                                   PUC/RS, Porto Alegre, RS, Brasil, 2003.
   Ao final do projeto teve-se como lições aprendidas as            [13]FREITAS, A. V. APSEE Global: a Model of Processes Manegement
                                                                of Distributed Software Processes. Faculdade de Informática – UFRS – RS –
ferramentas, métodos e processos para adaptação do Scrum        BRAZIL, 2005.
durante o desenvolvimento de um jogo social com times               [14] MOSAIC (2011). “Mobile Social Applications in the Cloud”, Maio,
distribuídos.     Proporcionando      um       gerenciamento    2011, Disponível em: <http://www.mosaic.eng.br>. Acesso em: 15 jun 2011.
descentralizado dos times envolvidos durante todo o
desenvolvimento do projeto.

Weitere ähnliche Inhalte

Was ist angesagt?

Práticas de Métodos Ágeis e Possibilidade de Execução em Ambiente de Trabalh...
Práticas de Métodos Ágeis e Possibilidade de Execução em Ambiente de  Trabalh...Práticas de Métodos Ágeis e Possibilidade de Execução em Ambiente de  Trabalh...
Práticas de Métodos Ágeis e Possibilidade de Execução em Ambiente de Trabalh...Silvio Gonçalves
 
Plano de projeto de software - SISCONI
Plano de projeto de software - SISCONIPlano de projeto de software - SISCONI
Plano de projeto de software - SISCONIocfelipe
 
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...Wildtech
 
Seminario software-marino
Seminario software-marinoSeminario software-marino
Seminario software-marinoMarino Catarino
 
APLICAÇÃO DE UMA METODOLOGIA ÁGIL: COMBINANDO SCRUM E KANBAN NO GERENCIAMENTO...
APLICAÇÃO DE UMA METODOLOGIA ÁGIL: COMBINANDO SCRUM E KANBAN NO GERENCIAMENTO...APLICAÇÃO DE UMA METODOLOGIA ÁGIL: COMBINANDO SCRUM E KANBAN NO GERENCIAMENTO...
APLICAÇÃO DE UMA METODOLOGIA ÁGIL: COMBINANDO SCRUM E KANBAN NO GERENCIAMENTO...Luiz Carlos Monteiro Lopes Filho
 
Trabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de SistemasTrabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de SistemasWANDERSON JONER
 
Processos de software
Processos de softwareProcessos de software
Processos de softwareDann Volpato
 
Evoluindo dot project em alinhamento ao pmbok
Evoluindo dot project em alinhamento ao pmbokEvoluindo dot project em alinhamento ao pmbok
Evoluindo dot project em alinhamento ao pmbokPET Computação
 
Planejamento de Backup de dados
Planejamento de Backup de dados Planejamento de Backup de dados
Planejamento de Backup de dados Fernando Palma
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...Rogério Batista
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Metodologia para monitoramento e métricas em redes sociais
Metodologia para monitoramento e métricas em redes sociaisMetodologia para monitoramento e métricas em redes sociais
Metodologia para monitoramento e métricas em redes sociaisDiego Monteiro
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - WikipediaRobson Silva Espig
 
Análise do Ba Durante o Processo Scrum
Análise do Ba Durante o Processo ScrumAnálise do Ba Durante o Processo Scrum
Análise do Ba Durante o Processo ScrumMassimus CT
 
Plano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisPlano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisMarcos Pessoa
 
Aplicação de uma técnica de visualização de dados baseado em árvores para aux...
Aplicação de uma técnica de visualização de dados baseado em árvores para aux...Aplicação de uma técnica de visualização de dados baseado em árvores para aux...
Aplicação de uma técnica de visualização de dados baseado em árvores para aux...Thiago Reis da Silva
 
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010Facuuldade Norte Sul
 

Was ist angesagt? (20)

Práticas de Métodos Ágeis e Possibilidade de Execução em Ambiente de Trabalh...
Práticas de Métodos Ágeis e Possibilidade de Execução em Ambiente de  Trabalh...Práticas de Métodos Ágeis e Possibilidade de Execução em Ambiente de  Trabalh...
Práticas de Métodos Ágeis e Possibilidade de Execução em Ambiente de Trabalh...
 
Artigo usabilidade
Artigo   usabilidadeArtigo   usabilidade
Artigo usabilidade
 
Engenharia de Software - Pontos de função
Engenharia de Software - Pontos de funçãoEngenharia de Software - Pontos de função
Engenharia de Software - Pontos de função
 
Plano de projeto de software - SISCONI
Plano de projeto de software - SISCONIPlano de projeto de software - SISCONI
Plano de projeto de software - SISCONI
 
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
Implementação de um módulo de gestão de projetos baseado em Scrum para o Expr...
 
Seminario software-marino
Seminario software-marinoSeminario software-marino
Seminario software-marino
 
APLICAÇÃO DE UMA METODOLOGIA ÁGIL: COMBINANDO SCRUM E KANBAN NO GERENCIAMENTO...
APLICAÇÃO DE UMA METODOLOGIA ÁGIL: COMBINANDO SCRUM E KANBAN NO GERENCIAMENTO...APLICAÇÃO DE UMA METODOLOGIA ÁGIL: COMBINANDO SCRUM E KANBAN NO GERENCIAMENTO...
APLICAÇÃO DE UMA METODOLOGIA ÁGIL: COMBINANDO SCRUM E KANBAN NO GERENCIAMENTO...
 
Trabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de SistemasTrabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de Sistemas
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Evoluindo dot project em alinhamento ao pmbok
Evoluindo dot project em alinhamento ao pmbokEvoluindo dot project em alinhamento ao pmbok
Evoluindo dot project em alinhamento ao pmbok
 
Planejamento de Backup de dados
Planejamento de Backup de dados Planejamento de Backup de dados
Planejamento de Backup de dados
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
S2 Scrum Roles
S2 Scrum RolesS2 Scrum Roles
S2 Scrum Roles
 
Metodologia para monitoramento e métricas em redes sociais
Metodologia para monitoramento e métricas em redes sociaisMetodologia para monitoramento e métricas em redes sociais
Metodologia para monitoramento e métricas em redes sociais
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - Wikipedia
 
Análise do Ba Durante o Processo Scrum
Análise do Ba Durante o Processo ScrumAnálise do Ba Durante o Processo Scrum
Análise do Ba Durante o Processo Scrum
 
Plano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisPlano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiais
 
Aplicação de uma técnica de visualização de dados baseado em árvores para aux...
Aplicação de uma técnica de visualização de dados baseado em árvores para aux...Aplicação de uma técnica de visualização de dados baseado em árvores para aux...
Aplicação de uma técnica de visualização de dados baseado em árvores para aux...
 
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
 

Andere mochten auch

Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Lenin Abadie
 
Conversão de áudio para texto...
Conversão de áudio para texto...Conversão de áudio para texto...
Conversão de áudio para texto...Lenin Abadie
 
Contrato particular de prestação de serviços
Contrato particular de prestação de serviçosContrato particular de prestação de serviços
Contrato particular de prestação de serviçosWalace Novaes
 
PROJETO DE INSTALAÇÃO DE SISTEMA DE HIDRAULICO, ESGOTO E AGUAS PLUVIAIS
PROJETO DE INSTALAÇÃO DE SISTEMA DE HIDRAULICO, ESGOTO E AGUAS PLUVIAISPROJETO DE INSTALAÇÃO DE SISTEMA DE HIDRAULICO, ESGOTO E AGUAS PLUVIAIS
PROJETO DE INSTALAÇÃO DE SISTEMA DE HIDRAULICO, ESGOTO E AGUAS PLUVIAISHeriton De Miranda Viveiros
 
Proposta de Consultoria
Proposta de ConsultoriaProposta de Consultoria
Proposta de ConsultoriaTR Consulting
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your BusinessBarry Feldman
 

Andere mochten auch (6)

Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
 
Conversão de áudio para texto...
Conversão de áudio para texto...Conversão de áudio para texto...
Conversão de áudio para texto...
 
Contrato particular de prestação de serviços
Contrato particular de prestação de serviçosContrato particular de prestação de serviços
Contrato particular de prestação de serviços
 
PROJETO DE INSTALAÇÃO DE SISTEMA DE HIDRAULICO, ESGOTO E AGUAS PLUVIAIS
PROJETO DE INSTALAÇÃO DE SISTEMA DE HIDRAULICO, ESGOTO E AGUAS PLUVIAISPROJETO DE INSTALAÇÃO DE SISTEMA DE HIDRAULICO, ESGOTO E AGUAS PLUVIAIS
PROJETO DE INSTALAÇÃO DE SISTEMA DE HIDRAULICO, ESGOTO E AGUAS PLUVIAIS
 
Proposta de Consultoria
Proposta de ConsultoriaProposta de Consultoria
Proposta de Consultoria
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
 

Ähnlich wie Metodologia Ágil Scrum para Desenvolvimento Distribuído de Jogos Sociais

Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilRebecca Betwel
 
Metodologias ágeis de desenvolvimento trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalhoRuan Pozzebon
 
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Maicon Zerbielli
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLAnnkatlover
 
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...Kéllyson Gonçalves da Silva
 
Desenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas LeanDesenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas LeanRenan Daré
 
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL GPROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL Gjrnavarro
 
Aplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XPAplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XPs4nx
 
PDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdfPDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdfpedrina4
 
Criacao.Fabrica.Open.Source
Criacao.Fabrica.Open.SourceCriacao.Fabrica.Open.Source
Criacao.Fabrica.Open.SourceAnnkatlover
 
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de softwareScrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de softwareThiago Reis da Silva
 

Ähnlich wie Metodologia Ágil Scrum para Desenvolvimento Distribuído de Jogos Sociais (20)

Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
Artigo23
Artigo23Artigo23
Artigo23
 
Metodologias ágeis de desenvolvimento trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalho
 
Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
 
Artigo
ArtigoArtigo
Artigo
 
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
 
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
SCRUM: ADOÇÃO DE UM FRAMEWORK ÁGIL NO DESENVOLVIMENTO DE UM SOFTWARE PARA TRA...
 
Desenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas LeanDesenvolvimento ágil e práticas Lean
Desenvolvimento ágil e práticas Lean
 
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL GPROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
 
Aplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XPAplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XP
 
PDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdfPDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdf
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Desenvolvimento Ágil
Desenvolvimento ÁgilDesenvolvimento Ágil
Desenvolvimento Ágil
 
Criacao.Fabrica.Open.Source
Criacao.Fabrica.Open.SourceCriacao.Fabrica.Open.Source
Criacao.Fabrica.Open.Source
 
Agil - artigo cientifico
Agil - artigo cientificoAgil - artigo cientifico
Agil - artigo cientifico
 
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de softwareScrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
 
ageis2003.ppt
ageis2003.pptageis2003.ppt
ageis2003.ppt
 

Metodologia Ágil Scrum para Desenvolvimento Distribuído de Jogos Sociais

  • 1. Adoção de Metodologias Ágeis para Produção de Jogos Sociais com Times Distribuídos João E. Ambrósio Gomes Dhiego A. de Oliveira Martins Jamilson Batista Antunes Lenin E. Abadié Otero Vinicius Cardoso Garcia Silvio Lemos Meira Centro de Informática, Universidade Federal de Pernambuco (UFPE) - Recife - PE - Brasil Resumo com times distribuídos para desenvolvimento de jogos sociais; a Seção 5 descreve os principais problemas A utilização de metodologias ágeis para desenvolvimento de enfrentados e as lições aprendidas; e finalmente, a Seção 6 software tem se tornado uma demanda em times geograficamente apresenta as conclusões. distribuídos. Este trabalho tem por objetivo relatar as experiências obtidas em uma fábrica de software open source para desenvolvimento de jogos sociais, adaptando a metodologia Scrum 2. Visão Geral de Desenvolvimento de para o processo de desenvolvimento distribuído. Jogos Sociais Open Source Palavras chave: Metodologias Ágeis, Desenvolvimento Distribuído Segundo Raymond [2], software open source é de Software, Jogos Sociais. desenvolvido por times auto-organizados e distribuídos, que raramente se reúnem presencialmente, coordenando suas Contato dos autores: atividades através de ferramentas específicas. O mesmo autor, {jeag, daom, jba, leao, vcg, srlm, ispj}@cin.ufpe.br ainda descreve um trabalho relevante sobre o processo de software open source quando associa o desenvolvimento nas 1. Introdução comunidades de software livre, desprovido de qualquer processo formalizado, a um “Bazar” no qual as contribuições Com o crescente mercado de jogos sociais e as constantes ocorrem ad hoc. Enquanto que o modelo de desenvolvimento exigências de mais recursos para conseguir atrair um maior tradicional de software está associado a uma “Catedral” e número de usuários, empresas necessitam expandir a possui um processo formal bem definido. capacidade de produção e descentralização no De acordo com Lovell [3], jogos sociais são aplicativos de desenvolvimento dos seus projetos, uma vez que o entretenimento que utilizam as plataformas da web social, desenvolvimento centralizado de software tem se tornado com o objetivo de se propagarem. Estes apresentam como cada vez mais oneroso e menos competitivo. principais características a formação de “meta-redes” entre os Como vantagens desse novo modelo de desenvolvimento jogadores (adicionar amigos nas redes sociais), de jogos têm-se benefícios, como a redução de custos e ganho compartilhamento de pontuações, geração de desafios e de produtividade. Contudo, como grande parte dos desafios competições entre os “adversários virtuais”. na Engenharia de Software não é limitada apenas a aspectos Conforme descrito por González e Robles em [5], muitos técnicos [1], o desenvolvimento distribuído de software são os benefícios do modelo de desenvolvimento open (DDS) ainda deixa muitas dúvidas quanto a sua real eficácia, source, tais como: (i) realização dos releases mais frequentes; como, por exemplo: times distribuídos têm a mesma (ii) baixo custo dos projetos, visto que desenvolvedores e eficiência que times centralizados? A comunicação testadores trabalham de forma voluntária; e, (iii) alta distribuída é tão eficiente quanto à comunicação síncrona? Os qualidade e confiabilidade, visto que são muitas pessoas processos de software atuais são capazes de lidar com as revisando e testando o mesmo código em arquiteturas e características do desenvolvimento distribuído enquanto ambientes distintos. garantem a qualidade do produto? Neste contexto é possível visualizar os métodos ágeis 3. Scrum como solução para auxiliar no desenvolvimento distribuído de jogos, acelerando o rítmo no desenvolvimento e organização O Scrum é um framework para criação de produtos dos times e ganhando produtividade. Como exemplo, tem-se complexos que vem sendo utilizado desde a década de 90 [6], um framework baseado em princípios ágeis, denominado e destaca-se dos métodos ágeis existentes pela maior ênfase Scrum, no qual foi projetado para acrescentar foco, dada ao gerenciamento do projeto. O Scrum é formado por comunicação, clareza, e transparência para desenvolvimento um conjunto de boas práticas de gestão que admite ajustes de software. rápidos, acompanhamento e visibilidade constantes e planos Com base nisso, este trabalho apresenta a experiência do realísticos. Segundo Shuwaber e Sutherland [7], este desenvolvimento de um jogo social multiplaforma utilizando- framework de processo ágil se fundamenta na teoria de se a metodologia Scrum para auxilio no gerenciamento de controle de processos empíricos, utiliza uma abordagem times distribuídos, ferramentas e técnicas apropriadas para iterativa e incremental para aperfeiçoar a previsibilidade e gerenciamento e organização dos times. controlar ímpetos. Este trabalho está organizado conforme se segue: a Seção 2 Este framework baseia-se ainda em princípios como: apresenta uma visão geral de desenvolvimento de jogos equipes pequenas de, no máximo, sete pessoas; requisitos que sociais open source; a Seção 3 descreve a metodologia são pouco estáveis ou desconhecidos; e iterações curtas. Scrum; a Seção 4 apresenta o estudo de caso: modelo ágil
  • 2. Consiste em um conjunto formado por Times de Scrum e seus em ambientes web ou móveis que utilizam o sistema papéis associados, Time-Boxes (eventos com duração fixa), operacional Android. O objetivo principal do jogo é salvar o Artefatos e Regras. pombo correio, impedindo a sua captura enquanto leva Os Times Scrum são auto-gerenciáveis, multidisciplinares mensagens à rede social [14]. e trabalham em interação, visando otimizar flexibilidade e O presente estudo é apresentado seguindo os tópicos: produtividade. Cada Time de Scrum possui três papeis: 1) O metodologia Scrum, práticas da metodologia, organização e Scrum Master: um líder, um facilitador; responsável por gerenciamento das fases na fábrica, e por fim a divisão dos garantir que o processo será compreendido e acompanhado; times. 2) O Product Owner, responsável por elevar ao máximo o valor realizado pelo Time de Scrum, serve como ponte entre o 4.1 Metodologia cliente e o fornecedor; 3) o Time, que tem por função trabalhar na execução das tasks que resultarão em uma Segundo Keith [6] a utilização da metodologia Scrum para release. desenvolvimento de jogos, apresenta características Os principais artefatos do Scrum [7] são: Product Backlog, específicas, e cada Sprint é composta pelas iterações: que consiste em uma lista priorizada de tudo que pode ser Concept, Design, Coding, Asset Creation, Debugging, necessário no produto (requisitos); Sprint Backlog, uma lista Optimizing, Tuning and Polishing. de tarefas para transformar o Product Backlog, por uma As iterações em uma sprint são organizadas dentro do ciclo Sprint, em um incremento do produto potencialmente de vida em cascata. Esta foi uma alternativa adotada pela entregável; Um burndown é uma medida do backlog restante fábrica MOSAIC com base nos projeto de jogos pelo tempo; Um burndown de release mede o Product desenvolvidos pelo C.E.S.A.R (Centro de Estudos e Sistemas Backlog restante ao longo do tempo de um plano de release; Avançados do Recife). E ainda um Burndown de Sprint que mede os itens do Sprint O processo adotado segue as atividades (levantamento de Backlog restante ao longo do tempo de uma Sprint. Já as requisitos, análise e projeto, desenvolvimento, testes e Regras fazem a ligação entre os Time-Boxes, os Papéis e os operação), bem como a aplicação de práticas de testes de Artefatos do Scrum. software, como, por exemplo, TDD (Test Driven Ao final de cada Sprint é realizada a reunião de revisão Development). É apresentada na Fig. 1 uma visão geral do (Sprint Review Meeting) para que o Team apresente o ciclo de trabalho. resultado alcançado na interação ao Product Owner, para que Nos próximos tópicos serão abordadas as práticas adotadas ocorra a inspeção e adaptação das funcionalidades e do do Scrum e organização dos times, bem como a adaptação das projeto. Em seguida, Scrum Master conduz a reunião de ferramentas de gerenciamento e configuração para essa retrospectiva (Sprint Retrospective Meeting), onde os metodologia. participantes relatam quais foram os impedimentos apresentados durante a sprint, isto com o objetivo de melhorar o processo e/ou produto para a próxima Sprint. Na seção 4 apresentaremos com detalhes a forma de planejamento do Scrum durante o desenvolvimento do jogo Catch the Pigeon e a sua adaptação para times distribuídos. 4. Estudo de Caso: Modelo Ágil com Times Distribuídos para Desenvolvimento de Jogos Sociais O estudo foi realizado na fábrica de software MOSAIC (Mobile Social Applications in the Cloud). A fábrica é formada por 23 (vinte e três) alunos do curso de Pós- Fig. 1. Visão geral do ciclo de trabalho da Fábrica MOSAIC. Graduação do Centro de Informática da Universidade Federal de Pernambuco, dentre eles mestrandos e doutorandos que 4.2 Práticas fazem parte da estrutura organizacional da fábrica. Os alunos estão distribuídos de forma descentralizada, com equipes Seguindo a organização proposta pelo Scrum para o auto-organizadas e auto-gerenciáveis. Essa estrutura é gerenciamento, o processo da Fábrica MOSAIC é composto composta por um Comitê Gestor, responsável pelas principais das seguintes práticas: decisões estratégicas da Fábrica, times de produção liderados Sprint Planing Meeting : reunião com o objetivo de definir pelo Scrum Master, o Product Owner e os Stakeholders. e identificar os requisitos que serão desenvolvidos na sprint. O projeto consiste no desenvolvimento de um jogo social e Sprint: os itens definidos no Product Backlog serão open source denominado Catch the Pigeon [14]. O jogo implementados pela equipe, em períodos de tempo com utiliza os serviços da rede social facebook, e foi desenvolvido duração de no máximo duas semanas (14 dias). para mais de uma plataforma, o que permite a sua execução
  • 3. Daily Scrum: reuniões diárias, com duração de Optimizing: este estágio visa melhorar a aplicação de aproximadamente 5 minutos, entre os envolvidos do projeto. forma incremental, procurando corrigir eventuais problemas Através dessa reunião é possível ter conhecimento das relacionados a requisitos não-funcionais, requisitos gráficos, atividades que estão sendo realizadas e da existência de um requisitos de inteligência, entre outros. possível impedimento. Tuning and polishing: neste estágio, características Sprint Review Meeting: reunião para revisão dos resultados relacionadas ao game design, por exemplo, podem ser obtidos na Sprint por parte dos envolvidos no projeto. Caso refinadas para melhorar a experiência do usuário. Esta fase é novos requisitos surjam durante a revisão, estes são dedicada a verificar o quão divertido é o jogo, ajustando a adicionados ao Product Backlog para serem desenvolvidos na jogabilidade quando preciso. Tarefas de “polimento” podem próxima Sprint. ser alocadas no Backlog. Release: uma versão do jogo com melhorias agregadas e Todas estas fases são realizadas durante o ciclo de potencialmente entregável, que implementa as desenvolvimento de jogos adotado pela fábrica MOSAIC. funcionalidades previstas para uma determinada sprint. Apesar de ser baseada no modelo cascata, a abordagem é Sprint Retrospective: uma reunião realizada pela equipe na distinta quando aplicada a metodologia Scrum para sequência da revisão da sprint, para refletir sobre a eficácia da desenvolvimento de jogos, pois esse ciclo se repete a cada equipe no desenvolvimento da Sprint, analisando formas de Sprint, já no modelo tradicional executa-se uma única vez. melhorar as suas práticas. Na fábrica MOSAIC, este ítem envolve o scrum master de cada time (scrum de scrum’s), juntamente ao Comitê Gestor, Product Owner e Stakeholders. 4.3 Fases Em função das características específicas da aplicação, as sprints são compostas pelas atividades ilustradas na Fig. 2 e descritas a seguir: Concept: idéias são geradas, possivelmente prototipadas, e textualizadas em uma base regular. Exemplo: a criação do documento de game design, com a descrição do core do jogo (roteiro, cenários, personagens) e especificação de requisitos. Design: projeto das ideias geradas, estudo de viabilidade. Neste estágio, além de projetar como as funcionalidades serão Fig. 2 - Atividades que compõem cada sprint. implementadas, pode-se projetar testes de unidade para cada uma delas. Exemplo: os programadores irão definir o projeto 4.4 Times (classes, métodos, relacionamentos, entre outros) de como as ações referentes ao vôo dos personagens serão implementadas Além dos papéis inerentes ao processo Scrum, foram em cada plataforma. incorporados papéis específicos ao processo de Coding: codificação de acordo com o que foi projetado na desenvolvimento de jogos. Estes papéis compõem a equipe de fase anterior. Exemplo: codificação das ações relacionadas ao desenvolvimento do grupo de game design, Web-Móvel, vôo das personagens, na linguagem específica de cada podendo haver casos de intersecção: ambiente (móvel e web). Com a utilização de TDD, os testes Arte Designer: responsável por desenhar personagens, de unidade e os seus códigos associados são construídos em cenários, instrumentos do jogo, efeitos resultantes das ações conjunto. do jogador, ícones e menus do jogo. Asset creation: componentes relacionados à arte (como as Áudio Designer: será responsável por toda sonorização do figuras das personagens, cenários, entre outros), aos sons do jogo, desde sons emitidos pelos personagens, aos sons das jogo (quando uma personagem é atingida ou morre, por armas e demais efeitos pertencentes ao jogo. exemplo), e às animações (bater de asas das personagens, Animador: responsável por criar e manter as animações explosões, entre outras), ou implementações obtidas a partir dos elementos existentes no jogo. da codificação, podem ser componentes (ou pacotes) que A equipe da fábrica encontra-se organizada em subgrupos agregam determinadas funcionalidades a aplicação. Exemplo: com times constituídos de 2 a 8 membros. Os times um pacote que implementa o vôo de uma determinada selecionam o objetivo da sprint e especificam os produtos de personagem, como um pombo do mal. trabalho em conjunto. Debugging: busca minimizar a ocorrência de bugs nas Alguns times em particular atuam no apoio ao funcionalidades implementadas, por meio da aplicação de desenvolvimento. Esses times definem, compartilham e testes, identificação e correção de defeitos. Os erros melhoram continuamente processos, técnicas, padrões e encontrados precisam ser corrigidos antes da implementação ferramentas que apoiam os times, promovendo a capacitação da funcionalidade ser categorizada como concluída. dos mesmos. É apresentado na Fig. 3 uma visão geral da organização da fábrica, seus times e papéis.
  • 4. 6. Conclusões Este trabalho apresentou um estudo de caso sobre a aplicação de métodos ágeis, baseado na abordagem proposta pelo Scrum, em um processo para desenvolvimento de jogos socais open source com times distribuídos. Relatou-se a experiência adquirida durante todo o processo de adaptação da metodologia Scrum para o processo de desenvolvimento distribuído. O projeto teve duração de 5 (cinco) meses (entre fevereiro e julho de 2011), durante este período foram criados 36 (trinta e seis) itens de backlog e realizadas 303 (trezentos e três) tarefas, dividas entre os times da fábrica MOSAIC. Fig. 3. Organização da Fábrica MOSAIC. Apesar do Scrum não cobrir todas as características especificadas para equipes distribuídas, foi possível fazer uso Ressaltando-se, ainda, que durante o desenvolvimento do de diversos aspectos de desenvolvimento ágil sem projeto, pode-se contar com a participação de colaboradores comprometer os requisitos exigidos no projeto. externos. Estes colaboradores foram avaliados pelo líder do time em que o mesmo demonstrou interesse. Referências 5. Problemas Enfrentados e Lições [1] Kontio, J., Höglund, M., Rydén, J. and Abrahamsson, P. (2004) Aprendidas "Managing Commitments and Risks: Challenges in Distributed Agile Development,". In Proceedings of the 26th International Conference on Software Engineering, pp. 732-733. Ao longo do desenvolvimento do projeto foi percebido que [2] RAYMOND, E. S. (1998) “The Cathedral and the Bazaar”. nem todas as práticas do Scrum eram diretamente aplicadas Disponível em: http://www.firstmonday.org/issues/issue3_3/raymond/. ao contexto de desenvolvimento distribuído de software. A Acesso em 15 Mai 2007. seguir apresentam-se os maiores desafios para a utilização de [3] LOVELL, Nicholas, WHAT IS A SOCIAL GAME?, 2011. Disponível em: http://www.gamesbrief.com/2011/01/what-is-a-social-game/. Scrum no desenvolvimento de jogos sociais open source com Acesso em: 18 jun 2011. times distribuídos e como foram solucionados: [4] POSEA, Vlad; BALINT, Mihaela; DIMITRIU Alexandru; IOSUP, ● O Scrum defende a unidade da equipe de Alexandru. An Analysis of the BBO Fans Online Social Gaming Community, desenvolvimento. Isso está fortemente relacionado com 2010. [5] Gonzáles, J. e Robles, G.(2003) “Free Software Engineering : A Field a presença física da equipe e com iterações diárias. As to Explore”, Upgrade - Software Engineering State of Art, Novática, volume equipes conseguiram superar o desafio de estar IV, N. 4. geograficamente distribuídas com o uso sistemático de [6] KEITH, Clinton. Agile Game Development with Scrum (Addison- fóruns, listas de discussões e ferramentas de Wesley Signature Series. Editora: Addison-Wesley Professional; 1º ed, 2010. 384 pg. comunicação (videoconferências, chats, entre outros). [7] SCHWABER, KEN e SUTHERLAND,JEFF. Scrum, fevereiro 2010. ● As reuniões diárias previstas no Scrum foram Disponível em: substituídas por 2 (duas) reuniões semanais de cada <http://www.scrum.org/storage/scrumguides/Scrum%20Guide%20- time, conforme o processo definido para a fábrica de %20PTBR.pdf>. Acesso em: 17 mai. 2011. [8] ZANONI, R. Modelo de gerência de Projeto Baseado no PMI para software; ambientes de Desenvolvimento de Software Distribuído. Dissertação de ● O Scrum é focado em equipes auto-organizadas e auto- Mestrado, PUC/RS, Porto Alegre, RS, Brasil, 2002. gerenciáveis, além de prever a questão motivacional [9] AUDY, J.; PRIKLADNICKI, R. (2007). Desenvolvimento como principal aspecto de sucesso do projeto. Esses Distribuído de Software: Desenvolvimento de software com equipes distribuídas. Rio de Janeiro: Elsevier. mesmos aspectos puderam ser percebidos no [10] KOMI-Sirvo, S; TIHINEN M. (2005). Lessons Learned by desenvolvimento distribuído, onde a equipe poderia Participants of Distributed Software Development. Journal Knowledge and integrar um membro externo. Process Management, vol. 12 n 2 p. 108 – 122. ● A preocupação com os requisitos não funcionais deverá [11] CARMEL, E. Global Software Teams – Collaborating Across Borders and Time Zones. Prentice Hall, EUA, 1999. ser constante por parte de todos os times envolvidos, [12] PRIKLADNICKI, R. MuNDDoS Um Modelo de Referência para mas será mais observado pelo time de processo e game Desenvolvimento Distribuído de Software. Dissertação de Mestrado, design. PUC/RS, Porto Alegre, RS, Brasil, 2003. Ao final do projeto teve-se como lições aprendidas as [13]FREITAS, A. V. APSEE Global: a Model of Processes Manegement of Distributed Software Processes. Faculdade de Informática – UFRS – RS – ferramentas, métodos e processos para adaptação do Scrum BRAZIL, 2005. durante o desenvolvimento de um jogo social com times [14] MOSAIC (2011). “Mobile Social Applications in the Cloud”, Maio, distribuídos. Proporcionando um gerenciamento 2011, Disponível em: <http://www.mosaic.eng.br>. Acesso em: 15 jun 2011. descentralizado dos times envolvidos durante todo o desenvolvimento do projeto.