JIM 2012 - IV Jornada de Informática do Maranhão Gerenciamento de Projetos Aplicado ao Desenvolvimento de Software Corporativo com Metodologias Ágeis e PMBOK Alana Oliveira2,1, Gleisse Moreira2, Wellison Pereira2, Guilherme Soares3, Paulo Morgado2, João Ferreira2 1 Programa de Pós-Graduação em Ciência da Computação –PPGCC/UFMA São Luís – MA 2 3 Instituto Superior de Administração e Negócios – ISAN/FGV São Luís – MA Departamento de Desenvolvimento, Suporte e Inovação – ALUMAR São Luís – MA [email protected], {gleissem,wellisonp}@hotmail.com, [email protected] Abstract. Projects that fail to achieve their goals are common in the area of information technology. Delays, cost overruns and products that do not meet the needs for which they were created undermine the productivity of companies and organizations. Agile development methodologies emerge as an alternative to solve these problems, proposing the development of software through an interactive cycle, with little documentation, strengthening the communication and greater customer involvement with the project team. This paper proposes an adaptation of the Scrum agile methodology to enterprise software development, with support for multiprojects. We describe a real case study applied to systems development in a large multinational company in Sao Luis - MA. 1. Introdução O planejamento é uma necessidade constante para a realização de projetos em qualquer ramo de negócio. Todos os empreendimentos, por mais simples que, aparentemente, possam ser, necessitam de planejamento. Logo, não seria diferente no âmbito da Engenharia de Software, uma vez que gerenciar projetos, principalmente nessa área, tornou-se tarefa árdua devido à velocidade com que as inovações e mudanças acontecem. A quantidade de projetos que fracassam no alcance de seus objetivos contribuiu também para a conscientização da necessidade de planejamento. Estouros de orçamentos, atrasos no cumprimento de prazos e a entrega de produtos fora de conformidade com as necessidades dos clientes são fatos corriqueiros na realidade das organizações. E é justamente neste momento que surge a necessidade de adotar boas práticas e empregar metodologias padronizadas de gestão de projetos que possam orientar o desenvolvimento de um projeto e aumentar a probabilidade do seu sucesso. Nesse cenário, o Project Management Institute, também conhecido como PMI, publicou um guia denominado de PMBOK - Guia do Conjunto de Conhecimentos em JIM, 2012. ISSN: 2358-8861 JIM 2012 - IV Jornada de Informática do Maranhão Gerenciamento de Projetos (PMI, 2004). O PMBOK consolida um conjunto de conhecimentos gerais fruto de pesquisa e experiências relacionadas às melhores práticas, amplamente reconhecidas, utilizadas em gerenciamento de projetos, podendo ser aplicado em projetos das mais diversas áreas de atuação, inclusive nos da área de desenvolvimento de software. Em um processo natural de amadurecimento, também, as metodologias de desenvolvimento de software vêm sendo aperfeiçoadas para atender as peculiaridades inerentes à produção de software. Assim, processos mais simplificados, como as chamadas metodologias ágeis, procuram produzir software de maneira mais direta e menos burocrática e têm despertado o interesse das comunidades de desenvolvimento de software. Metodologias ágeis, pelo seu caráter mais simples e rápido, são consideradas mais adaptadas ao ambiente instável e turbulento no qual o desenvolvimento de software está inserido (BOEHM, 2002) (Cockburn, Highsmith, 2001). O objetivo deste trabalho é analisar as características principais do guia PMBOK e da metodologia ágil SCRUM, bem como avaliar e apresentar um estudo de caso de sua aplicação conjunta por uma equipe de desenvolvimento de software, de uma grande empresa do Distrito Industrial de São Luís, MA. A Seção 2 deste trabalho trata do guia PMBOK, enquanto a Seção 3 aborda a metodologia ágil Scrum. Na Seção 4, detalha-se o estudo de caso de aplicação e adaptação da metodologia e por fim a Seção 5 apresenta as principais conclusões. 2. O Guia PMBOK O PMI1 publicou em 1987 o PMBOK Standards, precursor da versão de 1996 do guia PMBOK. A disponibilização de novas versões do guia, ao longo dos anos, reflete o compromisso contínuo do PMI na atualização dos padrões que ele desenvolve e difunde. O guia PMBOK se tornou uma compilação de conhecimentos “amplamente reconhecidos” e de melhores práticas do gerenciamento de projetos, aceito pelo ANSI e pelo IEEE e utilizado como referência pela ISO. Ainda segundo o PMI (2004), o gerenciamento de projetos é “a aplicação de conhecimento, habilidades, ferramentas e técnicas às atividades do projeto a fim de atender aos seus requisitos”. O termo gerenciamento também pode ser entendido como a execução de atividades e tarefas visando planejamento e controle de atividades de outras pessoas para atingir objetivos que não podem ser alcançados caso as pessoas atuem por conta própria (KOONTZ, O’DONNELL, 1989). O PMBOK (2004) organiza os processos de gerenciamento de acordo com sua temporalidade ao longo do ciclo de vida do projeto, em quatro grandes grupos: de iniciação, planejamento, execução, e monitoramento e controle. O PMBOK também divide os processos de gerenciamento considerando sua natureza e características ao longo de nove áreas de conhecimento, quais sejam: gerenciamento de Integração, Escopo, Tempo, Custos, Qualidade, Recursos Humanos, Comunicação, Riscos e Aquisições. 1 Project Management Institute (http://www.pmi.org/) JIM, 2012. ISSN: 2358-8861 JIM 2012 - IV Jornada de Informática do Maranhão 3. Metodologias Ágeis e SCRUM O termo metodologias ágeis tornou-se popular em 2001, quando dezessete especialistas em processos de desenvolvimento de software estabeleceram princípios comuns compartilhados por várias metodologias. O resultado foi a criação da Aliança Ágil, uma organização sem fins lucrativos que procura promover o conhecimento e discussão sobre as metodologias ágeis existentes e o estabelecimento de um manifesto, chamado de Manifesto Ágil, que consiste em uma declaração de valores comuns e princípios de processos ágeis (AGILE ALLIANCE, 2007). Uma pesquisa sobre o estado do desenvolvimento ágil realizada pela empresa VersionOne, nos Estados Unidos, em 2007, indica que 40% de seus entrevistados utilizam Scrum como metodologia ágil de desenvolvimento de software (VERSIONONE, 2007). Isso se deve ao Scrum mostrar-se como uma metodologia flexível e de fácil aprendizado, recomendada para o gerenciamento de qualquer tipo de projeto. Por essa, e outras características, o Scrum será a metodologia utilizada como base de estudo para este trabalho. 4. Estudo de Caso Este estudo de caso descreve a aplicação, de forma adaptada, da metodologia Ágil Scrum por uma equipe de desenvolvimento de software de uma grande empresa do Distrito Industrial de São Luís, Maranhão. Muito da metodologia original foi mantido, contudo se fez necessário uma adaptação do quadro Scrum (Figura 1) a fim de dar suporte a questões relacionadas a gerenciamento de multi-projetos e compartilhamento de recursos humanos entre os mesmos. Figura 1. O quadro Scrum adaptado ao gerenciamento de multi-projetos Inicialmente, na fase de planejamento a equipe define as funcionalidades a serem incluídas nas novas versões do software (o chamado backlog do produto), JIM, 2012. ISSN: 2358-8861 JIM 2012 - IV Jornada de Informática do Maranhão estimando-se custo e tempo, e definindo a arquitetura, em alto nível, a ser utilizada para implementação do software. Neste momento, ainda não se tem muitos detalhes de como serão implementadas as funcionalidades, já que o produto será melhor conhecido à medida que as sprints forem ocorrendo. Uma sprint na metodologia Scrum é cada uma das iterações onde ocorre o desenvolvimento do produto propriamente dito. A Figura 1 mostra o quadro adaptado utilizado pela equipe para o gerenciamento dos projetos em andamento. Note-se que diferentemente da versão tradicional do Scrum, em que o gerenciamento é feito por projeto, no caso em estudo optou-se por fazê-lo aplicado a multi-projetos. A primeira coluna (WHO) contêm os membros da equipe, onde cada linha define seu backlog (TO DO), o que está sendo desenvolvido por ele na sprint atual (IN PROCESS), os casos de teste sob sua responsabilidade (TO TEST) e, finalmente, o que foi concluído na sprint atual (DONE). Neste ponto reside o grande diferencial da metodologia Scrum adaptada, descrita neste trabalho: cada linha funciona como um mini-quadro Scrum que fornece a visão de cada desenvolvedor, diferentemente da versão tradicional onde se tem a visão do projeto. Sendo assim, esta versão adaptada da metodologia permite o gerenciamento de multi-projetos, sendo mais adequada para equipes pequenas, em que há um grande envolvimento de seus membros na maioria dos projetos. 5. Conclusão Este trabalho descreveu a aplicação de técnicas de gerenciamento de projetos e metodologias ágeis ao desenvolvimento de software em ambientes corporativos. Utilizou-se como estudo de caso uma equipe de desenvolvimento de uma grande empresa multinacional, tendo sido feita uma adaptação da metodologia Scrum original para o gerenciamento de multi-projetos. Isto se revelou de grande valia para fornecer uma visão geral de todos os projetos em desenvolvimento pela equipe, garantindo por consequência um maior envolvimento e sinergia dos seus membros. Referências AGILE ALLIANCE. (2012) “Manifesto for Agile Software Development”, http://www.agilemanifesto.org , May. BOEHM, Barry. (2002) “A Spiral Model of Software Development and Maintenance”, http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/spiral.pdf. Cockburn, Alistair A. R; Highsmith, Jim. (2001) “Agile Software Development: The People Factor”. PMI. Guia PMBOK: Um Guia do Conjunto de Conhecimentos do Gerenciamento de Projetos. Pennsylvania: Project Management Institute, 3. ed., 2004. VERSIONONE. (2007) “Survey: The State of Agile Development.” http://www.versionone.com/pdf/StateofAgileDevelopmentSurvey.pdf. KOONTZ, H.; O’DONNELL, C (1989). “Fundamentos da administração”. 2. ed. São Paulo: Pioneira. JIM, 2012. ISSN: 2358-8861