Uma Experiência no Gerenciamento Ágil de Projetos de Software com Equipes Grandes e Distribuídas

Documentos relacionados
Desenvolvimento Ágil de Software

ENGENHARIA DE SOFTWARE. SCRUM Carlos Mar, Msc. Maio/2014

Desenvolvimento Distribuído de Software. Rafael Leonardo Vivian (DIN-UEM) rlvivian.uem [at] gmail [dot] com

Metodologia Ágil com Scrum. Como uma ideia pode se tornar um software com a ajuda de boas práticas

SCRUM Prof. Jair Galvão

Scrum. Daniel Krauze

SCRUM Agilidade na Gestão de Projetos

Métodos Ágeis e o SCRUM. Bruno Henrique Oliveira

O PAPEL DO ANALISTA DE NEGÓCIOS NA AGILIDADE. Ainda precisamos de Analistas de Negócios?

SIGEPRO - Mini Curso sobre Métodos Ágeis de Gestão de Projetos

Engenharia de Software DESENVOLVIMENTO ÁGIL

7ª Conferência da Qualidade de Software e Serviços

Centro de Informática UFPE. Relatório Scrum. OficinaWeb. Tortola. Equipe: Aloísio Soares Helton Douglas José Carlos Wagner Felipe

SCRUM MASTER PROFESSIONAL CERTIFICATE (SMPC) SIMULADO DO EXAME Sample Test V092018

Adoção de metodologia ágil baseada em Scrum - Case da Procergs

EXIN Agile Scrum Master

Papel do PO Métodos Ágeis. Fonte: Adaptworks

Engenharia de Software. Herbert Rausch Fernandes

Scrum. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

SCRUM aplicado na Gerência de Projetos

Implementação de um sistema para gerenciamento de projetos baseado no Framework Scrum: um estudo de caso

UTILIZAÇÃO DO SCRUM NO DESENVOLVIMENTO DE SISTEMAS COMPUTACIONAIS NA EMPRESA NÚCLEO DA CIDADE DE CERES-GO.

Metodologias Ágeis de Desenvolvimento. Fernando Trinta

A Utilização de Práticas Scrum no Desenvolvimento de Software com Equipes Grandes e Distribuídas: um Relato de Experiência

PROVAS DISCURSIVAS P 3 (questões) e P 4 (parecer) RASCUNHO QUESTÃO 1

PDS. Aula 1.10 SCRUM. Prof. Dr. Bruno Moreno

Cultura Ágil e SCRUM. Bruno Oliveira.

Scrum Foundations. Fundamentos de Scrum

IFSP Câmpus Boituva - III Simpósio Interdisciplinar de Tecnologias e Educação Capital Nacional do Paraquedismo - 31/05 a 02/06/2017 [SInTE]

Certified ScrumMaster (CSM)

Aula 03 Gestão de projetos em arquitetura

Uma breve visão sobre a metodologia scrum dos discentes de sistema de informação da faculdade projeção de Sobradinho/DF

SCRUM Na Prática o que importa são os Valores. Danilo Bardusco Gerente Geral de Desenvolvimento

Processos para Desenvolvimento Distribuído de Software

Desenvolvimento ágil de software

Manifesto Ágil Princípios

Scrum além do desenvolvimento de software

19/03/2018. Engenharia de Software. Prof. Luís Fernando GARCIA.

Scrum e Extreme Programming

Visão Geral do Processo de Desenvolvimento de Software Introdução aos Sistemas de Informação

Processos Ágeis de Desenvolvimento de Software. Yuri Pereira

INSTITUTO FEDERAL DO MARANHÃO - CAMPUS CAXIAS BACHARELADO E CIÊNCIA DA COMPUTAÇÃO TÓPICOS EM ENGENHARIA DE SISTEMAS DOCENTE: FLÁVIO BARROS

GPS Gestão de projeto de software Aula 7a - Scrum. Professor Emiliano S. Monteiro

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

OPERA Cloud. Tecnologia que potencializa as operações e distribuição de seu hotel

MÉTODOS ÁGEIS SERVEM PARA MIM?

Garantia da Qualidade dos Processos de Software Baseado no MPS.BR Um Estudo de Caso

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

Projeto para o IV semestre TADS

Aplicativos Móveis para Consulta de Informações de Gerência Ágil de Processos utilizando LPS

SCRUM na prática com TANGRAN

Marketing Promotions Review

Adoção de Metodologias Ágeis para Produção de Jogos Sociais com Times Distribuídos

Qual a Distribuição % típica do Esforço das Atividades de Teste?

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

UNIVERSIDADE DO ESTADO DE SANTA CATARINA UDESC CENTRO DE EDUCAÇÃO SUPERIOR DO ALTO VALE DO ITAJAÍ CEAVI DIREÇÃO DE ENSINO DEN PLANO DE ENSINO

1. A função DevOps, que se concentra principalmente em Produtos & Serviços:

MBA EM GESTÃO DE TECNOLOGIA DA INFORMAÇÃO. Curso de Pós-Graduação Lato-Sensu. Coordenador Profº Dr. William Sampaio Francini

Metodologia SCRUM. Figura 1 - Estrutura de processo do Scrum. [2]

Mapeando o Scrum em Relação ao CMMI Níveis 2 e 3

Características do Desenvolvimento Global de Software em Ambientes Offshore Insourcing: Lições Aprendidas de um Estudo de Caso

2 Processos Ágeis Scrum

METODOLOGIA ÁGEIS FDD FEATURE DRIVEN DEVELOPMENT. Prof. Fabiano Papaiz IFRN

PORTFÓLIO DE SERVIÇOS

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

UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO CENTRO DE INFORMÁTICA

Tecnologia da Informação

Universidade Federal de Pernambuco

1 Introdução Contextualização e motivação

Ferramenta para gestão ágil

Implantando Melhoria de Processo de Software

SCRUM MASTER PROFESSIONAL CERTIFICATE (SMPC) SIMULADO DO EXAME Sample Test V092018

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Scrum o quê? Gerindo projetos de forma eficiente (e sem perder os cabelos)

Wesley Torres Galindo.

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

4 Processos Ágeis História

Sistemas Integrados de Gestão

UNIVERSIDADE FEDERAL DE PERNAMBUCO. Aplicando a Abordagem GQM para Avaliar o Impacto da Adoção da Metodologia Ágil Scrum

Processo de desenvolvimento

EMPRESA DE AGRONEGÓCIOS TEM AUMENTO EM SEUS RESULTADOS E NA COLABORAÇÃO DOS TIMES 2016

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Project Builder: uma Ferramenta de Apoio a Implementação do Processo Gerência de Projetos do MPS.BR

Fermine como ferramenta de apoio à implantação do nível G do MPS.Br. Fermine as a tool to support implementation of the G level in MPS.

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Visão Geral de Engenharia de Software

POLÍTICA DA CENTRAL DE SERVIÇO DE TI. Versão 1.0 GERÊNCIA CORPORATIVA DE TECNOLOGIA DA INFORMAÇÃO

PDS. Aula 1.9 SCRUM. Prof. Dr. Bruno Moreno

Avaliação do Impacto do Desenvolvimento Distribuído de Software em um Projeto Adotando o Scrum : Um Estudo Comparativo

1 Introdução. 1.1.Motivação

Experiência de Implantação de um Processo de Desenvolvimento de Software no Banco Central do Brasil

O que ele não é? Um método ou técnica definitiva para desenvolvimento de um produto.

SSC - SCRUM SETUP CANVAS

Especialização em Arquitetura e Engenharia de Software

3 Uma Arquitetura Distribuída via WEB

Fonte : sistemaerp.org

Modelos de Gestão de Projetos

EXIN Agile Scrum Foundation. Guia de Preparação. Edição

Transcrição:

Uma Experiência no Gerenciamento Ágil de Projetos de Software com Equipes Grandes e Distribuídas Alex N. Borges Júnior, Hugo V. L. Souza, Pablo R. C. Alves, Rodrigo G. C. Rocha, Silvio R. L. Meira Centro de Informática Universidade Federal de Pernambuco (UFPE) Caixa Postal 7.851 50.732-970 Recife PE Brasil {anbj,hvls,prca,rgcr,srlm}@cin.ufpe.br Abstract. The agile project management is growing and large software companies are using this approach. This article describes the experience of adapting agil management practices in the context of a software project involving a large and distributed team. The related project was performed as part of a Postgraduate course in Computer Science. The purpose of this paper is to present how was the management of the project using an agile approach based on Scrum. In addition to reporting the activities used for this adaptation, this paper branches the results achieved, difficulties and lessons learned from this experience. Resumo. O gerenciamento ágil de projetos está em crescimento e grandes empresas de software estão utilizando esta abordagem. Este artigo relata a experiência de adaptar as práticas de gerenciamento ágil no contexto de um projeto de software que envolve uma equipe grande e distribuída. O projeto citado foi realizado como parte de uma disciplina de Pós-Graduação em Ciências da Computação. O objetivo deste trabalho é apresentar como foi realizado o gerenciamento do projeto utilizando uma abordagem ágil baseada no Scrum. Além de relatar as atividades utilizadas para esta adaptação, são apresentados os resultados obtidos, as dificuldades e as lições aprendidas desta experiência. 1. Introdução Nas últimas décadas, pôde ser observado um grande avanço do mercado global de desenvolvimento de software. Isso se deve ao fato do software ter assumido um papel de maior importância dentro das empresas, passando a ser componente estratégico de sucesso e criando novas formas de cooperação e competição [Herbsleb 2001]. Com a evolução do mercado de software, as organizações têm buscado, cada vez mais, a implantação de processos produtivos visando melhorar a qualidade e reduzir custos [Ferreira 2006]. Além disso, o mercado busca por maior agilidade e flexibilidade no desenvolvimento e entrega de software. Com isso, as abordagens ágeis ganham mais importância, apresentando vantagens como redução de prazos de entrega, menor burocracia no desenvolvimento, maior produtividade e eficiência, entre outras. Neste sentido, pode ser destacado que a utilização de abordagens ágeis no gerenciamento de projetos de software está em ascensão e grandes empresas já estão utilizando esta prática. Atualmente, um dos métodos ágeis em destaque no mercado global de software é o Scrum, que tem seu foco no gerenciamento de projetos.

Pesquisar novas formas de adaptar os processos às realidades de equipes e projetos existentes é uma maneira interessante de trazer novos processos para essas diferentes abordagens de desenvolvimento. Neste contexto, é fundamental para o crescimento da área de software relatar experiências práticas capazes de apresentar possíveis soluções para a adaptação do gerenciamento ágil nos mais diversos contextos. O objetivo deste trabalho é apresentar a experiência de adaptar o gerenciamento ágil baseado em práticas Scrum no contexto distribuído. O projeto, denominado The SeC (The Supply e-commerce), surgiu no primeiro semestre de 2010, da disciplina de Engenharia de Software (IN0953 2010) do Programa de Pós-graduação em Ciências da Computação da Universidade Federal de Pernambuco (UFPE) e envolveu estudantes de mestrado e doutorado, todos trabalhando de forma distribuída. O seu objetivo foi o desenvolvimento de um sistema de compras e vendas coletivas na Web. 2. Fundamentação Teórica Esta seção apresenta uma breve revisão bibliográfica realizada para identificar os principais conceitos utilizados neste trabalho. 2.1 Scrum: Método Ágil de Gerenciamento de Projetos Há aproximadamente 30 anos surgiram as primeiras práticas de gerenciamento de projetos sob uma abordagem ágil. A idealização desta nova maneira de gerir o processo de desenvolvimento de um sistema foi motivado pela necessidade do mercado em agilizar os processos produtivos, além da vontade dos engenheiros de software em utilizar técnicas de desenvolvimento que evitassem problemas comuns às metodologias mais tradicionais [Kniberg 2007]. O Scrum, que tem seu foco nas práticas ágeis de gerenciamento de projetos, é um dos métodos ágeis mais utilizados pelas empresas no mundo [Pragmatic Marketing Survey 2007]. Este método ágil não foi criado com o intuito inicial de gerir o desenvolvimento de sistemas, mas em 1995 Ken Schwaber formalizou a definição deste método para projetos de desenvolvimento de software [Schwaber 2004]. De acordo com Schwaber (2002), as principais caractecrísticas do Scrum compreendem: O Scrum é divido em etapas chamadas sprints, que são iterações de trabalho da equipe e que compreendem de 2 a 4 semanas cada. O esforço de cada sprint está em entregar um incremento do software pronto; O conjunto de requisitos do sistema é chamado de product backlog. O cliente do sistema, chamado de Product Owner, é responsável por priorizá-los; Os membros da equipe realizam breves reuniões diárias, chamadas de daily scrum meeting, onde são discutidos o andamento do projeto, próximas tarefas a serem realizadas e impedimentos de cada membro; As reuniões de planejamento, chamadas de sprint planning, acontecem no início das atividades de cada sprint e se resumem na escolha dos itens de backlog; Antes da passagem de uma sprint à outra, a equipe do projeto costuma realizar uma retrospectiva, chamada de sprint review, para refletir sobre a sprint anterior; Uma equipe ágil em Scrum possui uma pessoa que faz o papel de gerente, chamado de Scrum Master, que é responsável por atuar como um mediador, motivar a equipe, remover impedimentos do grupo, entre outras atividades.

2.2 Desenvolvimento Distribuído de Software O desenvolvimento de software de forma co-localizada tem se tornado cada vez mais custoso e menos competitivo para as organizações. Visando a redução de custos, melhoria da qualidade, aumento de produtividade e competitividade global, várias empresas optam por distribuir seus processos de desenvolvimento em lugares diferentes [Audy e Prikladnicki 2008]. Neste contexto surge o Desenvolvimento Distribuído de Software (DDS), onde os envolvidos em um determinado projeto estão dispersos. De acordo com Prikladnicki (2003), as vantagens que o DDS oferece são: Possibilidade de desenvolvimento follow-the-sun, que permite o aumento de produtividade e a redução dos prazos de entrega dos produtos; Disponibilidade de recursos globais com baixos custos e a qualquer hora; Disponibilidade de recursos qualificados em áreas especializadas; Possibilidade de formação de equipes virtuais. Entretanto, existe uma série de desafios inerentes a este ambiente de desenvolvimento. De acordo com Lopes (2004), os principais desafios e questões envolvidas neste ambiente são: (1) diferenças culturais; (2) dispersão geográfica; (3) coordenação e controle; (4) comunicação; e (5) espírito de equipe. 3. O Projeto The SeC O estudo de caso descrito neste trabalho surgiu da disciplina de Engenharia de Software [IN0953 2010] do Programa de Pós-graduação em Ciências da Computação da Universidade Federal de Pernambuco (UFPE). O objetivo da disciplina foi reunir conceitos de desenvolvimento distribuído de software e processos ágeis, interligados com conceitos atuais de empreendedorismo coletivo com o uso de plataformas empresarias que oferecem infraestrutura de negócios focados na computação em nuvem. O projeto intitulado The SeC (The Supply e-commerce), consistiu no desenvolvimento de um sistema de compras e vendas coletivas na Web, onde os membros podem se juntar em grandes grupos para obter um maior poder de negociação em pregões e leilões, de acordo com demanda e oferta de produtos. A plataforma adotada para o desenvolvimento do sistema foi a Salesforce, que é uma plataforma de computação nas nuvens que permite executar e desenvolver aplicativos de negócios. O tempo de duração do projeto foi de quatro meses, envolvendo as atividades de definição do produto e das equipes, requisitos, planejamento e desenvolvimento do sistema. O projeto envolveu um contingente de cinqüenta estudantes, entre mestrandos e doutorandos, todos trabalhando de forma distribuída, nos estados de Alagoas, Paraíba e Pernambuco. Além dos estudantes, também teve participação o professor da disciplina, que coordenou todo o ciclo de interações, comunicação e apoio entre os envolvidos. 4. Gerenciamento do Projeto The SeC Foi adotado um processo ágil para o gerenciamento e desenvolvimento do sistema The SeC em virtude do curto espaço de tempo relacionado à complexidade do produto solicitado. O processo utilizado foi baseado na metodologia Scrum [Schwaber 2007], pois, apesar de ser indicada para equipes pequenas e co-localizadas, foi observada a oportunidade de utilizar seus princípios e vantagens no contexto do projeto.

Visando tornar mais eficiente o gerenciamento ágil do projeto com Scrum, foi feita uma divisão do grupo participante em equipes menores, totalizando cinco equipes com 8 ou 9 componentes. Cada equipe ficou responsável por um módulo do sistema, mas sempre visualizando o sistema como um todo. Desta forma, foi possível um melhor gerenciamento do processo de desenvolvimento e integração das partes desenvolvidas. Além das equipes de desenvolvimento, foi criado um Time de Apoio, formado pelos alunos mais experientes, que foi responsável por gerenciar as versões geradas do produto e as atividades realizadas entre as equipes. As atividades eram atribuídas de acordo com a exposição de itens de backlog disponibilizados na ferramenta Mantis 1. Para gerenciar as versões produzidas entre as equipes, foi criado um repositório comum. 4.1 Gerenciamento Scrum dentro das Equipes Cada equipe possuía um Scrum Master, escolhido por ter experiência com gerenciamento ágil. Este era responsável por gerenciar conflitos dentro de sua equipe, remover os impedimentos e interagir com os demais Scrum Masters e Time de Apoio. O gerenciamento dentro de cada equipe era realizado em conjunto por todos os integrantes, caracterizando equipes autogerenciáveis. Visando a comunicação constante dentro da equipe, eram realizadas várias reuniões durante a semana, através de comunicadores instantâneos, como Messenger e Skype. Em cada reunião, os membros deveriam expor as atividades desenvolvidas e seus impedimentos. 4.2 Gerenciamento Scrum das Equipes Mesmo cada equipe interagindo umas com as outras, a validação do desenvolvimento foi necessária quando todos os integrantes do projeto se reuniam semanalmente para uma avaliação conjunta. O Time de Apoio era responsável por prover semanalmente um Scrum de Scrums com os cinco Scrum Masters das equipes para contatar dúvidas, expor situações, além de solicitar um suporte para o desenvolvimento e para o processo. Esse gerenciamento do Time de Apoio ajudou a sincronizar as atividades entre as equipes. Em cada ciclo, com duração de quinze dias, eram realizadas as sprint plannings e sprint review. Cada equipe apresentava os componentes desenvolvidos, pontos positivos e negativos, dificuldades, lições aprendidas e perspectivas futuras, de forma que fosse planejado o próximo ciclo quinzenal de desenvolvimento, como também o ciclo de integração para que os protótipos do produto fossem sendo gerados e analisados pelo Product Owner, que foi um aluno de mestrado contatado como cliente. Na fase final do projeto, a integração foi realizada gradativamente pelo Time de Apoio e por alguns membros das equipes, que alinharam as últimas versões produzidas por cada equipe para que o produto final fosse gerado e validado pelo Product Owner. 4.3 Desafios no Gerenciamento das Equipes Desafios no gerenciamento das equipes envolvidas e dos artefatos gerados foram observados ao longo do projeto, muitos deles devido ao fato das equipes serem distribuídas geograficamente, além de envolver muitos integrantes e ter prazos curtos para o desenvolvimento do produto. Os principais desafios foram: 1 Mantis é uma ferramenta Web que realiza o controle de atividades no desenvolvimento de software.

Gestão de equipes distribuídas: gerenciar e integrar várias equipes de desenvolvimento compostas por pessoas desconhecidas e localizadas em diferentes cidades foi uma dificuldade encontrada, principalmente no início do projeto, resultando em problemas de comunicação e definições de atividades; Gestão de atividades: dificuldades em definir tamanho e tempo necessários para executar uma determinada atividade; Falta de domínio da plataforma utilizada: dificuldades com a falta de conhecimento da plataforma Salesforce; Falta de comunicação constante: devido a distância física entre os integrantes e certa ineficiência das tecnologias de comunicação; 5. Resultados e Lições Aprendidas No projeto de software relatado neste trabalho, foi utilizado um gerenciamento ágil e eficiente com base na metodologia Scrum, sendo fundamental a sua adaptação ao contexto do projeto. Mesmo com todos os desafios encontrados, os resultados obtidos ao final do projeto foram positivos, sendo listados a seguir: Gerenciamento de projeto eficiente e produtivo: através da adaptação dos princípios ágeis Scrum no contexto do projeto, que envolveu uma equipe de desenvolvimento distribuída e com muitas pessoas; Construção de um negócio baseado em cloud computing: sistema de compras e vendas coletivas na Web através de uma plataforma nas nuvens Salesforce; Maturidade da equipe de desenvolvimento: maior conhecimento em relação a gerenciamento e desenvolvimento ágil de projetos de software; Conhecimento da plataforma Salesforce: utilização de uma plataforma que propõe o desenvolvimento de soluções colaborativas nas nuvens; As experiências vivenciadas neste projeto foram abrangentes no sentido de gerenciar equipes grandes e distribuídas, onde boa parte das atividades foi, de fato, realizada à distância. Algumas lições aprendidas, especialmente em relação ao gerenciamento ágil de projetos distribuídos, são apresentadas a seguir: Divisão dos integrantes em equipes menores: dividir os integrantes do projeto em equipes menores foi importante para trabalhar da melhor maneira os aspectos do Scrum em cada equipe, proporcionando um desenvolvimento mais dinâmico e produtivo, além de facilitar o gerenciamento das equipes. Equipes heterogêneas e autogerenciáveis: utilizar equipes heterogêneas facilitou a atribuição de atividades de acordo com o perfil e experiência de cada integrante, enquanto que a forma autogerenciável fez cada equipe agir de forma proativa e em busca constante por resultados; Arquitetura modular: por envolver DDS, a utilização de uma arquitetura modular ajudou o gerenciamento e integração das versões produzidas; Definição do Time de Apoio: foi fundamental para o gerenciamento do projeto a utilização do Time de Apoio, cuja consultoria foi uma presença constante, orientando e avaliando os artefatos gerados pelas equipes, além de resolver conflitos existentes; Presença constante do Product Owner: a consultoria do Product Owner, que esteve acessível e presente sempre que necessário, foi fundamental para esclarecer e validar os requisitos e versões do produto;

Ferramentas de comunicação: as equipes utilizaram várias ferramentas para comunicação e essa experiência mostrou que as tecnologias de comunicação precisam evoluir para suportar o trabalho ágil e distribuído; 6. Considerações Finais Pesquisar novas formas de adaptar metodologias de desenvolvimento e gerenciamento existentes às realidades de equipes e projetos de software é uma maneira interessante de trazer novos processos para diferentes abordagens. Assim, foi apresentada uma experiência de sucesso na adaptação de gerenciamento ágil em projeto distribuído, mostrando que é possível adaptar boas práticas em diferentes contextos de projeto. Com o crescimento do número de empresas que utilizam abordagens ágeis e distribuídas, é possível que esta forma de trabalho seja, em breve, a mais usada por grandes organizações no setor de software. É fundamental que experiências práticas, como a apresentada neste trabalho, sejam colocadas por outras pessoas à disposição, buscando resultados mais relevantes para a comunidade de software. Assim, é importante destacar alguns aspectos considerados críticos para o sucesso no gerenciamento de projetos como este: a equipe de desenvolvimento deve ser dividida em times menores; os times devem ser heterogêneos e autogerenciáveis; definir um time de apoio ajuda no andamento do projeto; a consultoria, como do PO, deve ser acessível sempre que necessário; e, procurar boas ferramentas de comunicação. Referências Audy, J. and Prikladnicki, R. (2008) Desenvolvimento Distribuído de Software, Editora Elsevier. Ferreira, A. I. F., Cerqueira, R., Santos, G., et al. (2006) "ISO 9001:2000, MPS.BR Nível F e CMMI Nível 3: Uma Estratégia de Melhoria de Processos na BL Informática", V SBQS, pp. 375-382, Vila Velha, Brasil. Herbsleb, J.D. (2001) Global Software Development, IEEE Software, EUA, p.16-20. Kniberg, H. (2007) Scrum e XP direto das Trincheiras, Editora C4 Media, Publisher of InfoQ.com. Lopes, L. T. (2004) Um Modelo de Processo de Engenharia de Requisitos para Ambientes de Desenvolvimento Distribuído de Software, Dissertação de Mestrado em Ciências da Computação, Pontifícia Universidade Católica do Rio Grande do Sul, Porto Alegre. Pragmatic Marketing Survey (2007) 2007 Annual Product Management and Marketing Survey, http://www.pragmaticmarketing.com/publications/topics/08/the-politics-ofagile, Março. Prikladnicki, R. (2003) MuNDDoS: Um Modelo de Referência para Desenvolvimento Distribuído de Software, Dissertação de Mestrado, Pontifícia Universidade Católica do Rio Grande do Sul, Brasil, 2003. Schwaber, K., Beedle, M. (2002) Agile Software Development with Scrum, Prentice Hall. Schwaber, K. (2004) Agile Project Management with Scrum, Microsoft Press.