Metodologias e Técnicas Fornece suporte não apenas à “ponte” de comunicação, mas: Alocação de trabalho Minimizar a complexidade de coordenação e integração entre os “sites”. Gerência do Projeto Técnicas especiais de gerenciamento de projetos para DSD. Metodologias e Técnicas Infra-estrutura Internet, Intranet’s, E-mail, Faxes, Videoconferência. Estrutura dos times de desenvolvimento Outras variáveis aparecem em comparação ao desenvolvimento não distribuído, como: diferenças culturais, organização interna, processos administrativos, motivação, comunicação, práticas de trabalho, coesão. Particionamento Diz respeito a como o trabalho é alocado entre os times remotos; Conceito do “dividir para conquistar”; Todos os projetos podem ser particionados? Depende do tipo de projeto. Ex.: Vídeogame (requer alta interação entre seus desenvolvedores). Particionamento Existem algumas formas de se particionar um projeto distribuído: Funcionalidades; Subsistemas; Fases de desenvolvimento; Experiência e habilidades dos times; Versões de produto; Pela combinação de mais de uma das técnicas citadas acima. Particionamento Funcionalidades A cada site é designada uma ou mais tarefas atômicas do projeto; Recomenda-se observar o nível de acoplamento entre as funcionalidades; Abordagem recomendada para DSD. Semelhante ao que conhecemos no desenvolvimento convencional. Particionamento Subsistemas Baseia-se na arquitetura do sistema; Apresenta similaridade com o particionamento por funcionalidades; Já era conhecida como uma forma natural de desenvolvimento, sobretudo em grandes sistemas. Particionamento Fases de desenvolvimento A cada site é designada uma fase do projeto: análise, manutenção, ... Abordagem pouco recomendada (a complexidade de se criar uma interface adequada entre as fases e comunicação); Entretanto, US Departament of Defense possui diferentes contratos há anos; Particionamento Experiência e habilidades Abordagem pobre no particionamento. No entanto, é muito utilizada; Desenvolvimento de elementos críticos ocorre apenas onde os experts estão localizados; Recomenda-se utilizar a experiência do time como uma espécie de guia no particionamento por funcionalidades; Particionamento Versão de produto Abordagem recomendada em projetos distribuídos; Ex.: Versão principal do Video-game pode ser desenvolvida em paralelo com a versão para outra plataforma; Similaridade com particionamento por funcionalidades; Gerenciamento do Projeto Devido a distância, somos levados a pensar que o processo de gerenciamento reflete um caos total; Times remotos podem adotar processos distintos; Processos padrões e específicos bem estabelecidos e uso de ferramentas especiais são cruciais; Gerenciamento do Projeto Um único processo versus diferentes processos de desenvolvimento Como tratar diferentes organizações, estruturas, planejamentos, formalismos, processos administrativos,terminologias? Não há uma receita de bolo. Recomenda-se observar a natureza das organizações. (homogêneas e heterogêneas) Alcatel versus Motorola; Imposição gera custos, tempo e desconforto. Gerenciamento do Projeto Evolução das ferramentas Ferramentas que auxiliem sobretudo no processo de tomada de decisão Planejamento do projeto Gerenciamento / supervisão do projeto Escalonamento de atividades; Regras-padrão no gerenciamento; Identificação de riscos; Análise em todo o ciclo de vida do projeto; Gerenciamento do Projeto Exemplos de ferramentas Comunicação entre times Planejamento DSD TeamPortal; Microsoft NetMeeting; Microsoft Project; Identificação de Riscos/Problemas Rational’s ClearQuest Multisite; Gerenciamento do Projeto Exemplos de ferramentas Gerenciamento de Projeto Controle de Mudanças DSPMTool; Rational’s ClearQuest Multisite; Gerenciamento de Configuração Concurrent Versions System; Gerenciamento do Projeto Erran Carmel cita seis esferas de ação: Conduta colaborativa; Formação dos times; Arquitetura e alocação de tarefas; Metodologias de desenvolvimento; Infra-estrutura de comunicação; Gerenciamento do Projeto Passos específicos para um plano de gerenciamento em DSD: Criar um planejamento preliminar (IEEE Std. 1058); Analisar as particularidades de cada um dos times remotos participantes; Não é dada tanta importância no desenvolvimento convencional; Gerenciamento do Projeto Identificar outros parâmetros como: comunicação, cultura, processos administrativos, regulamentos governamentais, experiência e recursos disponíveis; Utilizar o plano como ponto de partida para endereçar os desafios (esferas de ação); Times de Desenvolvimento Em primeiro lugar, deve-se cultivar o “espírito” de equipe; Lado a lado com o estabelecimento da infra-estrutura de comunicação, com o particionamento e com o gerenciamento do projeto distribuído; Aspectos como motivação, cultura e confiança devem ser observados; Times de Desenvolvimento Estrutura dos Times Vimos que a estrutura do sistema pode determinar como o mesmo deve ser particionado; Da mesma forma, pode ser feito um mapeamento da estrutura do sistema para a estrutura das equipes de desenvolvimento; Times de Desenvolvimento Estrutura dos Times Outras considerações Presença de um nível razoável de coesão no tocante ao objetivo do projeto; Competição entre os times; Qualidade dos resultados; Cooperação; Troca de informações; Times de Desenvolvimento Estrutura dos Times Adicional overhead no “time-líder” em comparação ao desenvolvimento não distribuído; Regras e especificidades dever ser objetivas e claras a todos; Não deve haver falhas nestes pontos; Times de Desenvolvimento Que fazer? Viagem; Em algumas situações, o uso de e-mail’s, telefones, faxes ou mesmo videoconferências ainda não é o bastante; Desvantagem Custos elevados; Times de Desenvolvimento Cultura Cultura organizacional Cultura nacional Refere-se ao uso de metodologias e práticas no desenvolvimento de projetos; Língua nativa, normas, valores... Deve-se levar em conta a “distância cultural” entre os times no DSD; Times de Desenvolvimento Motivação Baixa motivação implica em perdas na produtividade de uma equipe; Aspecto comum entre DSD e o desenvolvimento de projetos não distribuídos; Viagens podem reforçar os laços de dedicação e de perseverança; Times de Desenvolvimento Conclusão Várias empresas têm adotado DSD como uma estratégia de melhores soluções; Mercado, Parcerias, Avanço Tecnológico; Existem aspectos que devem ser observados em relação ao desenvolvimento não distribuído; Times de Desenvolvimento Relações de Confiança Contato pessoal face-a-face é um importante catalisador para promover a confiança entre pessoas; Veja que a distância no DSD reduz as oportunidades de contato pessoal; Aumento do risco na tomada de decisões críticas inerentes ao projeto;