Além dos autores descritos na seção anterior, outros autores foram estudados com o objetivo de entender aspectos específicos que influenciam o desenvolvimento distribuído de software, como por exemplo, os desafios da distribuição, os problemas de comunicação, coordenação, colaboração, integração de componentes, calendários e orçamentos.
Estudos com times multifuncionais de desenvolvimento estão recebendo uma crescente atenção pela necessidade de atingir uma grande integração no processo de desenvolvimento de produtos. Isso é importante, pois alguns estudos apontam que o desempenho das atividades, os comportamentos interpessoais e o desempenho do time são potencializados quando seus membros estão dedicados ao time e/ou projeto, sendo que esta dedicação é reforçada quando os gerentes de projetos estão próximos aos membros do time de uma maneira interpessoal [QIU09]. Na área de engenharia de software especial atenção tem sido dada ao Desenvolvimento Distribuído de Software (DDS), pois além dos problemas usuais, vistos na seção 2.3, os mesmos se deparam com novos desafios que requerem novas habilidades para o desenvolvimento do produto e gerenciamento do projeto [CUS08].
Dorina Gumm [GUM06] descreve que por muitas razões econômicas e tecnológicas, as empresas estão, cada vez mais, realizando projetos em nível global. Projetos globais são altamente distribuídos, com especialistas de diferentes empresas, países e continentes trabalhando juntos. Essa distribuição requer novas técnicas de coordenação de projetos, gerenciamento de documentos e comunicação. A complexidade da distribuição inclui vários tipos de projeto, tais como projetos de software global, interorganizacional, ou open-source que são distribuídos de diferentes maneiras e enfrentam desafios particulares. Entender o fenômeno da distribuição é crucial para analisar os métodos e ferramentas existentes ou novas para sua aplicação em projetos distribuídos.
Figura 7 – Ciclo dos desafios da distribuição de software [GUM06].
A figura 7 mostra os diferentes componentes que podem estar distribuídos e os desafios mais frequentes desta distribuição. Dorina Gumm [GUM06] utiliza as seguintes dimensões para descrever a maneira na qual uma pessoa ou artefato pode estar distribuído. Essas dimensões são:
• Distribuição física ou geográfica
Indivíduos e grupos de interessados podem estar distribuídos entre espaços físicos, organizações, e no tempo, enquanto outras entidades podem estar distribuídos entre espaços físicos, organizações, e grupos de interessados. Distribuição física é uma das características de projetos distribuídos. Pessoas e coisas podem estar distribuídos entre diferentes localizações físicas em diferentes níveis. Em alguns projetos, a distribuição de pessoas ou objetos entre diferentes andares no mesmo prédio pode ser uma distância desafiadora. Outros projetos tratam com localizações distribuídas na mesma cidade, entre diferentes cidades ou países, ou mesmo entre diferentes continentes.
• Distribuição organizacional
É uma outra característica de projetos distribuídos. Essa está relacionada a estrutura em que as pessoas trabalham no projeto, mas essa estrutura não necessariamente representa seu trabalho diário ou o ambiente de sua empresa. Um exemplo de distribuição organizacional é quando várias divisões de uma mesma companhia estão envolvidas em um projeto ou quando diferentes instituições trabalham
O que é distribuído (pessoas, artefatos, atividades, poder, habilidades, ...) e de que maneira fisicamente, organizacional, temporariamente) Desafios da distribuição (Controle de versões, diferenças culturais, comunicação, ...) Soluções (ferramentas, métodos, processos, ...) CAUSA C A U S A C A U S A CAUSA
juntas em um problema particular. De acordo com Dorina Gumm [GUM06], a distância organizacional emerge como o maior desafio em projetos distribuídos, criando dificuldades em manter uma visão comum do produto e em estabelecer processos transparentes.
• Distribuição temporal
Se refere à sincronização do horário de trabalho, isto é, o período de tempo em que os membros do projeto estão disponíveis para interações em tempo real. Diferenças temporais têm sua origem na distribuição física devido a possíveis diferenças de fuso horário entre as diversas localizações. Em alguns casos, essa diferença de fuso horário é vista como uma vantagem pois pode aumentar a velocidade do desenvolvimento.
• Distribuição entre os grupos de interessados
Artefatos, habilidades, e outras entidades podem ser distribuídas não somente entre localizações e organizações, mas também entre grupos de interessados. A especificação de requisitos, por exemplo, às vezes está distribuída entre usuários, gerentes, analistas, e desenvolvedores. Esse tipo de distribuição requer um grande esforço para gerenciamento da documentação quando os requisitos são documentados com diferentes pontos de vista, em diferentes níveis de detalhes, e com várias ferramentas de documentação.
Alguns autores como Kraut e Streeter [KRA95], Herbsleb et al. [HER99] [HER03] [HER06], Evaristo e Scudder [EVA00], Cusumano [CUS08] e Wolf et al. [WOL09] apontaram a comunicação e a coordenação entre os principais fatores que influenciam o sucesso dos projetos. Através dos estudos de Whitehead [WHI07] podemos verificar que técnicas de colaboração têm sido desenvolvidas para suportar o ciclo de vida do desenvolvimento de software e maximizar as forças centrípetas. Blom et al. [BLO07] mostrou a tendência cada vez mais frequente nos projetos de desenvolvimento de software da integração de componentes prontos e/ou desenvolvido por outras empresas, como por exemplo, COTS (commercial-off-the-shelf). A integração destes componentes implica em desafios relativos ao esforço de integração, confiabilidade do funcionamento correto e arquitetura do produto.
Garcia e Hirata [GAR08] mostraram que as questões de calendários e orçamentos não realistas, que geram riscos de cronograma e prazos, continuam presentes nos projetos distribuídos. Devido a isto, muitas métricas, técnicas de estimativas, desenvolvimentos de modelos, e processos de desenvolvimento para a engenharia de software estão sendo adotados pelas organizações para suportar as atividades do time de desenvolvimento, entre elas, Pontos de Função (FP), Pontos de Casos de Uso (UCP) e
COCOMO II (Construtive Cost Model II). Essas ferramentas e técnicas são requeridas para integrar, planejar e controlar melhor a execução do projeto sendo a base para a análise de valor agregado (EVA), recomendada pelo PMBOK para monitoramento e controle de projetos. Conforme Garcia e Hirata [GAR08], para o efetivo planejamento, monitoramento e controle dos projetos de software, as seguintes questões devem ser observadas: uma definição compreensiva e completa do escopo do software, o dimensionamento funcional, utilizando uma métrica de software, uma estimativa paramétrica do esforço e duração e, sistematicamente, monitorar e controlar o desempenho do projeto, utilizando a métrica de dimensionamento funcional. Esse estudo evidencia a importância do processo de monitorar e controlar o trabalho do projeto da área de integração do projeto.
2.4.3. Considerações sobre a área estudada
Autores que tratam do gerenciamento de equipes distribuídas, foram estudados para identificar as necessidades e características específicas do gerenciamento de projetos de desenvolvimento distribuído de software. Entre ao autores encontramos vários termos para este tipo de desenvolvimento, entre eles, Desenvolvimento global de software [SAN06], Desenvolvimento distribuído de software global [SAN06], Desenvolvimento de software global [SAN06], Times de projetos virtuais [RAD03], Projetos virtuais [KAR98], Desenvolvimento de produtos globais [KAR98], Times distribuídos [KAR98], Times virtuais [RAD03], Times globais de software [CAR99], Times multifuncionais [QIU09], entre outros. Neste trabalho adotamos o termo Desenvolvimento distribuído de software [AUD07] para o desenvolvimento de software que usa equipes dispersas nas diferentes dimensões expostas por Dorina Gumm [GUM06].
De acordo com Karolak [KAR98], os conceitos e tópicos apresentados para o desenvolvimento global podem ser aplicados na maioria dos projetos de desenvolvimento distribuído de software, mesmo para aqueles distribuídos em uma mesma cidade. Sangwan et al. [SAN06] citam que algumas evidências sugerem efeitos similares da distância em times separados por mais de 50 metros, se comparados com times globais. Já Herbsleb et al. [HER03] preconiza que quando os membros do time estão afastados por mais de 30 metros, a frequência da comunicação atinge níveis tão baixos quanto os de membros separados por muitas milhas de distância.
A integração do projeto deve levar em consideração um balanceamento dos esforços em seus processos de forma a minimizar as forças centrífugas e maximizar as
forças centrípetas descritas por Carmel [CAR99]. A inclusão de estudos específicos sobre fatores que influenciam o desenvolvimento distribuído de software, como por exemplo, os desafios da distribuição, os problemas de comunicação, coordenação, colaboração, integração de componentes, calendários e orçamentos, permitiu consolidar o entendimento e confirmar muitos dos fatores apontados por outros autores.
Os estudos mostraram que os autores concordam em muitos aspectos com relação às características e fatores de sucesso em times distribuídos, permitindo a seleção de um conjunto de fatores de importância relevante para a construção do modelo do índice de integração. A base teórica estudada permitiu consolidar os pressupostos sobre o papel do gerenciamento da integração do projeto no desenvolvimento distribuído de software e da importância de definir uma maneira de identificar o índice de integração do projeto, com o objetivo de permitir aos gerentes de projeto a realização de avaliações sistemáticas do projeto, além de priorizar as ações corretivas ou preventivas, necessárias para aumentar os índices dos fatores mais carentes.