Capítulo 4 Ambientes de Engenharia de Software Orientados a Corporação
4.4 Modelo para Construção de Ambientes de Engenharia de Software
4.4.1 Definição e Geração de Ambientes
4.4.3.2 Melhoria de Processos em Projetos em Execução
Uma possível variação do cenário anterior está no momento de disponibilização das alterações nos processos. Naquele cenário a melhoria no processo organizacional só é disponibilizada para novos projetos, entretanto, para projetos de longa duração ou então quando uma melhoria é considerada crítica pode ser necessário implantá-la imediatamente em projetos já em andamento. Por exemplo, se um projeto ainda está na fase de levantamento de requisitos e uma melhoria no processo é identificada para a etapa de testes e homologação, provavelmente, a implantação desta melhoria não traria impactos nas atividades em andamento e poderia ser implantada quando o projeto fosse executar as atividades de testes e homologação. Ou, ainda, a alteração nos processos pode ter tido origem numa necessidade do projeto e não ser melhoria de fato, mas apenas uma adequação específica a uma nova necessidade do projeto. Dessa forma, é necessário prever um mecanismo para a disponibilização de melhorias em projetos em andamento.
Ambiente
Legenda
Processo e atividades Processo descontiuado
Atividade melhorada Atividades já executadas em um projeto Ação
Figura 4.13 – Legenda para o cenário de melhoria para processos em execução
Neste cenário, considere uma organização com um projeto sendo executado com a versão inicial do processo-padrão enquanto uma melhoria neste processo-padrão é identificada e disponibilizada para novos projetos. Considerando que o processo-padrão é composto por diferentes atividades (ou quaisquer outros elementos de processos independentes como subprocessos ou fases) e que apenas uma destas atividades tenha, de fato, sofrido modificações entre uma versão e outra do processo e que o projeto em execução ainda não começou a executar a atividade que sofreu modificações, este projeto ainda pode se beneficiar da melhoria identificada desde que ela seja implantada a tempo. Para isso, a organização deve decidir, então, que seria mais adequado implantar a modificação do processo-padrão também no projeto em execução. Dessa forma, o processo para o projeto deveria ser alterado "no vôo", ou seja, durante sua execução, conforme pode ser visto na Figura 4.14 e na Figura 4.15.
Ambiente Organizacional Ambiente do Projeto P1 Processo-Padrão A1 Ambiente do Projeto P2 Instanciação Ambiente Organizacional Ambiente do Projeto P1
Processo-Padrão A1 Processo-Padrão A1'’
Ambiente do Projeto P2 Instanciação
Figura 4.14 –Processos em execução na
organização
Figura 4.15 –Implantação de melhoria em
projetos em execução
Com esta abordagem, melhorias podem ser implantadas mais rapidamente aumentando seus efeitos positivos e, também, reduzindo a quantidade de variações de processo existentes no contexto organizacional. Dessa forma também se pode reduzir o esforço do grupo responsável pela gerência dos processos organizacionais em manter concomitantemente muitas versões de processos em execução.
4.4.4 Execução de Processos
A execução dos processos, como explicada na seção 4.4.1, é realizada apenas em Ambientes de Projetos, pois são os únicos de fato centrados em processo. Os Ambientes de Projeto devem possibilitar o acesso a um conjunto de ferramentas, internas e/ou externas, adequado ao propósito do ambiente e ao apoio necessário para a execução do processo para o qual o ambiente foi gerado. Os Ambientes de Projeto devem possuir, também, uma base de dados onde informações sobre a execução do processo e de suas ferramentas são armazenadas. Além disso, devem poder acessar elementos externos como outras ferramentas, ambientes e bases de dados para dar apoio à execução das atividades previstas.
Um processo tipicamente possui três etapas que envolvem o planejamento, que possibilita a sua execução, a execução do processo de fato e uma etapa de finalização ou transição.
A fase de planejamento inclui uma identificação prévia das necessidades relativas a execução do processo (por exemplo, o escopo do projeto, uma lista inicial e de alto nível de requisitos para o desenvolvimento de software, a documentação gerada anteriormente que pode ser consultada para a conclusão do projeto, o conjunto de ferramentas e ambientes de apoio necessários, requisitos de equipe etc.). Também durante essa fase preliminar deve-se identificar qual o processo (ou processos) mais adequado para a execução do projeto dentre as opções disponíveis. Feita essa identificação é necessário adaptá-lo para o contexto da execução em questão segundo critérios estabelecidos. A partir desse levantamento inicial é possível, então, iniciar o planejamento de fato da execução do processo.
Uma vez planejado, o processo pode ser executado. Ao longo do tempo é necessário efetuar monitorações periódicas para garantir uma aderência ao planejamento atual e, se for o caso, fazer as adaptações necessárias ao planejamento original.
Quando o produto final do processo é concluído, é preciso finalizar a sua execução (por exemplo, realizando avaliações post mortem para garantir que lições aprendidas sejam registradas e disponibilizadas para futuro uso, atualizar a biblioteca de ativos organizacionais com produtos gerados a partir da execução do processo) e, caso necessário, efetuar a transição para um novo projeto (por exemplo, garantindo que a documentação esteja disponível para possíveis evoluções do projeto).
Dessa forma, o conjunto de ferramentas e Ambientes de Projeto disponibilizados dentro do contexto dos AESCorp para apoiar a execução de processos de software, de forma genérica, contemplando as fases de planejamento, apoio à execução e finalização do
processo. Além disso, deve fornecer mecanismos para que ferramentas adequadas à execução de tarefas relacionadas a um processo específico (por exemplo, geração de informações sobre rastreabilidade entre requisitos no caso de um processo de desenvolvimento de software ou de gerência de requisitos) sejam definidas, criadas ou acessadas externamente.