Implantando um Programa de Melhoria de Processo: Uma Experiência Prática - PDF Free Download
Download "Implantando um Programa de Melhoria de Processo: Uma Experiência Prática"
Nathan Caires Campos
1 Implantando um Programa de Melhoria de Processo: Uma Experiência Prática Evandro Polese Alves Ricardo de Almeida Falbo Departamento de Informática - UFES Av. Fernando Ferrari, s/n, Vitória - ES - Brasil Resumo Este trabalho discute uma experiência inicial na implantação de um programa de melhoria de processo, tendo por base o modelo IDEAL. O resultado principal obtido até então foi um processo padrão para o desenvolvimento orientado a objetos. Palavras-chave: Definição de Processo, Implantação de Programa de Qualidade. Abstract This paper presents a software process improvement initiative, developed using the IDEAL model. From the work done, the main outcome is an organizational software process for developing object-oriented software. Key-words: Software Process Definition, Quality Program Implementation. 1. Introdução O aumento da demanda por sistemas de software, associado à importância do papel por eles desempenhado na sociedade atual, tem levado a uma preocupação constante com a produtividade no desenvolvimento e a qualidade dos produtos gerados. Prazos extrapolados, baixa produtividade, custos altos e qualidade deficiente são situações constantes na área de desenvolvimento de software. O aumento da qualidade de software depende muito menos do uso de novas tecnologias do que do emprego efetivo de práticas gerenciais adequadas. Treinar desenvolvedores e dar-lhes tempo para absorver o que aprenderam é fundamental. Impedir os usuários de colocar prazos absurdos para seus pedidos é fundamental. Alocar recursos (tempo, dinheiro e pessoas) para trabalhar na melhoria do processo é também fundamental. Começa a haver, então, uma necessidade de compreensão dos problemas envolvidos no desenvolvimento de software, que não são somente tecnológicos, mas, principalmente, gerenciais e organizacionais, para que se possa fazer um planejamento visando a melhoria do processo e, conseqüentemente, melhoria da qualidade dos produtos gerados. Este trabalho relata uma experiência na implantação de um estágio inicial de um programa de melhoria do processo de software em uma empresa de porte médio, a VixTeam Consultoria & Sistemas, que levou à elaboração de um Processo Padrão para Orientado a Objetos. Como base para esta ação, foi utilizado o modelo IDEAL R [1].
2 O trabalho está estruturado da seguinte forma: na seção 2, é apresentado o Modelo IDEAL R. Na seção 3, são discutidas as fases do processo IDEAL R que foram realizadas neste trabalho, a saber: Inicial, Diagnóstico e Planejamento. Finalmente, a seção 4 apresenta as conclusões deste trabalho e discute quais os próximos passos a serem realizados. 2. O Modelo IDEAL R O modelo IDEAL é um modelo de programa de Melhoria de Processo de Software (Software Process Improvement - SPI), desenvolvido pelo Software Engineering Institute (SEI), que pode ser usado como um guia no desenvolvimento de um plano integrado de longo prazo para iniciar e gerenciar um programa SPI [1]. A Tabela 1 apresenta as cinco fases de uma iniciativa de SPI, que podem ocorrer de forma iterativa, bem como as atividades relacionadas com cada uma delas. Fase Atividades Relacionadas Aprender sobre SPI; Inicial Definir os Objetivos Gerais; Prever os Recursos Iniciais. Avaliar o nível de maturidade do processo; Diagnóstico Levantar as práticas e métricas; Descrever o processo; Esboçar um plano de ação. Estabelecer os objetivos; Planejamento Estabelecer as prioridades; Montar o plano de ação. Ação Pesquisar e desenvolver soluções para os problemas do processo; Divulgar melhorias no processo para toda a organização. Replanejamento Preparar o novo ciclo; Refinar o processo de SPI. Tabela 1 Estrutura do Modelo IDEAL. Além das cinco fases apresentadas, o modelo descreve, ainda, uma atividade para prover supervisão dos projetos de melhoria e resolver questões relacionadas. 3. O Programa SPI na VixTeam A VixTeam Consultoria & Sistemas é uma organização de desenvolvimento de software que existe há três anos e atua principalmente no desenvolvimento de sistemas de informação para o mercado corporativo do Espírito Santo, sob as plataformas cliente-servidor e Web, sendo que está iniciando trabalhos na área de produto de prateleira. A VixTeam possui um quadro de aproximadamente trinta colaboradores e seis clientes ativos. Tendo em vista sua área de atuação, a qualidade é uma das constantes preocupações da VixTeam. Associado a esta preocupação, há também um incentivo oferecido pela Prefeitura de Vitória, na forma de redução da alíquota de ISSQN (Lei 5.145/00), para as organizações que comprovarem a obtenção de Certificados de Sistemas de Garantias de Qualidade da família NBR ISO 9000, especificamente o NBR ISO 9001 ou NBR 9002 ou ISO 9126 (NBR 13596) [2], até 31 de dezembro de Sendo assim, a VixTeam decidiu investir na
3 melhoria de seu processo de software e, para tal, decidiu fazer uso do Modelo IDEAL. No momento atual, o programa SPI encontra-se na fase de ação do referido modelo, já tendo sido realizadas, portanto, as três primeiras fases, que conduziram à definição de um Processo Padrão da organização. A seguir, apresentamos os passos realizados e seus principais produtos. 3.1 A Fase Inicial Nesta fase, a infraestrutura preliminar de melhoria é estabelecida, os papéis e responsabilidades são atribuídos e os recursos iniciais alocados. Um plano é criado para guiar a organização até a fase de Planejamento e os objetivos gerais do programa SPI estabelecidos. No caso da VixTeam, foi necessário realizar um estudo sobre qualidade de processo de software, procurando conhecer os conceitos relacionados à melhoria do processo de desenvolvimento e as principais normas e modelos de qualidade existentes. Como objetivo geral do programa, foi estabelecida a adequação da organização à norma NBR-ISO [3]. Esta escolha deveu-se ao fato desta norma ser menos conclusiva e detalhista em seus itens, propondo apenas requisitos mínimos para um processo de qualidade. Desta forma, o escopo do trabalho foi reduzido, o que é mais adequado a um primeiro esforço de melhoria de processo em uma organização do porte da VixTeam, em função, principalmente de sua disponibilidade de recurso. Contudo, percebeu-se que a virtude da ISO , a simplicidade, é também sua fraqueza. Assim, para apoiar o programa, foi montado um quadro comparativo dos itens da norma com outros modelos, para permitir a utilização destes como referência complementar, principalmente nos pontos em que a ISO apresenta descrições muito superficiais. Sobretudo o CMM [4] e a norma ISO [5] foram bastante úteis neste trabalho. 3.2 A Fase de Diagnóstico Esta fase é a base para a realização das etapas subseqüentes. Atividades de avaliação são realizadas para estabelecer a linha base (baseline) das práticas correntes da organização. Para estabelecer o estado corrente da organização, primeiramente, foram realizados um levantamento detalhado dos itens da norma e uma comparação destes itens com as atividades realizadas pela organização. Após, foram feitas entrevistas com os principais responsáveis pelas atividades listadas, levantando a prática atual. Para cada item da norma foi descrito um diagnóstico da empresa no atendimento ao item. Três categorias de itens foram identificadas: itens atendidos (A), itens parcialmente atendidos (PA) itens que a organização pratica, mas sem uma abordagem sistemática definida, variando substancialmente de projeto para projeto e itens não atendidos (NA). A tabela 2 mostra parte deste diagnóstico. Para os itens da norma não atendidos (NA) ou parcialmente atendidos (PA), foram propostas soluções.
4 Item da Norma Descrição Situação 5.2 Análise Crítica do Contrato NA 5.3 Especificação dos Requisitos do Comprador PA / Planejamento do PA Controle da Execução NA / Entradas e Saídas das Fases de NA Verificação de Cada Fase NA 5.5 Planejamento da Qualidade NA e Implementação - Generalidades A NA Implementação PA Análise Crítica PA Planejamento de Testes NA / / 5.8 Testes, Validação e Aceitação PA / Entrega e Instalação A 6.1 Gerência de Configuração NA 6.3 / 6.4 Registro de Qualidade, Medição NA 6.6 Ferramentas e Técnicas A 6.8 Produto de Software Incluído A 6.9 Treinamento PA Tabela 2 Diagnóstico 3.3 A Fase de Planejamento Na fase de planejamento (ou estabelecimento), os aspectos que a organização decidiu considerar são priorizados e estratégias são estabelecidas [1]. No caso da VixTeam, decidiu-se definir um processo padrão para o desenvolvimento orientado a objetos (tecnologia utilizada na grande maioria dos projetos), a ser utilizado como base para os trabalhos da fase de ação. A proposta apresentada tem como objetivo ser um modelo flexível, que permita a adaptação, de tal maneira que o processo padrão possa ser instanciado para projetos de diferentes tipos e tamanhos. O modelo é baseado na idéia de papéis, permitindo que as equipes sejam montadas para cada projeto e as responsabilidades troquem de acordo com os papéis. Em função do tamanho e do tipo dos projetos, mudarão os papéis necessários e a alocação das pessoas para cada papel, havendo uma tendência que, em projetos maiores, alguns papéis sejam realizados por mais de uma pessoa e, em projetos menores, que uma mesma pessoa realize mais de um papel. A Tabela 3 apresenta os papéis identificados, bem como suas responsabilidades. Além dos papéis, foram descritas, também, as atividades que compõem o processo padrão. Estas atividades, além de possuírem uma descrição do seu objetivo, relacionam os papéis por elas responsáveis, que artefatos precisam estar disponíveis para que possam ser realizadas e que artefatos devem ser gerados. Elas foram, ainda, agrupadas em três categorias: atividades de ciclo de vida, atividades de controle da qualidade e atividades de gerência, apresentadas, respectivamente, nas tabelas 4, 5 e 6.
5 Papéis Responsabilidades Gerente de Produção Alocação de recursos; Acompanhamento dos andamentos dos projetos; Tomada de decisões estratégicas para correção de desvios. Gerente de Definir escopo do projeto; Planejamento do projeto; Monitoramento do andamento do projeto; Definição de prioridades; Reportar status de progresso do projeto; Identificar riscos e planejar sua mitigação; Obter aprovações do projeto; Tratar problemas detectados após a aceitação do software. Analista de Negócio Definir e especificar requisitos funcionais e não funcionais; Prototipar interface com usuário; Definir modelos de classes e diagramas de seqüência de negócio; Definir critérios de aceitação do software; Planejar e realizar testes de validação; Planejar e realizar testes de aceitação junto ao cliente. Projetista de Solução Da Aplicação Definir arquitetura do software; Sugerir componentes para o reuso; Projetar soluções arquiteturais para o software; Projetar classes reusáveis para o software. Projetista de Soluções Gerenciar base de conhecimento da empresa; Desenvolver projetos de tecnologia; Gerenciar os componentes reusáveis da empresa; Gerenciar padrões operacionais da empresa. Projetista de Aplicações Modelar classes da Interface com o Usuário; Modelar classes do Domínio; Modelar os dados da aplicação; Elaborar documento de especificação de projeto contendo as descrições de operações. Desenvolvedor Construir código fonte; Realizar testes unitários; Corrigir defeitos apontados; Integrar código ao sistema; Verificar o desempenho do código gerado; Gerar programas executáveis. Engenheiro de Testes Montar plano de testes; Definir os casos de testes; Realizar os testes; Avaliar os resultados e elaborar relatório. Engenheiro de Qualidade Avaliar artefatos do projeto; Avaliar processo de desenvolvimento do projeto; Solicitar correções nos artefatos ou no processo avaliados; Solicitar ajustes de não conformidades. Engenheiro de Processo Revisar processo padrão da empresa; Elaborar plano de qualidade da empresa; Assegurar o atendimento aos requisitos da ISO Administrador de Ambiente Administrar o ambiente operacional da produção de software da empresa; Gerência Sênior Analisar criticamente os contratos a serem assinados; Definir planejamento estratégico da empresa; Definir orçamento da empresa; Planejar treinamentos dos colaboradores. Tabela 3 Papéis do Processo Padrão VixTeam.
6 Atividade Artefato Insumo Artefato Produto Responsável Definir Visão Escopo do Software Gerente do projeto Responsável do Cliente Elaborar Plano de Escopo do Software Plano de Gerente de Proposta de Contrato Contrato Assinado Gerência Sênior Aprovar Contrato Escopo do Software Plano de Escopo do Software Modelo Caso de Uso Analista de Negócio Especificar Requisitos Descrição Caso de Uso Descrição de Atores Glossário Protótipo de GUI Ata de Avaliação Modelo Caso de Uso Modelo Classes Analista de Negócio Especificar Modelos de Negócio Projetar Arquitetura do Software Projetar Aplicação Codificar Aplicações Realizar Teste Unitário Realizar Testes de Integração Realizar Testes de Aceitação Descrição Caso de Uso Descrição de Atores Glossário Modelo Caso de Uso Negócio Diagrama de Seqüência Negócio Diagrama de Estados Documento de Arquitetura de Soluções Aplicação Descrição Caso de Uso Protótipo de GUI Documento de Documento de Arquitetura Arquitetura Modelo de Classes Diagrama Classes de Negócio Diagrama Seqüência Diagrama Seqüência de Negócio Diagrama de Estados Modelo de Dados Doc. de Arquitetura Código Fonte Desenvolvedor Diag. Classes de Diag. Seqüência Projetista de Aplicação Modelo de Dados Código Fonte CheckList Teste Desenvolvedor Unitário Descrição Caso de Uso Plano de Testes Engenheiro de Testes Doc. de Arquitetura Casos de Testes Diagrama Classes de Relatório Resultado de Testes Diag. Seqüência Código Fonte Descrição Caso de Uso Plano de Testes Gerente do projeto Doc. de Arquitetura Casos de Testes Analista de negócio Código Fonte Relatório Resultado de Testes Ata de Aceitação Tabela 4 Atividades de Ciclo de Vida do Processo Padrão VixTeam. Responsável do Cliente
7 Atividade Artefato Insumo Artefato Produto Responsável Planejar Qualidade Itens do Plano de Plano de Qualidade Engenheiro de Qualidade Artefato a ser avaliado Ata de Avaliação Gerente de Analisar Criticamente Ata de Aprovação Analista de Negócio Responsável do Cliente Revisar Qualidade dos Artefato a ser revisado Ata de Avaliação Engenheiro de Qualidade Artefatos Ata de Aprovação Revisar Qualidade do Processo de Registrar Qualidade Gerenciar Configuração Elaborar Padrões Operacionais Validação de Produto de Software Incluído Processo de Registro de Qualidade Processo de Revisado Registros de Qualidade Padrões de Revisados Engenheiro de Processo Padrões de Ata de Aprovação Engenheiro de Qualidade Ata de Avaliação Registro de Qualidade Gerente de Ata de Aprovação Analista de Negócio Relatório Resultado de Engenheiro de Testes Testes Solicitação de Ata de avaliação Gerente de Alteração Artefato a ser Alterado Plano de Artefato Modificado Versão anterior do Padrão Operacional Projetista de Soluções padrão Alterado Padrões relacionados Ata de aprovação Engenheiro de Qualidade Engenheiro de Processo Produto de software Ata de avaliação Gerente de Especificação Produto Plano de integridade do Analista de Negócio Software produto de software Requisitos do Software Tabela 5 Atividades de Controle da Qualidade do Processo Padrão VixTeam. Atividade Artefato Insumo Artefato Produto Responsável Gerenciar e Plano de Plano de Gerente do acompanhar andamento do projeto Revisado Planejamento de Plano de Gerência Sênior Treinamento Treinamentos Anual Tabela 6 Atividades de Gerência do Processo Padrão VixTeam.
8 4. Conclusão Neste trabalho, apresentamos as primeiras fases de um programa de SPI, orientado pelo IDEAL R, que está sendo realizado na VixTeam e que conduziram à elaboração de um Processo Padrão para o desenvolvimento de software orientado a objetos. A fase de Ação do Modelo IDEAL R já está em andamento. Foi formada uma Equipe Técnicos Especialistas (Technical Working Group - TWG), que está refinando a proposta do processo padrão de software, compatibilizando-a com o sistemática de gerenciamento de projetos da VixTeam e vice-versa. Já está definido um projeto piloto para a validação do processo padrão, que será acompanhado de perto pelo TWG que dará orientações e fará os ajustes necessários. A partir desta validação, o processo padrão deverá ser divulgado para toda a organização e, após um período de avaliação dos resultados obtidos, poderá ser replanejada (fase 5) uma nova entrada no ciclo do modelo IDEAL para aprimorar o processo de maneira a corrigir falhas no atendimento dos requisitos da norma ISO Nesta nova entrada do ciclo do IDEAL, deve ser feita uma revisão do programa de qualidade, adequando-o à nova versão da norma ISO 9000 (ISO 9001:2000) [6], que foi publicada quando a fase de planejamento do primeiro ciclo já havia sido concluído. Espera-se, assim, que até dezembro de 2002, a meta de obtenção da certificação seja atingida, já utilizando a nova versão da norma. Referências Bibliográficas [1] McFeeley, Bob. IDEAL SM : A User s Guide for Software Process Improvement, [2] Rocha, A.R.C., et al., Qualidade de Software: Teoria e Prática, Prentice Hall, [3] NBR ISO :1993. Normas de gestão e garantia da qualidade parte 3,diretrizes para a aplicação da NBR ISO 9001 ao desenvolvimento, fornecimento e manutenção de software, [4] Fiorini, S., et al.; Engenharia de Software com CMM, Brasport, [5] ISO/IEC Information technology software life cycle processes, [6] ISO 9001:2000. Quality management systems. Requirements, 2000.