RAFAEL CARLOS ALCÂNTARA TAMAMARU
Mapeamento de processos de gerenciamento de projetos de uma fábrica de software com base no SCRUM no contexto do MPS-Br e CMMI
Londrina 2009
RAFAEL CARLOS ALCÂNTARA TAMAMARU
Mapeamento de processos de gerenciamento de projetos de uma fábrica de software com base no SCRUM no contexto do MPS-Br e CMMI
Trabalho de Conclusão de Curso de Especialização em Análise, Projeto e Gerência de Sistemas com Ênfase em Inteligência em Negócios – Residência em Software apresentado à Coordenação do Curso de Ciência da Computação da Universidade Estadual de Londrina.
Orientador: Prof. Dr. Rodolfo Miranda Barros
Londrina 2009
RESUMO Este trabalho descreve os procedimentos e ferramentas utilizados para definir e mapear os processos de Gerenciamento de Projetos da Fábrica de Software da empresa LINT – Londrina Tecnologia da Informação, sediada em Londrina/PR, para atender aos modelos MPS-Br (nível F) e CMMI (nível 2), com base nas práticas do SCRUM, já executadas nos projetos da fábrica de softwares da empresa até então. Foram utilizadas ferramentas de apoio aos mapeamentos e um portal online baseado na tecnologia Microsoft Sharepoint Services para a divulgação dos processos e suas instruções de trabalho.
Palavras-chave: Gerenciamento de projetos, SCRUM, CMMI, MPS-Br.
SUMÁRIO
1
INTRODUÇÃO ................................................................................................................5
2
A EMPRESA LINT – LONDRINA TECNOLOGIA DA INFORMAÇÃO S.A. .......6
3
REFERENCIAL TEÓRICO ...........................................................................................7 3.1 3.2 3.3
4
DESENVOLVIMENTO.................................................................................................12 4.1 4.2
5
O CMMI - CAPABILITY MATURITY MODEL INTEGRATION ..........................................7 O MPS BR - MELHORIA DE PROCESSOS DO SOFTWARE BRASILEIRO .....................8 O SCRUM..................................................................................................................9 MAPEAMENTO DOS PROCESSOS ..............................................................................12 FERRAMENTAS ..........................................................................................................13
RESULTADOS ...............................................................................................................15 5.1
MAPAS DOS PROCESSOS ..........................................................................................15
6
ANÁLISE DOS RESULTADOS ...................................................................................19
7
RECOMENDAÇÕES E CONCLUSÃO ......................................................................21
REFERÊNCIAS BIBLIOGRÁFICAS .................................................................................22
LISTA DE FIGURAS FIGURA 1. CAPACIDADES DE CADA NÍVEL DO MPS BR............................................9 FIGURA 2. COMPARATIVO MPS BR E CMMI ..................................................................9 FIGURA 3. MODELO DO SCRUM .....................................................................................10 FIGURA 4. MAPA DO PROCESSO DA FÁBRICA DE SOFTWARE DA LINT – MS SHAREPOINT ........................................................................................................................13 FIGURA 5. AMBIENTE DE GERÊNCIA DE PROJETOS ...............................................14 FIGURA 6. MAPAS DOS PROCESSOS DE GERÊNCIA DE PROJETOS .................15 FIGURA 7. MAPA DO PROCESSO DE SOLUÇÃO DE PROBLEMAS .......................16 FIGURA 8. PROJETO PILOTO – CENSO ESCOLAR....................................................17 FIGURA 9. ATIVIDADES NO REDMINE – DIVISÃO POR DATA.................................17 FIGURA 10. TICKETS NO REDMINE – FUNCIONALIDADES DO PROJETO ..........18 FIGURA 11. ARQUIVOS DO PROJETO ...........................................................................18 FIGURA 12. RASTREABILIDADE NO PROJETO ...........................................................18 FIGURA 13. RELATÓRIO DE HORAS POR RECURSO ...............................................19 FIGURA 14. RELATÓRIO DE HORAS POR ATIVIDADE ..............................................19
5
1
INTRODUÇÃO O constante estado de mudança pelo qual a o mundo atual tem
motivado as organizações, cada vez mais, a rever seus processos de produção e de gestão. No âmbito da tecnologia este estado é muito mais evidente, o que resultou no surgimento de diversos modelos da maturidade em desenvolvimento de software, como o CMMI (Capability Maturity Model Integration) e o MPS-Br (Melhoria de Processos do Software Brasileiro). Junto com o direcionamento à melhoria de processos, metodologias de Gerenciamento de Projetos têm sido bastante difundidas no mercado também e, em desenvolvimento de software, o SCRUM, metodologia ágil para gestão e planejamento de projetos, a a ser bastante difundido no mercado, com resultados comprovados de até 40% em ganhos de produtividade. Diante do mercado altamente competitivo, a empresa LINT identificou a necessidade de buscar diferenciais de modo a tornar sua fábrica de software mais competitiva, e a definição de seus processos de desenvolvimento de projetos de acordo com os padrões do mercado supracitados foi a solução encontrada. O objetivo deste trabalho é apresentar os métodos utilizados pela LINT na definição, mapeamento e documentação de seus processos de fábrica de software como também apresentar alguns resultados já obtidos desta padronização de processos.
6
2
A EMPRESA LINT – LONDRINA TECNOLOGIA DA INFORMAÇÃO S.A. A LINT é uma empresa prestadora de serviços de TI para grandes
empresas de tecnologia, em regime de "outsourcing" e "offshore", constituída em regime de Sociedade Limitada em maio de 2007 e transformada para o regime de Sociedade Anônima de capital fechado em outubro de 2007. A LINT atua nas áreas de Desenvolvimento e Manutenção de Software (Offshore Software Development Center), e também no e e Consultoria de Softwares de Gestão (ERP). A missão da Lint é "Ser uma empresa Classe Mundial provedora de serviços e infra-estrutura de outsourcing para empresas de tecnologia de grande porte, comprometida com os mais elevados padrões de istração, qualidade, ética e responsabilidade social, contribuindo para a competitividade de seus clientes e para o desenvolvimento regional".
7
3 3.1
REFERENCIAL TEÓRICO O CMMI - Capability Maturity Model Integration Na década de 80, o Insituto de Engenharia de Software dos Estados
Unidos criou o CMM (Capability Maturity Model) para avaliar a qualidade dos softwares que estavam sendo desenvolvidos nas organizações. Na década de 90 então, surgiram modelos buscando atingir diversas áreas do conhecimento (desenvolvimento e engenharia de softwares, análise de sistemas, aquisições, procesos, etc). Por existirem vários modelos diferentes, para diferentes áreas, o CMM ou a ser inviável para as organizações, pois gerava um alto custo, cada área necessitava atender a um modelo diferente. Foi daí que surgiu o CMMI (Capability Maturity Model Integration), que consiste numa integração destes diversos modelos. Após definidos e mapeados os processos do CMMI, é fundamental que os mesmos estejam documentados, atualizados e disponíveis para todos os envolvidos no processo. O CMMI é dividido em 5 estágios: 1. Inicial – Processos não definidos, informais. 2. Gerenciado – os requisitos são gerenciados e os processos são planejados, executados medidos e controlados. 3. Definido – os processos são bem definidos e descritos em padrões, procedimentos, ferramentas e métodos. 4. Gerenciado quantitativamente – Os objetivos quantitativos dos processos são definidos e utilizados como critérios no gerenciamento. 5. Otimizado – A partir das variações do processo, do seu entendimento quantitativo, os processos são continuamente melhorados. O CMMI é um modelo internacional muito valorizado por empresas no mundo inteiro, em algumas delas como pré-requisito na contratação de serviços. Entretanto, o custo para a certificação ainda é muito alto, o que motivou a criação do MPS Br, que será abordado no próximo item deste trabalho.
8
3.2
O MPS Br - Melhoria de Processos do Software Brasileiro O MPS Br trata-se de um movimento para melhoria e um modelo de
qualidade de processos de desenvolvimento de software. É um modelo brasileiro que surgiu devido à grande quantidade de desenvolvimentos de software no país, com as empresas buscando intensamente a melhoria do processo para alcançar padrões internacionais de qualidade e produtividade. Foi criado com foco em pequenas e micro empresas, para as quais as certificações estrangeiras são inviáveis devido ao alto custo para obtenção. Assim como o CMMI, o MPS Br é dividido em níveis de maturidade, porém, este é dividido em 7 níveis: A. Em otimização; B. Gerenciado quantitativamente; C. Definido; D. Largamente Definido; E. Parcialmente Definido; F. Gerenciado; G. Parcialmente Gerenciado. Cada nível possui capacidades definidas, conforme a figura 1. Na fábrica de software da LINT, inicialmente, estão sendo tratados os processos em conformidade com o nível F do MPS Br, que corresponde ao nível 2 do CMMI. A figura 2 ilustra um comparativo entre os níveis de maturidade do MPS Br e os estágios do CMMI.
9
Figura 1. Capacidades de cada nível do MPS Br
Figura 2. Comparativo MPS Br e CMMI
3.3
O SCRUM Scrum é uma metodologia ágil para gestão e planejamento de proje-
tos de software. No Scrum, os projetos são dividos em ciclos (tipicamente mensais) chamados de Sprints. O Sprint representa um Time Box dentro do qual um conjun-
10
to de atividades deve ser executado. Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de Sprints no caso do Scrum. As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como Product Backlog. No início de cada Sprint, faz-se um Sprint Planning Meeting, ou seja, uma reunião de planejamento na qual o Product Owner prioriza os itens do Product Backlog e a equipe seleciona as atividades que ela será capaz de implementar durante o Sprint que se inicia. As tarefas alocadas em um Sprint são transferidas do Product Backlog para o Sprint Backlog. A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de manhã), chamada Daily Scrum. O objetivo é disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia. Ao final de um Sprint, a equipe apresenta as funcionalidades implementadas em uma Sprint Review Meeting. Finalmente, faz-se uma Sprint Retrospective e a equipe parte para o planejamento do próximo Sprint. Assim reinicia-se o ciclo. Como na figura 3.
Figura 3. Modelo do SCRUM
11
12
4
DESENVOLVIMENTO A metodologia para definição e mapeamento dos processos deveria
atender a todos os modelos apresentados no referencial teórico deste trabalho, ou seja, a fábrica de software da LINT deveria continuar trabalhando com a metodologia do SCRUM, porém neste momento, atendendo ao CMMI nível 2, ou MPS Br nível F. 4.1
Mapeamento dos processos O primeiro o no mapeamento dos processos da fábrica de soft-
ware da LINT foi a definição da notação que seria utilizada, e posteriormente, uma ferramenta que desse e ao processo. A notação escolhida foi a BPMN (Business Process Modeling Notation), que vem se consolidando como o mais importante padrão de notação gráfica aberta, e verificou-se que a ferramenta BPM BizAgi ( http://www.bizagi.com ) poderia dar e ao mapeamento dos processos da LINT em conformidade com a notação escolhida. Conforme supracitado, é fundamental que os processos estejam documentados e disponíveis para as pessoas que estão envolvidas, para tanto, foi disponibilizado um portal da Fábrica de Software da LINT no ambiente do Microsoft SharePoint Server, plataforma de colaboração utilizada pela empresa em sua intranet. Neste portal, foi criada uma área de processos, em formato de Wiki, onde foi inserida uma figura ilustrando os processos da fábrica de software da forma como eles acontecem, conforme apresentado abaixo, na figura 4, com links para os processos da fábrica. Desta forma, todas as pessoas envolvidas no processo em questão, podem á-lo em detalhes na intranet da LINT.
13
Figura 4. Mapa do processo da fábrica de software da LINT – MS Sharepoint
4.2
Ferramentas Foi necessária a seleção de ferramentas que pudessem dar e
aos processos definidos. Como este trabalho trata dos processos de Gerência de Projetos, este item apresenta a ferramenta Redmine, que foi escolhida dentre uma série de opções analisadas, pois permite realizar todos os controles previstos nos processos em questão, possibilita integração com o ambiente Subversion (Gerência de Configuração), e trata-se de um sistema open source, adaptável, e de fácil manutenção. A figura 5 ilustra a página inicial do Redmine.
14
Figura 5. Ambiente de gerência de projetos
Listadas abaixo seguem algumas funcionalidades da ferramenta de gerência de projetos da fábrica de softwares da LINT: •
e a múltiplos projetos;
•
Controle de o customizável;
•
Monitoramento de tickets;
•
Calendário e Gráfico de Gantt;
•
Gerenciamento de notícias, arquivos e documentos;
•
Notificações por e-mail;
•
Wiki por projeto;
•
Fórums por projeto;
•
Monitoramento de tempo;
•
Campos customizáveis;
•
Integração com o Subversion;
•
e à autenticação LDAP;
•
e a auto-registro de usuários;
•
e ao português do Brasil;
•
e a diversas bases de dados.
15
5
RESULTADOS A proposta deste trabalho foi a apresentação da metodologia e resul-
tados obtidos com o mapeamento e definição dos processos de fábrica de software da empresa LINT. Seguem abaixo os resultados obtidos até o momento no âmbito da Gerência de Projetos. 5.1
Mapas dos processos O processo de gerência de projetos é composto por dois subproces-
sos, conforme foi apresentado na figura 4. A figura 6 ilustra os processos de Planejamento de projeto e Acompanhamento de projeto, respectivamente.
Figura 6. Mapas dos processos de gerência de projetos
Em caso de detecção de problemas no acompanhamento do projeto, o processo de solução de problemas deve ser iniciado, conforme mapa de processo ilustrado na figura 7.
16
Figura 7. Mapa do processo de solução de problemas
O sistema de gerência de projetos Redmine já está instalado, configurado e sendo utilizado nos projetos da fábrica de software da LINT. Foi definido um projeto da fábrica para validar os processos e ferramentas definidos. Todo o planejamento e acompanhamento deste trabalho foram feitos com base no processo definido e com o apoio da ferramenta selecionada. Seguem abaixo as visões obtidas ao final do trabalho. A figura 8 ilustra a página inicial do projeto piloto Censo Escolar.
17
Figura 8. Projeto piloto – Censo Escolar
A figura 9 ilustra a visualização das atividades do projeto no ambiente do Redmine.
Figura 9. Atividades no Redmine – Divisão por data
Foi adotado como padrão na fábrica de software da LINT, que os projetos seriam divididos em funcionalidades, que seriam divididas em atividades do projeto. Todos estes itens são criados em forma de tickets, variando apenas o tipo de ticket a ser criado. A figura 10 ilustra a visualização dos tickets do tipo funcionalidade do projeto Censo Escolar.
18
Figura 10. Tickets no Redmine – Funcionalidades do projeto
A ferramenta de gerência de projetos selecionada permite a carga de arquivos do projeto, conforme apresentado na figura 11.
Figura 11. Arquivos do projeto
Um dos problemas encontrados no decorrer do projeto piloto foi a questão da rastreabilidade dos projetos, que foi solucionada por meio do ambiente de documentos do Redmine. Para cada Funcionalidade do projeto é criado um documento do Redmine que é alterado pelos desenvolvedores, conforme figura 12.
Figura 12. Rastreabilidade no projeto
19
6
ANÁLISE DOS RESULTADOS A utilização do software Redmine como apoio ao processo de ge-
rência de projetos na fábrica de software da LINT mostrou-se bastante eficaz, gerando resultados gerenciais importantes como a possibilidade de se ter uma visão geral do andamento do projeto e a visualização de relatórios dinâmicos, conforme exemplificado nas figuras 13 e 14.
Figura 13. Relatório de horas por recurso
Figura 14. Relatório de horas por atividade
O sistema Redmine mostrou-se bastante eficiente no tratamento do processo e apresenta uma grande vantagem, que é o fato de ser totalmente adaptá-
20
vel, de código aberto, o que possibilita explorar seu banco de dados com novas implementações adequadas às necessidades da fábrica.
21
7
RECOMENDAÇÕES E CONCLUSÃO Verificou-se a partir deste trabalho que o mapeamento de processos
é de fundamental importância para a eficiência na execução e gerência de projetos. Os sistemas selecionados atenderam ao processo de forma eficaz e devem dar e à evolução dos processos daqui pra frente. Os demais processos do nível 2 do CMMI e nível F do MPS Br estão em processo de definição. Recomenda-se que, após a execução de alguns projetos com base nestes processos, e tendo a fábrica de software naturalmente adiquirido maior nível de maturidade nos mesmos, sejam mapeados os processos para evolução nos níveis dos modelos abordados.
22
REFERÊNCIAS BIBLIOGRÁFICAS Goldenson, D. R. and Gibson, D. L. (CMU/SEI-2003-SR-009) “Demonstrating the Impact and Benefits of CMMI: An Update and Preliminary Results” Special Report, Disponível em:
. Bissi, W. (2007) “SCRUM - METODOLOGIA DE DESENVOLVIMENTO ÁGIL - Revisão Bibliográfica” Centro Universitário de Maringá - CESUMAR. Soares, F. S. F., Mariz, L. M. R. S., Cavalcanti, Y. C., Rodrigues, J. P., Neto, M. G., Bastos, P. R. et al. “Adoção de SCRUM em uma Fábrica de Desenvolvimento distribuído de Software” - Centro de Informática – Universidade Federal de Pernambuco (UFPE). MPS.BR - Melhoria de Processo do Software Brasileiro - Guia Geral (Versão 1.2) (2007) – SOFTEX Reis, C.R., Fortes, R. P. M. (2003) “Caracterizacão de um Processo de Software para Projetos de Software Livre” Instituto de Ciˆencias Matemáticas e de Computação Universidade de São Paulo. Bitencourt, M (2007) “Modelagem de Processos
. Bizagi process modeler - http://www.bizagi.com/esp/.
com
BPMN”