Ybadoo - Soluções em Software Livre
Colaboradores
Cristiano Lehrer

Lehrer, Cristiano. Processo de Desenvolvimento de Software em Conformidade com o Nível G do Modelo de Referência MPS.BR. Em Programa Brasileiro da Qualidade e Produtividade em Software. 5ª edição. Brasília/DF: Ministério da Ciência e Tecnologia, Secretaria de Política de Informática, 2008. 142-150. 8 páginas.

Este artigo apresenta o estudo de caso da implementação dos processos Gerência do Projeto (GPR) e Gerência de Requisitos (GRE) do modelo de referência da Melhoria de Processos do Software Brasileiro (MPS.BR), no Instituto Centro-Oeste de Desenvolvimento de Software (ICODES), para o cumprimento dos requisitos necessários para a obtenção do nível de maturidade Parcialmente Gerenciado (G) do referido modelo de referência.

A indústria de software nacional se encontra num estágio prematuro em relação à adoção de modelos de gestão e desenvolvimento de software, comparado com países como Estados Unidos, Japão, Índia e outros países considerados grandes produtores de software. Mas o panorama vem se alterando rapidamente, principalmente em virtude do aumento da competição internacional nesse segmento, que movimenta bilhões de dólares anuais (Fernandes, 2004).

Com o intuito de atuar nesse panorama mundial, o Instituto Centro-Oeste de Desenvolvimento de Software está estruturando suas atividades de desenvolvimento de software de acordo com uma Fábrica de Software, buscando aumentar a produtividade e a qualidade dos serviços prestados, através da adoção de processos de desenvolvimento em conformidade com o Modelo de Referência da Melhoria de Processos do Software Brasileiro (MPS.BR).

O presente artigo apresenta o estudo de caso da implementação, no Instituto Centro-Oeste de Desenvolvimento de Software, dos processos de Gerência do Projeto (GPR) e Gerência de Requisitos (GRE) definidos no Modelo de Referência MPS.BR, para o cumprimento dos requisitos necessários para a obtenção do nível de maturidade Parcialmente Gerenciado (G) do referido modelo de referência.

Em tempos de competitividade acirrada entre organizações desenvolvedoras de software, a consciência da necessidade de processos de produção mais eficientes, que garantam o equilíbrio perfeito entre qualidade e produtividade, vem crescendo substancialmente, de modo que o fator qualidade tem sido considerado fundamental para o sucesso de qualquer empresa (Vasconcelos, 2003).

Com o intuito de agilizar e melhorar a produção de software, as organizações que provêm serviços de desenvolvimento de sistemas começaram a utilizar processos de desenvolvimento de software bem definidos e tecnologia de ponta, com o intuito de produzirem software de alta qualidade, a baixo custo e de forma rápida (Herbsleb, 1999).

Para comprovar a eficiência e a eficácia do processo de desenvolvimento de software, as organizações buscam implementar certificações que demonstrem a qualidade dos produtos desenvolvidos por elas, dentre as quais a ISO (International Organization for Standardization) e o CMMI (Capability Maturity Model Integration) (Fernandes, 2004).

Os custos despendidos para implantação e posterior avaliação das principais certificações disponíveis no mercado são proibitivos para micro e pequenas empresas, pois exigem um esforço de vários anos de seus colaboradores, consultores e equipes de avaliação. Buscando conduzir essa grande massa de micro e pequenas empresas de software a alcançarem melhorias significativas nos seus processos de software, a Associação para Promoção da Excelência do Software Brasileiro (SOFTEX) inicia em dezembro de 2003 o programa de Melhoria de Processos do Software Brasileiro (MPS.BR) (SOFTEX, 2006).

O MPS.BR é realizado em parceria com diversas instituições de ensino, pesquisa, centros tecnológicos e sociedades de economia mista, visando a melhoria de processo do software brasileiro, através do desenvolvimento e aprimoramento de um Modelo de Referência, compatível com o CMMI e em conformidade com as normas ISO/IEC 12207 e ISO/IEC 15504 (Weber, 2005).

Um processo pode ser definido de várias maneiras, dentre as quais pode-se considerar, que um processo é uma sequência de passos realizados para um determinado propósito, ou que um processo é um conjunto de atividades inter-relacionadas, que transformam entradas em saídas (Machado, 2003).

A área de gerência de projetos vem recebendo atenção crescente por parte das organizações (Prikladnicki, 2004), principalmente devido ao crescente número de organizações que aderem à gestão orientada a projetos (Demarco, 2003).

Tipicamente, um processo de gerência de projetos envolve três atividades principais (Falbo, 2005):

O objetivo primordial da atividade de planejamento é a elaboração do plano de como o projeto será conduzido durante a sua execução, o qual servirá de referência para as demais atividades do processo de Gerência do Projeto. O resultado da execução dessa atividade é a elaboração do artefato Plano de Projeto.

O plano de projeto é um documento aprovado formalmente, usado para gerenciar e controlar a execução do projeto (PMBOK, 2004). A Figura 01 apresenta o índice do documento de Plano de Projeto utilizado pelo Instituto Centro-Oeste de Desenvolvimento de Software para registrar o planejamento do projeto, o qual é uma adaptação do modelo de Plano de Projeto apresentado por Rouiller (2003).

1. INTRODUÇÃO
1.1. Visão geral deste documento
1.2. Convenções, termos e abreviações
1.2.1.Identificação dos riscos
1.2.2.Probabilidade e impacto dos riscos
2. VISÃO GERAL
3. PROCESSO DE DESENVOLVIMENO DE SOFTWARE
3.1. O processo de software do ICODES
3.2. Artefatos gerados
3.3. Padrões adotados
3.4. Ferramentas utilizadas
3.5. Revisões, verificações e validações
4. ENTRADAS E SAÍDAS DO PROJETO
5. ORGANIZAÇÃO DO PROJETO
5.1. Organograma
5.1.1.Capacidades necessárias para o projeto
5.1.2.Recursos Humanos
5.2. Infraestrutura
5.2.1.Ferramentas
5.2.2.Equipamentos
5.2.3.Outros itens relevantes
5.3. Interfaces técnicas e organizacionais
5.3.1.Reuniões da equipe técnica
5.3.2.Reuniões de garantia da qualidade
5.3.3.Interface entre a equipe técnica e os usuários (clientes)
5.4. Controle de documentos e dados
5.5. Treinamento
6. ANÁLISE DE RISCOS
7. ARMAZENAMENTO, CÓPIA, RECUPERAÇÃO E PRESERVAÇÃO
8. CRONOGRAMA
9. REFERÊNCIAS

Figura 01: Índice do artefato Plano de Projeto

Com o propósito de coletar e analisar as informações relativas aos produtos desenvolvidos e aos processos implementados na organização em seus projetos, de forma a permitir um planejamento mais objetivo através de estimativas confiáveis e reais, o Instituto Centro-Oeste de Desenvolvimento de Software implementou o Personal Software Process (PSP) entre seus colaboradores (Albuquerque, 2004).

O plano de projeto identifica e registra a periodicidade no qual o projeto será acompanhado, indicando a periodicidade das reuniões da equipe técnica e da equipe de garantia da qualidade. As reuniões são documentadas através de uma ata de reunião, no qual são registrados o desempenho do projeto durante o seu ciclo de vida.

Além das reuniões da equipe técnica e da garantia da qualidade, o ciclo de vida utilizado para o desenvolvimento do projeto também possui marcos estabelecidos no qual serão realizadas revisões no planejamento do projeto. Normalmente, os marcos de revisão são estabelecidos nas entregas dos módulos do produto ou serviço solicitado ao cliente.

O objetivo desse acompanhamento é monitorar todos os aspectos do planejamento do projeto - cronograma, custos, recursos, riscos, envolvimento dos interessados e dados - de forma a garantir a efetiva conclusão do projeto dentro dos atributos especificados inicialmente.

Caso seja identificado algum problema nas monitorações, o mesmo é registrado e analisado, e ações corretivas são estabelecidas quando necessário e gerenciadas até a sua conclusão. Esse processo é realizado utilizando o modelo IDEAL (Initiating, Diagnosing, Establishing, Acting and Leveraging) (McFeekey, 1996).

No encerramento do projeto é identificado se o projeto foi bem-sucedido ou não, pois a mera entrega do produto ou serviço almejado para o cliente não significa que ele foi finalizado de forma satisfatória.

Os requisitos consistem em uma série de sentenças que descrevem de maneira clara, concisa, consistente e não-ambígua todos os aspectos significativos do sistema a ser desenvolvido, contendo os requisitos funcionais e não-funcionais do sistema, além das restrições funcionais e de projeto (Rocha, 2001).

Os requisitos do projeto são levantados através de entrevistas com os clientes e/ou principais usuários do sistema. Antes da realização da entrevista, o entrevistador deve elaborar um plano para a entrevista, contento os principais questionamentos que devem ser abordados, visando tornar a entrevista mais produtiva, para não exigir do usuário um longo período de tempo.

Após a realização da entrevista com o cliente, os colaboradores preparam um relatório, contento os principais pontos discutidos na entrevista, a ser entregue ao cliente para conferência das informações prestadas por ele na ocasião. Caso ainda haja pontos dúbios, os mesmos são registrados no relatório, para servirem de base para as próximas entrevistas.

O processo de identificação dos requisitos é realizado até o momento que a equipe de desenvolvedores tenha adquirido conhecimento suficiente sobre o projeto a ser desenvolvido, quando os requisitos são validados pela equipe técnica e de usuários, formalizando o comprometimento entre as partes.

Os requisitos são registrados no documento de requisitos, onde são registrados todos os requisitos funcionais e não-funcionais do produto ou serviço solicitado pelo cliente. A Figura 02 apresenta o índice do documento de requisitos utilizado pelo Instituto Centro-Oeste de Desenvolvimento de Software para registrar os requisitos do projeto, o qual é uma adaptação do modelo de documento de requisitos apresentado por Rouiller (2003).

1. INTRODUÇÃO
1.1. Convenções, termos e abreviações
1.1.1. Identificação dos requisitos
1.1.2. Prioridades dos requisitos
2. VISÃO GERAL DO PRODUTO/SERVIÇO
2.1. Abrangência e sistemas relacionados
2.2. Descrição do cliente
2.3. Descrição dos usuários
2.3.1. <Nome de um tipo específico de usuário>
2.3.2. <Nome de um tipo específico de usuário>
3. REQUISITOS FUNCIONAIS
3.1. <Nome de subseção para agrupar requisitos funcionais correlacionados>
3.1.1. RF001 - <Nome do requisito funcional>
3.1.2. RFXXX - <Nome do requisito funcional>
3.2. <Nome de subseção para agrupar requisitos funcionais correlacionados>
3.2.1. RFXXX - <Nome do requisito funcional>
4. REQUISITOS NÃO FUNCIONAIS
4.1. Usabilidade
4.1.1. RNF001 - <Nome do requisito>
4.1.2. RNFXXX - <Nome do requisito>
4.2.Confiabilidade
4.2.1. RNFXXX - <Nome do requisito>
4.3.Desempenho
4.3.1. RNFXXX - <Nome do requisito>
4.4.Segurança
4.4.1. RNFXXX - <Nome do requisito>
4.5.Distribuição
4.5.1. RNFXXX - <Nome do requisito>
4.6.Padrões
4.6.1. RNFXXX - <Nome do requisito>
4.7.Hardware e Software
4.7.1. RNFXXX - <Nome do requisito>
5. RASTREABILIDADE
5.1.Entre requisitos funcionais
5.2.Entre requisitos funcionais e não funcionais
6. REFERÊNCIAS

Figura 02: Índice do artefato Documento de Requisitos

Durante o desenvolvimento e implantação do processo, várias dificuldades foram observadas, principalmente em relação a mudança de comportamento por parte dos colaboradores envolvidos no processo.

Em relação aos gerentes de projeto, a grande dificuldade observada para a implantação do processo proposto foi conscientizar os mesmos da necessidade de realizarem um planejamento rigoroso e minucioso do projeto logo no seu início.

Anteriormente, os planos de projeto produzidos eram superficiais em vários pontos, principalmente na definição do escopo do projeto e nas atividades a serem executadas para a sua conclusão, ocasionando aumentos expressivos nos custos e no cronograma dos projetos, em virtude da necessidade de se realizar grandes alterações no plano de projeto.

Outra dificuldade observada foi institucionalizar o registro das reuniões realizadas com a equipe técnica e com os clientes, tanto para o acompanhamento do projeto como para o levantamento dos requisitos, e principalmente, a monitoração e o gerenciamento dos problemas identificados, que anteriormente eram feitos de maneira informal.

Em relação aos demais colaboradores da organização, a grande dificuldade observada foi a implantação do Personal Software Process, para a coleta e análise das informações relativas aos produtos desenvolvidos e aos processos implementados na organização em seus projetos, de forma a permitir um planejamento mais objetivo através de estimativas confiáveis e reais.

Inicialmente, os colaboradores relutaram na adoção dessa metodologia, pela dificuldade de alterarem seus hábitos de desenvolvimento e por questionarem o real benefício que essa metodologia poderia agregar ao trabalho desenvolvido pelos mesmos. Essas dificuldades foram sendo solucionadas com o tempo, com treinamentos e conversas informais, através da conscientização dos colaboradores dos benefícios que a metodologia trazia para eles e para a organização.

Além do emprego do Personal Software Process, a utilização de uma arquitetura de desenvolvimento padrão para componentes de software fornece um apoio extra nas estimativas necessárias para o planejamento do projeto, e principalmente, no acompanhamento do plano traçado para a execução do projeto.

A execução do presente projeto também resultou na monografia Implementação do Processo Gerência do Projeto do Modelo de Referência MPS.BR no Instituto Centro-Oeste de Desenvolvimento de Software, apresentada ao Departamento de Ciência da Computação da Universidade Federal de Lavras, como parte das exigências do curso de Pós-Graduação Lato Sensu Modelo de Maturidade e Capacidade do Processo com CMMI® e MPS.BR®, defendida em novembro de 2006.

O processo de desenvolvimento de software em conformidade com o nível G - Parcialmente Gerenciado, do modelo de referência MPS.BR, é estratégico para que o Instituto Centro-Oeste de Desenvolvimento de Software e as empresas associadas a ele alcancem níveis internacionais na produção de software, tanto na produtividade como na qualidade dos serviços prestados aos clientes.

As organizações com processos de desenvolvimento bem definidos possuem um grande diferencial competitivo sobre as demais organizações que ainda não adequaram seus processos de desenvolvimento aos novos modelos e padrões exigidos pelo mercado consumidor.

A implementação e implantação do modelo de referência MPS.BR no Instituto Centro-Oeste de Desenvolvimento de Software está abrindo novas perspectivas para o processo de melhoria de software empregado na instituição, objetivando aumentar a qualidade e a produtividade dos serviços prestados para a comunidade através da definição de um processo de desenvolvimento reconhecido por organizações independentes.

O processo de desenvolvimento proposto está sendo implantado inicialmente no Instituto Centro-Oeste de Desenvolvimento de Software, e após a homologação do mesmo pela Associação para Promoção da Excelência do Software Brasileiro, o mesmo será disponibilizado para as demais organizações associados ao Instituto e para o público em geral, que poderão utilizá-lo como guia para adequarem seus próprios processos ao modelo de referência MPS.BR.

O Instituto Centro-Oeste de Desenvolvimento de Software é um instituto de pesquisa e desenvolvimento de software que iniciou as suas atividades no primeiro trimestre de 2006, com uma equipe técnica composta por cinco colaboradores, que atualmente é composta com nove colaboradores. A implementação e implantação de um processo de desenvolvimento de software em conformidade com o modelo de referência MPS.BR servirá como estudo de caso para que empresas imaturas e pequenas consigam adequar seus processos conforme um modelo de referência.

Para desenvolver e implantar os processos de Gerência do Projeto e Gerência de Requisitos no Instituto Centro-Oeste de Desenvolvimento de Software, foram utilizados aproximadamente quinhentas horas da equipe de colaboradores, incluindo as horas despendidas na implantação do Personal Software Process entre os colaboradores da organização.

O maior custo no desenvolvimento e implantação do processo foram com o treinamento dos colaboradores, tanto no próprio processo como no Personal Software Process. Neste contexto, também está sendo considerado como treinamento o tempo despendido na avaliação do processo proposto, quando a equipe se reunia para avaliação do próprio processo, sugerindo melhorias no processo, e principalmente, nos artefatos a serem utilizados.

Conforme avaliações preliminares, a execução do processo proposto pelo Instituto Centro-Oeste de Desenvolvimento de Software se encontra em conformidade com os requisitos do modelo de referência MPS.BR para o nível de maturidade Parcialmente Gerenciado (G).

O Instituto Centro-Oeste de Desenvolvimento de Software almeja alcançar o nível de maturidade G - Parcialmente Gerenciado, do modelo de referência MPS.BR ainda no ano de 2007, trabalhando para desenvolver, e principalmente, refinar seus processos em conformidade com o referido nível de maturidade.

A expectativa é que ainda sejam necessários alocar cerca de trezentas e cinquenta horas da equipe de colaboradores para se alcançar o nível de maturidade desejado, não incluindo nesse cálculo a quantidade de horas a serem despendidas com a validação dos processos por um consultor externo e nem os custos com a avaliação oficial.

Albuquerque, Jones de Oliveira. (2004). Gerência de Processo de Software em Pequena Escala: ênfase em PSP, TSP e P-CMM. Lavras: UFLA/FAEPE. 113 páginas.

Demarco, Tom. (2003). Waltzing With Bears: managing risk on software projects. New York: Dorset House. 144 pages.

Falbo, Ricardo de Almeida. (2005). Engenharia de Software: notas de aula. Acessado em Setembro de 2006.

Fernandes, Aguinaldo Aragon. (2004). Fábrica de Software: implantação e gestão de operações. São Paulo: Atlas. 304 páginas.

Herbsleb, J. D. (1999). Splitting the Organization and Integrating the Code: Conway's law revisited. In: Proceedings of ICSE. Los Angeles: CA. 85-95. 11 pages.

Machado, Cristina Ângela Filipak. (2003). Definindo Processos do Ciclo de Vida de Software Usando a Norma NBR ISO/IEC 12207. Lavras: UFLA/FAEPE. 101 páginas.

Mcfeeley, Bob. (1996). IDEAL: a user's guide for software process improvement. Pittsburgh: Software Engineering Institute. 236 pages.

PMBOK. (2000). A Guide to the Project Management Body of Knowledge. Pennsylvania USA: Project Management Institute. 459 pages.

Prikladnicki, R. (2004). Risk Management in Distributed Software Development: a process integration proposal. In: Proceedings of 5th IFIP World Computer Congress. Toulosse, France.

Rocha, Ana Regina Cavalcanti da. (2001). Qualidade de Software. São Paulo: Prentice Hall. 303 páginas.

Rouiller, Ana Cristina. (2003). Gerência de Projetos de Software. Lavras: UFLA/FAEPE.

SOFTEX - Associação para Promoção da Excelência do Software Brasileiro. (2006). Guia Geral. Versão 1.1.

Vasconcelos, Alexandre Marcos Lins de. (2003). Introdução à Engenharia de Software e aos Princípios de Qualidade. Lavras: UFLA/FAEPE. 104 páginas.

Weber, Kival Chaves. (2005). Modelo de Referência e Método de Avaliação para Melhoria de Processo de Software - versão 1.0 (MR-MPS e MA-MPS). In: IV Simpósio Brasileiro de Qualidade de Software. Porto Alegre: SBQS.

Artigo científico apresentado no Programa Brasileiro da Qualidade e Produtividade em Software