CENTRO UNIVERSITÁRIO UNISEB TRABALHO DE CONCLUSÃO DE CURSO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Análise do uso das metodologias SCRUM e MPS.BR no estudo de caso real no desenvolvimento de aplicações comerciais Aluno: Mateus Henrique Mancine Orientador: Prof. Ms Thiago Wellington Joazeiro de Almeida RIBEIRÃO PRETO 2011 ii MATEUS HENRIQUE MANCINE Análise do uso das metodologias SCRUM e MPS.BR no estudo de caso real no desenvolvimento de aplicações comerciais Trabalho de conclusão de curso - Centro Universitário UNISEB – Ribeirão Preto – Bacharelado em Ciência da Computação Orientador: Prof Joazeiro de Almeida RIBEIRÃO PRETO 2011 Ms Thiago Wellington iii Ficha Catalográfica M268a 1. Mancine, Mateus Henrique. Analise do uso das metodologias Scrum e Mps,br no estudo de caso real no desenvolvimento de aplicações comerciais. Mateus Henrique Mancine. - Ribeirão Preto, 2011. 27 f., il.. Orientador: Prof. Me. Thiago Wellington Joazeiro de Almeida. Trabalho de conclusão de curso apresentado ao Centro Universitário UNISEB de Ribeirão Preto, como parte dos requisitos para obtenção do Grau de Bacharel em Ciência da Computação sob a orientação do Prof. Me. Thiago Wellington Joazeiro de Almeida. 1. Scrum com Mps,br. 2. caso real. 3. Aplicações comerciais. I. Título. II. Almeida, Thiago Wellington Joazeiro de. CDD 005.74 iv Para meu amigo Emerson que foi de grande importância para a realização deste trabalho. v Agradeço a Deus por ter colocado pessoas que durante o curso me apoiaram e incentivaram em momentos de desânimo e por capacitar-me para realização deste trabalho. vi “Se o Senhor não edificar a casa, em vão trabalham os que a edificam...” (Salmos 127:1) vii RESUMO O número de organizações que buscam melhores resultados no desenvolvimento de software por processos de produção e estrutura organizacional cresce a cada dia, algumas dessas empresas de desenvolvimento de software já utilizam modelos internacionais de qualidade em busca dessa melhoria, entretanto, a aplicação destes modelos é cara e complexa. Com a finalidade de aprimorar o processo de desenvolvimento de software no Brasil, a SOFTEX elaborou o modelo MPS.BR, cujo objetivo é atender pequenas e médias empresas, sendo uma ótima alternativa dentre as metodologias de melhoramento de processos de desenvolvimento de software. Outra metodologia muito aplicada é o SCRUM, que tem o propósito de agilizar o desenvolvimento de software e possibilitar a entrega de projetos, de forma a atender os requisitos de maior valor agregado ao cliente. No Brasil, uma prática utilizada é a adoção das duas metodologias, SCRUM e o MPS.BR, que em conjunto buscam a agilidade no desenvolvimento mantendo um processo mapeado, garantindo assim, a qualidade no produto entregue ao cliente. Neste trabalho foi realizado a análise sobre o uso da metodologia SCRUM junto com o MPS.BR na gestão do desenvolvimento de softwares em uma empresa privada na cidade de Ribeirão Preto. viii ABSTRACT The number of organizations that looks for better results in the software development applied for production processes and organizational structure grows every day, some of these software development companies already use international models for quality improvement, and the application of these models is expensive and complex. In order to improve the process of software development in Brazil, SOFTEX developed the model called MPS.BR, which aims to assist small and medium enterprises, becoming a great alternative between methodologies for improving software development processes. Another method applied is SCRUM, which aims to speed up the software development and enable the delivery of projects to meet the requirements of higher added value to the customer. In Brazil, the common use is the adoption of the two methodologies, SCRUM and MPS.BR together, which seek to maintain an agile development process mapped, thus ensuring the quality of the delivered product. In this work, it will be fulfilled an analysis about applying SCRUM together MPS.BR methodologies at the software development management at private company placed at Ribeirão Preto city. ix LISTA DE ABREVIATURAS E SIGLAS BID – Banco Interamericano de Desenvolvimento. CMMI – Capability Maturity Model Integration. FINEP – Financiadora de Estudos e Projetos. GPR – Gerência de Projetos. GRE – Gerência de Requisitos. MCT – Ministério de Ciência e Tecnologia. MPS.BR – Melhoria de Processos do Software Brasileiro. SEBRAE – Serviço Brasileiro de Apoio às Micro e Pequenas Empresas. SOFTEX – Associação para Promoção da Excelência do Software Brasileiro. x SUMÁRIO 1. Introdução ................................................................................................................. 1 2. Fundamentos Teóricos .............................................................................................. 3 2.1. MPS.BR – Melhoria de Processo de Software Brasileiro.................................. 3 2.2. Nível G de maturidade do MPS.BR................................................................... 6 2.2.1. Processo de gerencia de projetos - GPR ..................................................... 6 2.2.2. Processo de gerencia de requisitos - GRE .................................................. 8 2.3. 3. SCRUM ............................................................................................................. 9 2.1.1. Papéis do SCRUM.................................................................................... 10 2.1.2. Time-Boxes............................................................................................... 12 2.1.3. Product Backlog ....................................................................................... 14 2.1.4. Sprint Backlog .......................................................................................... 14 Estudo de Caso ....................................................................................................... 16 3.1. A Empresa........................................................................................................ 16 3.2. Metodologia ..................................................................................................... 17 3.2.1. Questionário Sobre MPS.BR.................................................................... 17 3.2.2. Questionário Sobre SCRUM .................................................................... 19 3.3. Analise ............................................................................................................. 21 4. Conclusão ............................................................................................................... 25 5. Referências ............................................................................................................. 27 1 1. Introdução A indústria do software criou nos últimos anos alguns padrões e processos no desenvolvimento de software que possibilitou gerar um produto final com mais qualidade. E com isso a Engenharia de Software ganhou o seu espaço em todas as empresas que atuam com desenvolvimento de novos softwares. Através desta engenharia é possível adotar modelos e definir como será todo o desenvolvimento do software detalhando cada fase e cada recurso necessário. O quão efetivo e eficiente será a adoção de modelos, dependerá da maturidade da equipe e do conhecimento sobre a metodologia. Para isso algumas empresas têm analisado e discutido junto com suas equipes métricas que possam analisar se um determinado procedimento ou metodologia tem gerado algum efeito sobre a produtividade e qualidade do software. De acordo com Neto (2010), a empresa de software que deseja sobreviver no mercado atualmente deve perseguir continuamente metas de qualidade em seus projetos. Hoje existem grandes empresas e órgãos governamentais criando critérios de pontuação técnica em suas licitações para favorecer fornecedores com certificados de qualidade em seus processos de produção. Cada vez mais, empresas e organizações necessitam de produtos com qualidade, livres de erros e com soluções imediatas. Para atender a esta demanda, empresas de software visam, em seus projetos, o aumento da confiabilidade, o menor número de conflitos e a redução dos custos, resultando em maior satisfação do cliente (Santesso, 2009). No mundo empresarial, em qualquer seguimento, a competitividade levantada pela qualidade impulsiona não só os resultados na forma dos produtos oferecidos, como também a produção por meio de processos. Nas empresas de software isso se reflete perfeitamente na qualidade dos produtos, processos e distribuição (Neto, 2010). A qualidade de software passou a representar um requisito básico e não mais um fator diferencial, logo as buscas pela adoção de processos de qualidade se tornam imprescindíveis, com as definições atuais de modelos de qualidade foi criado o MPS.BR (Melhoria de Processo de Software Brasileiro) que adota as definições sugeridas pelo CMMI, mas busca reduzir a formalidade exagerada (Teixeira, 2007). 2 Neste trabalho o objetivo será analisar as práticas do SCRUM junto ao processo de gerência e desenvolvimento do MPS.BR, aplicado em uma empresa brasileira, utilizando o melhor de cada metodologia, com a finalidade de melhorar constantemente o seu processo de desenvolvimento de software sem perder a agilidade de entrega. Através da análise de dados reais, serão apresentados os benefícios obtidos na utilização desse conjunto de modelos, demonstrando as melhorias alcançadas na maturidade da empresa no desenvolvimento de software. A técnica utilizada para obtenção desses dados é a entrevista. Neste trabalho será mostrado como uma empresa, que é uma das maiores empresas de âmbito nacional no seguimento de desenvolvimento e manutenção de software administrativo, cujo nível de manutenção é considerável alto, vem aplicando o nível de maturidade do MPS.BR junto ao método ágil SCRUM, seguindo seus conceitos e práticas com a finalidade de melhorar o seu processo de desenvolvimento de software, entregando seus produtos de forma rápida e com um alto padrão de qualidade. 3 2. Fundamentos Teóricos 2.1. MPS.BR – Melhoria de Processo de Software Brasileiro De acordo com a SOFTEX (2011), o objetivo do MPS.BR é: “O MPS.BR tem como objetivo disseminar o Modelo de Referência para Melhoria do Processo de Software visando estabelecer um caminho economicamente viável para que organizações, incluindo as pequenas e médias empresas, alcancem os benefícios da melhoria de processos e da utilização de boas práticas da engenharia de software em um intervalo de tempo razoável.” Surge então, em dezembro de 2003, o MPS.BR, coordenado pela Associação para Promoção da Excelência do Software Brasileiro (SOFTEX) apoiado pelo Ministério da Ciência e Tecnologia (MCT), Serviço Brasileiro de Apoio às Micro e Pequenas empresas (SEBRAE), Banco Interamericano de Desenvolvimento (BID) e pela Financiadora de Estudos e Projetos (FINEP) (SOFTEX,2011). Segundo a (SOFTEX, 2011) a mudança nos negócios motiva as empresas de desenvolvimento de software a melhorar as estruturas organizacionais e os processos de produção, buscando alcançar competividade pela qualidade dos produtos e serviços. Como em vários outros setores, a qualidade é um diferencial que influência diretamente no sucesso das empresas de software, assim, para ter um produto competitivo no mercado nacional ou internacional é imprescindível manter a busca pela eficiência dos processos de desenvolvimento, ofertando produtos com padrões de qualidade internacional (SOFTEX, 2011). O modelo MPS.BR busca se adequar ao perfil de empresas dos mais diferentes tamanhos, independente de serem empresas públicas ou privadas, a SOFTEX busca também que o seu modelo seja compatível com padrões de qualidades internacionais. Santesso (Santesso, 2009) descreve o MPS.BR como um modelo de referência que visa atingir maior qualidade no processo de desenvolvimento de software, principalmente em organizações com recursos limitados para investimento em qualidade. Este modelo não define novos conceitos, apenas adequa as estratégias de implementação à realidade brasileira. 4 O MPS.BR tem como base os princípios de engenharia de software, como processos definidos e modelos de melhorias de processos, o modelo se baseia em conceitos de maturidade e na capacidade do processo de desenvolvimento para avaliar a melhoria da qualidade da produção dos produtos de software e serviços relacionados (SOFTEX,2011). A maturidade do modelo MPS.BR é representada por patamares de evolução. São divididos em sete níveis com o objetivo de possibilitar a implementação e avaliação mais adequada a cada empresa, possibilitando vislumbrar os resultados das melhorias dos processos em prazos mais curtos. Estando em um determinado nível de maturidade, uma empresa consegue prever quais os esforços futuros para conseguir um nível de maturidade mais elevado, assim facilitando o foco nas melhorias dos seus processos. Segundo (Neto, 2010) o modelo de maturidade do MPS.BR é semelhante ao modelo do CMMI, entretanto com um número maior de níveis de maturidade, com mais estágios, é possível se adequar melhor a realidade brasileira, resultando em avaliações em prazos mais curtos. A SOFTEX define os sete níveis de maturidade do MPS.BR como: • A - Em Otimização • B - Gerenciado Quantitativamente • C - Definido • D - Largamente Definido • E - Parcialmente Definido • F - Gerenciado • G - Parcialmente Gerenciado 5 Figura 01 – Níveis de maturidade do MPS.Br O nível G é o primeiro nível na escala de maturidade cuja progressão vai até o nível A (SOFTEX,2011). A SOFTEX apresenta no guia, quais os processos devem ser atendidos em cada nível de maturidade. Segue abaixo os processos por cada nível segundo a (SOFTEX, 2011): Nível A Otimização dos processos Nível B Gerência de Projetos – GPR (evolução) Nível C Gerência de Riscos – GRI Desenvolvimento para Reutilização – DRU Gerência de Decisões – GDE Nível D Verificação – VER Validação – VAL Projeto e Construção do Produto – PCP 6 Integração do Produto – ITP Desenvolvimento de Requisitos – DRE Nível E Gerência de Projetos – GPR (evolução) Gerência de Reutilização – GRU Gerência de Recursos Humanos – GRH Definição do Processo Organizacional – DFP Avaliação e Melhoria do Processo Organizacional – AMP Nível F Medição – MED Garantia da Qualidade – GQA Gerência de Portfólio de Projetos – GPP Gerência de Configuração – GCO Aquisição – AQU Nível G Gerência de Requisitos – GRE Gerência de Projetos – GPR 2.2. Nível G de maturidade do MPS.BR Este trabalho abordará o nível G de maturidade, composto por: Gerência de Projeto - GPR e Gerência de Requisitos - GRE. 2.2.1.1. Processo de gerencia de projetos - GPR O processo de Gerência de Projetos segundo a (SOFTEX,2011) é estabelecer e manter definições de atividades, recursos e responsabilidades para um projeto, prover informações sobre o andamento do projeto para eventuais correções do projeto e este processo evolui de acordo com o nível de maturidade. 7 Uma das atividades prevista para o GPR é implementar um plano de controle de determinado projeto para obter o comprometimento e mantê-lo durante sua execução. Teixeira (Teixeira, 2007) cita em seu trabalho que o GPR pode ser comparado ao processo de construção de uma casa, pois o processo de tal construção inicia-se com atividades que passam desde a preparação do terreno até a própria construção, posteriormente estas atividades são dividas em tarefas menores o que simplifica a construção. Com isso espera-se um melhor entendimento de cada tarefa e consequentemente um resultado mais satisfatório. Os resultados esperados segundo a (SOFTEX, 2011) para o GPR no nível de maturidade G do MPS.BR são: GPR 1. O escopo do trabalho para o projeto é definido; GPR 2. As tarefas e os produtos de trabalho do projeto são dimensionados utilizando métodos apropriados; GPR 3. O modelo e as fases do ciclo de vida do projeto são definidos; GPR 4. (Até o nível F) O esforço e o custo para a execução das tarefas e dos produtos de trabalho são estimados com base em dados históricos ou referências técnicas; GPR 5. O orçamento e o cronograma do projeto, incluindo a definição de marcos e pontos de controle, são estabelecidos e mantidos; GPR 6. Os riscos do projeto são identificados e o seu impacto, probabilidade de ocorrência e prioridade de tratamento são determinados e documentados; GPR 7. Os recursos humanos para o projeto são planejados considerando o perfil e o conhecimento necessários para executá-lo; GPR 8. (Até o nível F) Os recursos e o ambiente de trabalhos necessários para executar o projeto são planejados; GPR 9. Os dados relevantes do projeto são identificados e planejados quanto à forma de coleta, armazenamento e distribuição. Um mecanismo é estabelecido para acessá-los, incluindo, se pertinente, questões de privacidade e segurança; GPR 10. Um plano geral para a execução do projeto é estabelecido com a integração de planos específicos; 8 GPR 11. A viabilidade de atingir as metas do projeto é explicitamente avaliada considerando restrições e recursos disponíveis. Se necessário, ajustes são realizados; GPR 12. O Plano do Projeto é revisado com todos os interessados e o compromisso com ele é obtido e mantido; GPR 13. O escopo, as tarefas, as estimativas, o orçamento e o cronograma do projeto são monitorados em relação ao planejado; GPR 14. Os recursos materiais e humanos bem como os dados relevantes do projeto são monitorados em relação ao planejado; GPR 15. Os riscos são monitorados em relação ao planejado; GPR 16. O envolvimento das partes interessadas no projeto é planejado, monitorado e mantido; GPR 17. Revisões são realizadas em marcos do projeto e conforme estabelecido no planejamento; GPR 18. Registros de problemas identificados e o resultado da análise de questões pertinentes, incluindo dependências críticas, são estabelecidos e tratados com as partes interessadas; GPR 19. Ações para corrigir desvios em relação ao planejado e para prevenir a repetição dos problemas identificados são estabelecidas, implementadas e acompanhadas até a sua conclusão; 2.2.2. Processo de gerencia de requisitos - GRE O processo de Gerência de Requisitos segundo a (SOFTEX, 2011) tem o objetivo de gerenciar os requisitos de um determinado projeto e identificar problemas destes requisitos. Teixeira (Teixeira, 2007) cita que o requisito é uma definição documentada que uma particularidade ou comportamento de um produto de software ou serviço deve atender para chegar a um objetivo. Gerenciamento de requisitos é o ato de entender e gerenciar as mudanças. Estes requisitos devem ser descritos de forma a estabelecer um consenso entre as partes, buscando o correto entendimento das funcionalidades do produto ou serviço. 9 Os resultados esperados segundo a (SOFTEX, 2011) para o GRE no nível de maturidade G do MPS.BR são: GRE 1. O entendimento dos requisitos é obtido junto aos fornecedores de requisitos; GRE 2. Os requisitos são avaliados com base em critérios objetivos e um comprometimento da equipe técnica com estes requisitos é obtido; GRE 3. A rastreabilidade bidirecional entre os requisitos e os produtos de trabalho é estabelecida e mantida; GRE 4. Revisões em planos e produtos de trabalho do projeto são realizadas visando identificar e corrigir inconsistências em relação aos requisitos; GRE 5. Mudanças nos requisitos são gerenciadas ao longo do projeto. 2.3. SCRUM O SCRUM foi idealizado com o intuito de gerenciar o processo de produção em fábricas de automóveis japoneses (Nonaka, 1986). Este artigo diz que pequenas equipes multidisciplinares alcançam melhores resultados, uma alusão ao SCRUM do Rugby para referenciar as reuniões de equipes adaptáveis. A jogada do Rugby denominada de SCRUM tem o objetivo de reunir os jogadores para planejar a próxima jogada, dividindo assim a partida em partes menores para atingir o objetivo maior que é ganhar o jogo. Em 1995, Jeff Sutherland e Ken Schwaber descreveram o SCRUM como um framework para o desenvolvimento de software. Entretanto, o SCRUM é considerado um processo incremental e iterativo para qualquer tipo de trabalho, cuja finalidade é aperfeiçoar o andamento de um projeto através de seu processo muito bem definido. Suas principais características são a sua adaptabilidade e seu empirismo (Neto, 2010). O SCRUM por ser empírico busca analisar os resultados dos processos visando corrigi-los se necessário, mas aceita falhas que são naturais de produção, procurando exibi-las o mais rápido possível (SANTESSO, 2009). 10 Segundo o SCRUM.ORG (2010), o SCRUM é um processo e sim um framework onde são encontrados diversas técnicas e processos. Segundo o SCRUM.ORG (2010), é dito que: “O papel do SCRUM é fazer transparecer a eficácia relativa das suas práticas de desenvolvimento para que você possa melhorá-las, enquanto provê um framework dentro do qual produtos complexos podem ser desenvolvidos. “ Fundamentado na teoria de controle de processos empíricos, o SCRUM se sustenta em três pilares (SCRUM.ORG, 2010) que estão descritos abaixo: • Transparência Através da transparência pode-se assegurar que as características de um processo que afetem o resultado ficam visíveis para os administradores dos resultados. Entretanto estas características não devem ser apenas transparentes, mas também conhecidas, ou seja, quando alguém inspeciona algo que está correto, o que foi julgado como correto deve estar de acordo com a definição de correto. • Inspeção As características de um processo devem ser inspecionadas frequentemente para que uma eventual variação deste processo seja detectada. • Adaptação Caso o responsável pelas inspeções constatar que existem aspectos do processo que estão fora dos padrões e o produto final não será aceitável, o processo é ajustado rapidamente para evitar problemas posteriores. 2.1.1. Papéis do SCRUM O Framework SCRUM é formado por times onde cada membro possui um papel, os papéis são: o time de SCRUM, ScrumMaster e Product Owner. Informalmente denominam-se os membros do time de SCRUM de “porcos” e qualquer outra pessoa é denominada de “galinha”. Tais “galinhas” não podem interferir no trabalho dos 11 “porcos”, segundo o SCRUM.ORG (2010). Os “porcos” e “galinhas” vem da seguinte estória: “Uma galinha e um porco estão juntos quando a galinha diz: “Vamos abrir um restaurante!” O porco reflete e então diz: “Como seria o nome desse restaurante?” A galinha diz: “Presunto com Ovos!” O porco diz: “Não, obrigado, eu estaria comprometido, mas você estaria apenas envolvida!.” Esta história ilustra o quão importante é o foco da equipe e o comprometimento para garantir a conclusão de um projeto (Neto, 2010). 2.1.1.1. Product Owner O Product Owner representa os interesses de pessoas que investem no projeto, e também consegue verbas, definem os requisitos do projeto, tais requisitos irão gerar o Product Backlog (Neto, 2010). O Product Owner é o único responsável por gerenciar Product Backlog para garantir o trabalho realizado pelo time. Este membro também tem como responsabilidade de garantir a visibilidade do Product Backlog para o time e que todos saibam a prioridade de cada item a se trabalhar. O Product Owner também pode ser um membro do desenvolvimento do projeto, entretanto nunca pode ser o Scrum Master (SCRUM.ORG, 2010). 2.1.1.2. Scrum Master O Scrum Master tem a responsabilidade de garantir que o time absorva os valores do SCRUM adotando suas praticas e regras, O ScrumMaster ajuda o Time a ser auto organizado e multidisciplinar para que o time torne-se mais produtivo e capaz de desenvolver produtos de melhor qualidade. O ScrumMaster nunca pode ser o Product Owner (SCRUM.ORG, 2010). 12 2.1.1.3. Time SCRUM O time tem o papel de desenvolver o que está descrito no Product Backlog. O conhecimento de cada membro do time deve ser compartilhado, para o SCRUM o conhecimento compartilhado é mais importante que o conhecimento não compartilhado. Recomenda-se que um time seja formado por sete pessoas com a exceção do Scrum Master e do Product Owner, pois o menor número de pessoas existe menos interação entre os membros e possivelmente a limitação de conhecimento e consequentemente a menor produtividade e qualidade do produto, e caso existam mais pessoas no time existirá a necessidade de uma coordenação maior e mais complexa o que também prejudica o desenvolvimento do produto (SCRUM.ORG, 2010). 2.1.2. Time-Boxes O Time-Boxes no SCRUM são todas as atividades realizadas pelo framework, tais atividades são: 2.1.2.1. Reunião de planejamento do release O planejamento do release tem o objetivo planejar e estabelecer metas, prazos e prioridades para que a organização possa transformar determinado projeto em um produto da melhor forma possível e alcançar a satisfação do cliente (SCRUM.ORG, 2010). 2.1.2.2. O Sprint O Sprint trata-se de uma iteração de duração recomendada de duas semanas. Durante tal iteração a composição do time e suas metas devem permanecer constantes até o final da iteração. 13 Os Sprints podem ser cancelados pelo Product Owner, apesar dele poder sofrer influência das partes interessadas. Recomenda-se o cancelamento do Sprints quando por alguma causa não faça mais sentido sua continuação, entretanto devido ao curto período de interação dificilmente isso acontece. Eventualmente quando o cancelamento é feito todos os itens não realizados no Sprints devem retornar ao Product Backlog (SCRUM.ORG, 2010). 2.1.2.3. Reunião de Planejamento do Sprint A reunião de planejamento do Sprint tem a duração recomendada de quatro horas para um Sprint de duas semanas. O objetivo da reunião é planejar quais itens do ao Product Backlog serão feitos no Sprint. O Product Owner mostra ao time as prioridades do Product Backlog e o time decide quais itens são selecionados de acordo com a quantidade de itens que o time poderá entregar até o termino do Sprint (SCRUM.ORG, 2010). 2.1.2.4. Revisão do Sprint Quando é encerrado o Sprint uma reunião de Revisão de Sprint acontece. Essa reunião tem duração recomendada de duas horas. Durante esta reunião o Product Owner verifica o que foi ou não feito e o Time discute quais foram os problemas ocorridos durante o Sprint (SCRUM.ORG, 2010). 2.1.2.5. Daily Scrum Diariamente cada o time realiza uma reunião de 15 minutos em pé onde cada membro do time responde as seguintes perguntas: 1. O que foi feito após a última reunião? 14 2. O que vou fazer até a próxima reunião? 3. Quais foram os problemas encontrados desde a última reunião? O Scrum Master deve conduzir a reunião para que ela seja breve e que as “galinhas” não façam parte da Daily Scrum. A Daily Scrum melhora a comunicação do time, ajuda a tomada rápida de decisões e faz com que todos os membros do time saibam o que está acontecendo acerca do Sprint (SCRUM.ORG, 2010). 2.1.3. Product Backlog Todos os requisitos que devem ser atendidos estão listados no Product Backlog cujo responsável é o Product Owner. Os requisitos listados são aqueles que inicialmente são mais conhecidos e atendidos. O Product Backlog representa o que é necessário para que o produto possa se desenvolver de forma competitiva, e também é considerado dinâmico, pois sofre mudanças constantemente devido as mudanças de requisitos de um produto. A prioridade dos requisitos contidos no Product Backlog é determinada por riscos e valor das necessidades definidas pelo Product Owner (SCRUM.ORG, 2010). 2.1.4. Sprint Backlog O Sprint Backlog representa todos os requisitos selecionados do Product Backlog durante a reunião de planejamento do Sprint, e pode ser considerado como o “retrato em tempo real” daquilo que o time planejou realizar durante o Sprint (SCRUM.ORG, 2010). A figura abaixo exibe resumidamente o ciclo do Scrum, destacando suas fases de planejamento, ciclos de interação e entrega. 15 Figura 02 – Clico do SCRUM 16 3. Estudo de Caso 3.1. A Empresa Neste trabalho será analisada uma empresa que vem aplicando o SCRUM e MPS-BR no dia a dia. Este estudo de caso está relacionado com uma das maiores empresas de âmbito nacional no segmento de desenvolvimento e manutenção de software administrativo, neste trabalho, por motivos de confidencialidade, tal empresa será denominada como Empresa Modelo. Constatou-se que esta empresa possui cento e quarenta e um funcionários diretos e cinco representantes comerciais, os quais estão estabelecidos em diversas regiões do país, sendo que alguns destes também realizam trabalhos técnicos, através do suporte e atendimento aos seus clientes. Esta empresa atua em vários Estados da Federação e conta com um total de cento e trinta e dois clientes, sendo que a maioria destes possui mais de um produto instalado e em alguns casos todos. Os produtos da empresa modelo têm como foco a administração dos dados de seus clientes, através da integração das informações processadas em cada produto, onde o resultado gerado por um normalmente é a entrada para outro realizar o seu processamento. Para os casos de clientes que possuem mais de um fornecedor de software administrativo, a interligação das informações também é realizada, mas não de uma forma tão eficiente como mencionado anteriormente, devido às divergências existentes nas características dos produtos de cada fornecedor. 17 3.2. Metodologia Um questionário foi elaborado e aplicado à diretoria da empresa, ao gerente de projetos e aos analistas de sistemas. Através deste questionário, uma análise será feita para entender quais foram os ganhos reais na implementação do SCRUM e do MPS.BR. O MPS.BR foi implementado no nível G e é utilizado para os processos de implantação de sistemas, conforme já relatado. Pretende-se com a análise dos resultados obtidos, relatar os pontos positivos e negativos, bem como propor sugestões para a implementação do modelo em uma organização. O mesmo procedimento de questionário e levantamentos de pontos e sugestões também foi aplicado para o SCRUM. 3.2.1. Questionário Sobre MPS.BR 1. O que motivou a empresa a investir na implantação do MPS.BR Nível G? 2. Como era definido o escopo dos projetos antes da implantação do MPS.BR? 3. Como o escopo de um projeto de implantação é definido hoje após a implantação do MPS.BR? Existem modelos a serem seguidos? 4. Sabe-se que não existiam métodos adequados para mensurar o tamanho de um projeto, hoje, após a definição do escopo de um projeto existem métodos apropriados para definir as tarefas e dimensionar um projeto? 5. Quais controles para cronogramas e pontos de controles de projetos foram implementados para evitar gargalos e elevação do orçamento do projeto? 6. Como são identificados os riscos do projeto? Existe a gestão de tais riscos? Como são definidos os impactos e probabilidades dos riscos? 18 7. Sabendo que cada produto da empresa possui uma equipe com colaboradores fixos, como é feita a gestão dos recursos humanos em diferentes projetos de implantação? 8. Existe estrutura de armazenamento dos dados do projeto? Como é feira a distribuição destes dados? Quem é responsável por definir as questões de segurança? 9. Como é monitorado o projeto do ponto de vista de cumprimento de prazos considerando restrições encontradas durante o projeto? 10. Os clientes participam de revisões de projetos? De qual forma? 11. Como são gerenciadas as expectativas dos clientes durante o projeto? 12. Sabendo-se que ações corretivas devem ser implementadas para corrigir um problema, como é feito o monitoramento dos riscos para que se evite que os riscos vem a ocorrer? Existem padrões de ações a serem tomadas? 13. Como é obtido o comprometimento da equipe para um projeto? 14. Existe um mecanismo que permita rastrear a interdependência de requisitos e o impacto de mudanças dos requisitos? Explique. 15. Como são tratadas as mudanças de requisitos durante o projeto? Existem ferramentas que registram as necessidades de mudanças? 16. Quais a principais dificuldades encontradas durante gerencia do projeto? 19 17. Quais foram os ganhos obtidos após a implantação da gerencia de projeto estabelecida pelo MPS.BR? 18. Quais a principais dificuldades encontradas durante gerencia de requisitos? 19. Quais foram os ganhos obtidos após a implantação da gerencia de requisitos estabelecida pelo MPS.BR? 3.2.2. Questionário Sobre SCRUM 1. O que motivou a empresa a investir na implantação do framework SCRUM? 2. Todas as equipes sejam elas de qualquer área da empresa utilizam o SCRUM? Por quê? 3. O SCRUM utilizado pela empresa segue todas as recomendações do Guia Geral do SCRUM? 4. Sabe-se que o SCRUM é um processo empírico, desta forma como são feitas a analise de resultados obtidos? As falhas no produto são exibidas para que a correção seja feita o mais rápido possível? 5. Sabemos que para um administrador necessita que exista transparência nos processos e resultados, de qual forma o SCRUM contribuiu para que tal transparência existisse? 20 6. O processo de manutenção de software é inspecionado frequentemente para evitar eventuais variações do processo? Como isso é feito? 7. Eventualmente caso seja detectado uma falha no processo de manutenção que impedirá que o software seja aceitável no fim do ciclo de manutenção o processo é ajustado para que o produto seja entregue de forma aceitável? De que forma são feitas as adaptações no processo? 8. Podemos dizer que todos os membros das equipes que utilizam o SCRUM são comprometidos com o processo? 9. Existe o papel do Product Owner? Como é feita a gerencia do Product Backlog? 10. Sabemos que as equipes que utilizam os SCRUM tem uma pessoa como ScrumMaster, tal pessoa busca deixar sua equipe multidisciplinar a fim de melhorar a produtividade e a qualidade dos produtos? 11. O ProductOwner participa das reuniões de planejamento de Sprint ou tal tarefa foi atribuída à outra pessoa? Por quê? 12. São realizadas Reuniões de revisões de Sprint? Quando uma equipe não consegue cumprir todas as tarefas selecionadas para o Sprint o que é feito? 13. São feitas reuniões diárias entre as equipes? Como são realizadas tais reuniões? 14. Quais as dificuldades encontradas para implantar o SCRUM na empresa? 15. Quais os ganhos encontrados após a implantação do SCRUM? 21 3.3. Analise Ao receber as respostas dos questionários, foram feitas análises das respostas com o objetivo de entender a evolução da gestão do desenvolvimento de software bem como os efeitos gerados em cima da produtividade e gestão do desenvolvimento de software comparando-as com os procedimentos executados antes da implantação de tais metodologias, com isto pode-se constatar que: Antes da implantação do MPS.BR a empresa não possuía processos definidos de desenvolvimento de software, os papéis de cada indivíduo não eram claros e não existia a garantia de padronizações em seus produtos. Com o aumento no quadro de funcionários e ampliação da carteira de clientes, a empresa percebeu a necessidade da criação e certificação de processos. Dentre as várias metodologias disponíveis no mercado foi escolhido o MPS.BR pelas seguintes motivações: - Menor custo de implantação se comparado com demais já existentes no mercado; - Possibilidade de implantar o modelo em conjunto com outras empresas da região possibilitando assim a diminuição dos custos; - Subsídios do governo através da SOFTEX; Para a implantação do MPS.BR a empresa criou um modelo de processo de definição de escopo de projeto, o modelo fica a critério da empresa para nível G do MPS.BR, e segundo o gerente de projetos o processo é simples e tem muito a ser melhorado, mas o mais importante é que o processo está padronizado. Após a definição do escopo, o projeto é mensurado, foi criado um método para estimar o tamanho do projeto baseado nas funcionalidades do produto, tal método segue os seguintes passos: - Elencar as funcionalidades que sofrerão manutenção e/ou desenvolvimento; - Determinar o nível de complexidade da funcionalidade como baixa, média, ou alta. Para realizar a classificação das funcionalidades foi criada uma planilha de cálculo 22 onde são determinadas algumas características da funcionalidade, como número de relacionamentos, números de campos, número de quebra para relatórios, etc., e a planilha se encarrega de apontar o nível de complexidade. A empresa se preocupa em dizer que a planilha foi construída baseando-se na experiência dos responsáveis de cada setor de desenvolvimento. Hoje o uso é facultativo, e é mais utilizada para colaboradores iniciantes. Sabendo que o nível G não exige planos de contingências ou processos mais aperfeiçoados de gestão de risco a empresa passou a fazer uma gestão simples dos riscos dos projetos, existe apenas um repositório com os principais riscos que possam vir a ocorrer nos projetos e algumas ações preventivas e corretivas que facilite o gerente de projetos no levantamento e acompanhamento dos riscos. Existe uma particularidade na gestão de recursos humanos, a empresa possui vários produtos e cada um destes produtos possui equipes distintas. Na maioria dos projetos são implantados todos os produtos, e de acordo com a complexidade do projeto, definida no levantamento prévio, os técnicos necessários para cada atividade, como, treinamento, conversão, customização, implantação e acompanhamento, os recursos selecionados, passam a ser coordenados pelo Gerente do Projeto, e não mais pelos seus coordenadores, e ao término do projeto o colaborador retorna ao setor de origem, e para obter-se o comprometimento de todos é realizada a reunião de kick-off e recebem uma cópia do plano de projeto. O nível G do MPS.BR exige a presença de uma estrutura de armazenamento dos dados do projeto, para atender tal exigência a empresa criou um repositório restrito com os principais artefatos do projeto. É um repositório único, com os produtos, onde é controlado o acesso pelo nível de usuário. Os prazos de entregas dos projetos são definidos nos editais de licitações, e em cada ponto de controle e marco acompanha-se o cumprimento das atividades. Em situações em que os prazos não são cumpridos, podem-se incluir mais recursos no projeto, ou em último caso, a empresa negocia um prazo mais adequado com o cliente. Em todos os projetos da empresa os clientes aprovam o plano de projeto logo após a conclusão do planejamento, e somente após a aprovação inicia-se a fase de 23 execução. Mas existe um plano específico para gerenciar as expectativas, entretanto, especifica-se no plano de projeto itens como prazo, restrições, escopo e não escopo. A empresa também conta com uma ferramenta interna onde estão todos os requisitos dos produtos e suas interdependências, em tal ferramenta registra-se as mudanças, o processo da empresa, as mudanças passam por uma análise, aprovação e aceitação. Durante a implantação do MPS.BR na questão da gerencia de projetos a empresa deparou-se com uma grande dificuldade que é a gestão de pessoas, a empresa diz que seus projetos envolvem em média trinta técnicos, e que grande parte desses técnicos trabalham no cliente por meses, causando assim um certo desconforto. Além dos técnicos, têm-se os usuários do cliente, que em média, chegam a quinhentas pessoas. Já a dificuldade de gerencia de requisitos houve um consenso que a maior dificuldade são as mudanças constantes dos requisitos. O gerente de projetos da empresa expressou tal dificuldade citando a seguinte frase: “andar sobre a água e desenvolver requisitos de sistema é fácil, desde que os dois estejam congelados” Após ter finalizado o processo de implantação do MPS.BR pode-se dizer que a visão do projeto foi o principal ganho, em outras palavras, a empresa conseguiu padronizar o processo e junto com a padronização, conseguiu identificar falhas. Com os feedbacks dos projetos, a empresa mudou até a forma vender, aumentando assim o faturamento. Quanto à gestão de requisitos, auxiliou muito no planejamento do projeto e principalmente no controle do mesmo, permitindo especificar claramente quando começa e quando termina um projeto. Após a implantação do MPS.BR a empresa percebeu que o modelo atendia os projetos de implantação, mas na manutenção o mesmo não se encaixava com as necessidades e históricos da empresa, com isso, membros da empresa participaram de vários treinamentos de outros processos de gerenciamento, até encontrar um que se aproximasse às expectativas da empresa, então, a empresa começou a trabalhar com o SCRUM. 24 Todas as áreas da empresa receberam o treinamento do SCRUM, mas nem todas as áreas se adaptaram com o modelo, e como a empresa obrigou a utilização do modelo apenas para o setor de desenvolvimento de software, algumas áreas optaram por não trabalharem com o SCRUM. O gerente de projetos da empresa diz que a empresa absorveu apenas algumas das boas práticas do SCRUM, e fez algumas adaptações, criando assim o modelo ágil da empresa. Segundo o processo da empresa, ao final de cada é realizada uma reunião de encerramento, onde é apresentado os resultado e problemas ocorridos ao longo do ciclo, juntamente com o plano de ação. E a empresa também busca a transparência de seu processo através de dois itens, os quadros AGILE RADIATOR e o segundo, as reuniões de encerramento. Um dos itens do SCRUM que a empresa não absorveu foi à inspeção do processo de desenvolvimento, entretanto, a empresa tem previsão de implantação de um setor de qualidade para 2012, cuja responsabilidade será inspecionar os processos da empresa, garantindo assim que a empresa esteja trabalhando no padrão dos processos definidos. Mesmo não possuindo o setor de qualidade a empresa possui uma equipe responsável por realizar adaptações ao processo, o EPG (Engineering Process Group), as solicitações de mudanças no processo são registradas e analisadas pelo grupo e se pertinentes, são implementadas e disseminada aos envolvidos. A empresa diz que ainda não pode afirmar que todos os membros das equipes estão comprometidos com o processo, entretanto, diz que é notável a participação de todos, mas somente com a implantação do setor de qualidade, poderá ter a dimensão correta da institucionalização do processo. Hoje os coordenadores dos setores exercem o papel de PO do produto e a gestão do Product Backlog é realizada com o auxilio de uma ferramenta interna, onde são registrados, classificados e ordenados os itens do produto, segundo a empresa o PO é peça fundamental na passagem do conhecimento à equipe. 25 Já quanto ao Scrum Master, a empresa afirma que cada equipe possui um membro com este papel, mas, infelizmente não estamos preparados a montar equipes homogenias e multidisciplinares, mas a intenção da empresa é mudar isso assim que alcançar uma maior maturidade. As reuniões diárias não são realizadas conforme descrita no guia do SCRUM, é tida como opcional e infelizmente algumas equipes não a adotam, mas recebem o incentivo para realiza-las. A empresa vê o SCRUM como uma ferramenta fácil de aprender, mas muito difícil de aplicar, e isso se dá por causa das pessoas, a principal mudança e a mais difícil é transformar uma equipe formada por especialista com papéis e funções bem definidas em uma equipe homogenia e multidisciplinar. Os ganhos obtidos com o SCRUM não foi apenas conseguir agilizar o processo de desenvolvimento de software, mas o fato da empresa conseguir inserir uma ferramenta de gestão, onde as equipes se planejam para executar as tarefas do dia-a-dia e a transparência nos projetos foram os pontos determinantes. 4. Conclusão Conforme dito por (SANTESSO, 2009) o número de empresas que adotam metodologias ágeis cresce a cada dia, devido às características de tais metodologias, entretanto, as metodologias ágeis deixam a desejar no que se diz a respeito de documentação do projeto, e as duas metodologias se complementam trazendo resultados satisfatórios. Pode-se concluir que isso é verdade, pois, no caso real a empresa estudada conseguiu documentar o seu processo através do MPS.BR, entretanto, precisava agilizar o processo de desenvolvimento, e tal agilidade foi obtida através das boas práticas do SCRUM, apesar de ter sido pouco adaptado para atender a realidade da empresa. A implantação de ambas as metodologias teve momentos de dificuldades, mas também houveram resultados muito positivos, como melhorias no desenvolvimento consequentemente a melhoria dos seus produtos, e até na parte comercial da empresa, conforme relatado. 26 A expectativa da empresa é melhorar cada vez mais o seu processo de desenvolvimento e subir o nível de maturidade do MPS.BR, o que motiva a realização de trabalhos futuros, pois futuramente a empresa terá como mensurar o quanto estas metodologias foram importantes. 27 5. Referências NETO, Pedro Silva, 2010 - Estudo de caso de um processo de gerenciamento de projetos de software baseado em métodos ágeis e no modelo MPS.BR NONAKA, Hirotaka, 1986 - The New Product Development Game, 1986. Disponível em: <http://www.sao.corvallis.or.us/drupal/files/The%20New%20New%20Product%20Dev elopment%20Game.pdf> acessado em 27-ago-2011 SANTESSO, Paul, 2009 - Utilização de Métodos Ágeis SCRUM com MPS.BR de Nível G SOFTEX. Guia Geral. 2011. Disponível em: <http://www.SOFTEX.br/mpsbr/_guias/guias/MPS.BR_Guia_Geral_2011.pdf> Acessado em 06-Ago-2011. SCRUM.org – Guia geral. Disponível em: <http://www.SCRUM.org/storage/SCRUMguides/SCRUM%20Guide%20%20PTBR.pdf> Acessado em 27-Ago-2011 TEIXEIRA, Marcelo, 2007 - Uma análise do SCRUM sob a perspectiva do MPSBR Uma análise do SCRUM sob a perspectiva do MPS.BR