Data: 1/12/2009
O Aurus Service Manager, plataforma de gestão de serviços da Aurus Software, garante total controle dos processos, fluxos, atividades e recursos de uma empresa. No caso da execução do ciclo de vida para o desenvolvimento de software, a ferramenta pode gerenciar processos fundamentais estabelecidos, por exemplo, pela norma NBR ISO/IEC 12207. Para saber mais sobre essa norma, leia o artigo analista de sistemas Andrezza Graciano, especializada em gerência de projetos pela PUC Minas.
Conhecendo a Norma NBR ISO/IEC 12207 Processos de Ciclo de Vida de Software e as semelhanças com os processos de Gerenciamento de Projetos * Andrezza Graciano Nos últimos anos, o processo de desenvolvimento de Software, ou processos de Gerenciamento de Projetos, tem demandado melhorias dentro das empresas com o objetivo de atingir a unificação dos processos envolvidos e garantir maior qualidade nos produtos de Software ou serviços de Software oferecidos. A Norma NBR ISO/IEC 12207 faz uma analise e oferece um modelo de aplicação para a melhoria do ciclo de vida e para a definição dos processos envolvidos no mesmo.
As empresas que oferecem serviços relacionados a Software têm feito uso de métodos, ferramentas e modelos de maneira rápida. Dessa forma, muitas empresas têm adotado os vários processos relacionados ao gerenciamento de projetos para melhoria dos processos de desenvolvimento de Software. Esse acontecimento dá-se pela imensa necessidade de produção de softwares com velocidade, produtividade e acima de tudo, qualidade. Apesar de todos os atuais investimentos, as empresas, ainda assim, passam por situações inesperadas de crise. A fim de entender melhor as crises existentes dentro das empresas, foram realizados estudos e pesquisas para avaliar as principais causas e falhas nos processos e tecnologias aplicadas pelas empresas. Um dos estudos realizados pelo DOD (Departamento de Defesa dos Estados Unidos) indicou que 75% de todos os grandes sistemas de software adaptados falham, sendo culpa do pobre gerenciamento de projetos, dos desenvolvedores e adquirentes, e não de desempenho técnico. Com base no estudo acima citado e demais pesquisas, podemos chegar à conclusão de que: • O desenvolvimento de software ainda é imprevisível;
• Somente 10% dos projetos de software são entregues com sucesso dentro das estimativas; • O retrabalho encontrado na maioria das empresas é um indicativo e imaturidade no processo geral de desenvolvimento e na falta de atividades que proporcionem o gerenciamento de projetos e por projetos. Sendo assim fica-se evidente a necessidade de melhorias no ciclo de vida de desenvolvimento de software. Este artigo tem como proposta a abordagem dos conceitos sobre a Norma NBR ISO/IEC 12207, assim como a descrição dos processos que compõem e definem a mesma, a fim de aplicar um maior conhecimento aos leitores e mostrar a relação existente com as áreas de conhecimento e processos de gerenciamento de projetos.
NBR ISSO/IEC 12207 A norma NBR ISSO/IEC 12207 teve seu desenvolvimento proposto em 1988, pela ISO (Institute of Organization for Standardization) e o IEC (International Electrotechnical Commission), porém publicou sua primeira versão brasileira em 1998. O objetivo da proposta apresentada pela ISO/IEC foi fornecer uma estrutura comum para todas as pessoas e processos envolvidos no ciclo de vida de software, sendo eles o adquirente, fornecedor, desenvolvedor, mantenedor, operador, gerentes e técnicos. A estrutura comum proposta é estabelecida na forma de processos bem definidos, os quais são classificados em três tipos: fundamentais, de apoio e organizacionais. Todos os processos, executados durante o projeto de Software, conduzem à qualidade, tanto do produto quanto do processo. Sendo esse o mesmo objetivo definido pelo PMBOK (Project Management Body of Knowledge) quanto à execução de seus processos. Para que a norma possa ser modular e adaptável às necessidades das organizações e pessoas que a utilizam, criou-se a estrutura de maneira flexível, facilitando assim a aplicação em projetos onde várias pessoas possam estar legalmente envolvidas. Processos Fundamentais Os processos fundamentais da norma devem existir independentemente da organização e do projeto que está sendo executado. São responsáveis pela geração do produto de software, oferecendo assim uma base para a constituição do ciclo de vida do software propriamente dito. Os processos fundamentais são representados pelos processos descritos abaixo: • Processo de Aquisição – define as tarefas e atividades do adquirente. Este processo envolve a definição da necessidade de adquirir um sistema, um produto de software ou um serviço de software. O mesmo continua com a preparação comercial, desde o pedido da proposta à aceitação da mesma. • Processo de fornecimento – Define as atividades do fornecedor, onde estão envolvidas todas as tarefas para determinar os procedimentos e recursos necessários para gerenciar e garantir o projeto, desde a assinatura do contrato até a entrega do sistema. Em gerenciamento de projetos, o processo de aquisições trata de ambos os envolvidos, contratante e contratado, cliente e fornecedor, sendo responsável pelo gerenciamento dos contratos para aquisições de recursos necessários a um projeto. • Processos de desenvolvimento – Durante esse processo, o atuante nas tarefas é o desenvolvedor, o qual realiza a análise de requisitos, projeto, codificação, integração, testes, instalação e aceitação relacionada aos produtos de software. • Processo de Operação – Define as atividades do operador que provê serviço de operação do sistema no seu ambiente de funcionamento para os usuários finais. • Processo de manutenção – Neste processo o mantenedor tem a função de gerenciar as modificações no software para mantê-lo atualizado e em perfeita operação. O objetivo é modificar o software existente, preservando a sua integridade. Em casos de mudanças durante ou após o desenvolvimento de software, as mudanças devem ser controladas através dos processos de controle de mudanças, onde as mesmas devem ser documentadas e validadas para que não mudem o escopo inicial do projeto de forma a mudar o produto final. Processo de Apoio Os processos de apoio, como o próprio nome diz, têm como objetivo auxiliar outros processos, visando a qualidade e o sucesso do projeto. Os mesmos são separados pelos processos seguintes: • Processo de documentação – Realiza o registro das informações produzidas por um processo ou atividade do ciclo de vida. Neste processo são planejados, projetados, desenvolvidos, produzidos, editados e distribuídos os documentos necessários a todos os interessados. • Processos de gerencia de configuração – Englobam as atividades para aplicação de procedimentos administrativos e técnicos por todo o clico de vida. Identifica e define os itens de software de um sistema, estabelecendo assim as linhas básicas; controla as modificações e liberações; registra e apresenta a situação dos itens; garante a completeza, consistência e correção dos itens; A semelhança dos processos de configuração e documentação da norma se relaciona diretamente com a área de gerenciamento de integrações de projetos, onde serão validadas as documentações, a integridade das mesmas e estabelecidos os pontos de foco, ou linhas de base, as quais retratam a situação do projeto em um determinado momento de execução. • Processos da garantia da Qualidade – Importantíssimos para fornecer a garantia da qualidade adequada dos processos no ciclo de vida, garantindo que os mesmos estejam, conforme os requisitos especificados, aderentes aos planos estabelecidos. Nesse caso o objetivo e as atividades para garantia da qualidade se igualam à gestão de qualidade de projetos. • Processo de verificação – Atividades relacionadas à verificação dos produtos de software, onde é determinado se o software atende aos requisitos impostos. • Processo de validação - Define as atividades para validação do software. Determina se os requisitos atendem ao uso específico proposto. • Processo de revisão conjunta – Avalia se a situação e os produtos de uma atividade estão apropriados. São realizadas tanto no nível de gerenciamento como nos níveis técnicos e são executadas durante o projeto. • Processo de Auditoria – Realização de adequações aos requisitos, planos e contrato. • Processo de resolução de problemas – este processo envolve a análise e a resolução de problemas de qualquer natureza ou fonte. Tem como objetivo prover as soluções adequadas no tempo adequado de maneira responsável e documentadas. Processos Organizacionais A organização por sua vez, também possui processos destinados a ela, os quais são separados conforme abaixo: • Processos de gerência – Responsável pelo gerenciamento de produto, gerenciamento de projeto e gerenciamento de tarefa dos processos aplicáveis, tais como: aquisição, fornecimento, desenvolvimento, operação, manutenção ou processos de apoio. Nesse ponto é que o gerenciamento de projetos deve ser alinhado com os processos da norma que serão adotados, pois como vários deles se assemelham, é importante observar a redundância de execução de atividades, assim como possíveis retrabalhos que podem ser incluídos na metodologia que for adotada. • Processos de infra-estrutura – realiza atividades para manter e estabelecer a infra-estrutura necessária para qualquer outro processo, podendo incluir hardwares, softwares, ferramentas, técnicas, padrões e recursos para o desenvolvimento dos processos. • Processo de melhoria – Atividades básicas que são executadas para estabelecer, avaliar, medir, controlar e melhorar o processo de ciclo de vida do software. • Processo de treinamento – Define as atividades para prover e manter pessoal treinado. Todas as pessoas envolvidas nos demais processos são extremamente dependentes de pessoal com conhecimento e qualificação. Portanto é essencial que o treinamento seja planejado e implementado com antecedência. A Norma ISSO/IEC 12207 tem sido implementada para apoiar as empresas na execução do processo de ciclo de vida de desenvolvimento de software, assim como modelos de referencia para o desenvolvimento de software também empregam seus processos e atividades, como o MPS.Br. Uma das vantagens na sua utilização se refere à abertura e flexibilidade para adaptar a norma a cada organização a ser aplicada. Quando em conjunto com os processos de gerenciamento de projeto, os resultados obtidos podem ser satisfatórios tanto para a organização quanto para os demais envolvidos em projetos e aos produtos finais. Andrezza Graciano é pós-graduada em Gerenciamento de Projetos pela PUC Minas
|