A realização de trabalhos e pesquisas envolvendo a aplicação da técnica de dinâmica de sistemas na modelagem do processo de gerenciamento de projetos não é algo recente. A tese de doutorado do professor Edwards B. Robert com o título “The
Dynamics of Research and Development” (ROBERTS, 1964), completada em 1962,
foi o primeiro trabalho realizado com o objetivo de aplicar a metodologia de dinâmica de sistemas em gerenciamento de projetos. Desde então, ele continuou trabalhando na área gerando conhecimento e novas idéias por meio do estudo da aplicação de dinâmica de sistemas em projetos de pesquisa e desenvolvimento.
Devido a semelhanças existentes entre os estágios do processo de desenvolvimento de projetos de pesquisa e desenvolvimento e dos processos de
engenharia de software, pesquisadores começaram a investigar a aplicação das técnicas de dinâmica de sistemas na modelagem do processo de gerenciamento de projetos de software.
Um trabalho que se destacou quanto à construção de modelos de dinâmica de sistema para estudo do processo de gerenciamento de projetos de software foi realizado por Tarek Abdel-Hamid e Stuart E. Madnick. Esse trabalho está relatado no livro “Software Project Dynamics: an Integrated Approach” (ABDEL-HAMID; MADNICK, 1991) e no artigo “Lessons Learned from Modeling the Dynamics of
Software Development” (ABDEL-HAMID; MADNICK, 1989). O objetivo do
trabalho foi desenvolver e testar uma visão integrada do gerenciamento de projetos de software visando a aumentar a compreensão e permitir a realização de previsões sobre o processo por meio do qual o desenvolvimento é gerenciado.
Abdel-Hamid; Madnick (1991) apresentam um modelo integrado baseado nas técnicas de dinâmica de sistemas para estudo do processo de gerenciamento de projetos de software. O trabalho revela um método para representar o relacionamento entre as diversas variáveis que afetam o desenvolvimento de software. Por meio de simulações, o modelo pode ser utilizado como um framework para a realização de experimentos visando a testar o impacto de novas políticas gerenciais. Os efeitos de diferentes suposições podem ser verificados. Com a simulação do modelo, o efeito da alteração de uma variável ou relacionamento sobre o projeto pode ser observado, enquanto o restante do modelo permanece inalterado. A execução desses experimentos em um ambiente real é inviável devido ao custo e tempo necessários para reproduzir os projetos de software.
Para verificar a aplicabilidade do modelo, os pesquisadores realizaram um estudo de caso com um projeto da NASA (National Aeronautics and Space
Administration). O modelo replicou com precisão o comportamento dinâmico de um
projeto real de software. O padrão de variação e o valor das variáveis analisadas na simulação foram muito próximos dos valores reais do projeto. Entre as variáveis verificadas tem-se: o nível da força de trabalho, cronograma e custo do projeto.
Posteriormente, o modelo foi utilizado como uma ferramenta para estudar ou prever as implicações dinâmicas de diversas políticas gerenciais. Os autores focaram em quatro áreas: cronograma, qualidade, controle e recursos humanos. O diagrama de influência que descreve a estrutura do modelo é apresentado na Figura 2.5.
Fonte: (ABDEL-HAMID; MADNICK, 1991)
Figura 2.5. Diagrama de influência que descreve a estrutura do modelo dinâmico para o gerenciamento de projetos de software
Os experimentos realizados com o modelo permitiram enxergar conseqüências desconhecidas de algumas políticas comuns nas organizações e forneceram novos conhecimentos e orientações para os gerentes. Esses experimentos mostraram que cada estimativa para um projeto de software origina um projeto diferente, ou seja, os prazos disponíveis influenciam diretamente nas decisões e no comportamento dos envolvidos no projeto, aumentando ou diminuindo a produtividade da equipe. Em geral, quanto maior for o fator de segurança para a estimativa do prazo, maior será o custo do projeto porque os desenvolvedores se sentem mais confortáveis, tornando-se menos produtivos. HUMAN RESOURCE MANAGEMENT SOFTWARE PRODUCTION PLANNING CONTROL
Os experimentos testaram também a veracidade da Lei do Brooks (BROOKS, 1995) que afirma que adicionar mais pessoas a um projeto que está atrasado irá atrasá-lo ainda mais. Os resultados mostraram que para projetos de tamanho médio, adicionar mais pessoas a um projeto atrasado o torna mais caro, mas nem sempre o atrasa ainda mais. Para que o atraso seja agravado, a alocação de pessoas deve continuar a ocorrer até o fim da fase de testes.
A partir do modelo construído por Abdel-Hamid e Madnick, alguns trabalhos foram realizados visando a aplicar a dinâmica de sistemas no gerenciamento de projetos de software: (ABDEL-HAMID, 1996), (LIN; ABDEL-HAMID; SHERIF, 1997), (COLLOFELLO et al., 1998), (SENGUPTA; ABDEL-HAMID; BOSLEY, 1999), (ZHANG et al., 2006) e outros. Rodrigues (2001) apresenta um framework baseado em dinâmica de sistemas para o gerenciamento e modelagem do comportamento dinâmico de riscos em projetos de software.
No Brasil também existem grupos que desenvolvem trabalhos nessa área. Pesquisadores que atuam na COPPE, na Universidade Federal do Rio de Janeiro, vêm trabalhando com modelagem baseada em técnicas de dinâmica de sistemas aplicada ao processo de gerenciamento de projetos de software. Os trabalhos desses pesquisadores vêm focando a construção de modelos para simular situações de risco nos projetos de desenvolvimento de software. O objetivo é oferecer conhecimento, permitir aos gerentes analisar e avaliar os riscos dos projetos e verificar os impactos das intervenções planejadas.
Dentre os trabalhos realizados na COPPE, em (BARROS; WERNER; TRAVASSOS, 1999) é apresentado o uso de modelos dinâmicos para suportar a identificação e análise de riscos em projetos de software. Em (BARROS; WERNER; TRAVASSOS, 2003) é proposto o uso de cenários para separar fatos de suposições nos modelos de dinâmica de sistemas aplicados na modelagem de processos de desenvolvimento de software. Uma técnica que auxilia na análise de modelos de dinâmica de sistemas, permitindo rastrear as mudanças em algumas variáveis do modelo, é apresentada em (BARROS; WERNER; TRAVASSOS, 2001a). Em (BARROS; WERNER; TRAVASSOS, 2001b) é proposta uma técnica para o desenvolvimento de metamodelos de domínios, que podem ser especializados para descrever problemas e situações particulares do domínio. Em (BARROS; WERNER; TRAVASSOS, 2001c) é sugerida a construção de um modelo para representar o comportamento esperado de projetos de software e de modelos complementares para
representar os possíveis cenários diferentes que podem ocorrer durante o desenvolvimento do projeto.
No entanto, durante as pesquisas realizadas, não foram encontrados trabalhos que abordam a modelagem das variáveis e dos relacionamentos envolvidos na fase de requisitos em processos de desenvolvimento de software.
Os processos de desenvolvimento de software podem ser classificados em dois grandes grupos: métodos ágeis e métodos dirigidos por planejamento, também chamados de métodos disciplinados. De acordo com as características do projeto, um método pode ser mais adequado que o outro (BOEHM; TURNER, 2003a). Métodos dirigidos por planejamento são mais adequados para sistemas grandes e complexos, com requisitos críticos de segurança e confiabilidade, requisitos estáveis e ambiente previsível. Métodos ágeis são mais adequados quando a equipe de desenvolvimento é menor, o cliente participa ativamente do projeto esclarecendo as dúvidas durante o desenvolvimento, e os requisitos e o ambiente são voláteis.
No entanto, o desenvolvimento de software requer ambas, agilidade e disciplina. Em muitos projetos, é necessário combinar as práticas dos métodos ágeis com as dos métodos dirigidos por planejamento, formando um processo híbrido. Em seu livro “Balancing Agility and Discipline: A Guide for the Perplexed” (BOEHM; TURNER, 2003a), Boehm e Turner disponibilizam um método, baseado na análise de riscos, para auxiliar os gerentes a realizar um balanceamento adequado entre agilidade e disciplina no processo utilizado para o desenvolvimento de software. Os critérios utilizados no balanceamento são baseados nos riscos quanto ao uso de métodos ágeis ou de métodos dirigidos por planejamento, ao analisar várias características dos projetos. Por exemplo, a existência de requisitos críticos de escalabilidade e segurança é um risco para o uso de métodos ágeis; enquanto que a necessidade de atender rapidamente às freqüentes solicitações de mudanças no sistema é um risco para o uso de métodos dirigidos por planejamento.
Entre as características dos projetos avaliadas durante a análise de riscos no método proposto por Boehm e Turner, estão: tamanho da equipe, turnover de pessoal, competência dos profissionais, volatilidade dos requisitos e existência de requisitos emergentes não previstos inicialmente. Essas características correspondem a riscos que são abordados pelo modelo de dinâmica de sistemas apresentado nesse trabalho. O modelo pode então, ser expandido para auxiliar na verificação das
conseqüências do balanceamento entre agilidade e disciplina durante a fase de requisitos, complementando o trabalho de Boehm e Turner.