1
Desenvolvimento Distribuído de Software
Rodrigo Rocha
http://cin.ufpe.br/~rgcr
2Novembro 2008
Agenda
3Novembro 2008
• Objetivos
• Conceitos DDS
• Principais desafios do DDS
• Forças centrífugas
• Forças centrípetas
• Experiência prática
• Minha Pesquisa
• Oportunidades de Pesquisa
• Considerações Finais
DDS – Cenários
4Novembro 2008
– Outsourcing• Atividade desenvolvida e gerenciada por um terceiro dentro ou fora
das instalações do contratante– Onsite
• Desenvolvimento no local do contratante– Onshore
• Desenvolvimento no país do contratante– Offshore
• Desenvolvimento fora do país do contratante– Offshore Outsourcing
• Outsourcing em outro país– Offshore Insourcing
• Outsourcing em outro país, mas caracterizando desenvolvimento interno
– E-lancing• Rede virtual de freelancer: trabalham juntos num projeto, quando o
mesmo é concluído a rede se dissolve
DDS – O que é?
5Novembro 2008
• Crescimento acentuado desde a década de 90
• Oportunidades de negócio
• Recursos globais disponíveis (habilidades e custo)
• Proximidade ao mercado local e aos clientes
• Benefícios a partir das oportunidades globais de mercado
• Desenvolvimento “round-the-clock”
• Benefícios fiscais e tributários
DDS – O que é?
6Novembro 2008
• 2001: aproximadamente metade das empresas listadas na Fortune
500 estavam envolvidas em algum tipo de outsourcing (hoje > 85%)
• Índia – capacidade de TI e Engenharias de 25.000 em 1987-1988
para 250.000 em 2003 para 350.000 em 2007
• China – Alunos graduados em TI e Engenharias de 29.000 para
41.000 entre 1999 e 2001 para 600.000 em 2007
•Brasil – 18.000 alunos graduados em 2000 – maior concentração per
capita, em comparação com Índia e China, crescimento pequeno até
2007
DDS – O que é?
7Novembro 2008
• Não é um fenômeno novo
• Outras áreas do conhecimento já se envolvem em atividades com
equipes distribuídas há muito tempo (GDW – Global Distributed Work)
• Em desenvolvimento de software é recente
• Muitas terminologias:
• GSD – Global Software Development
• DSD – Distributed Software Development
• GDD – Geographically Distributed Development
• Global, distribuído, outsourcing, insourcing
• Offshore insourcing
• Offshore outsourcing
• DDS no Brasil.
DDS – O que é?
8Novembro 2008
• É um modelo de desenvolvimento de software onde os envolvidos
estão dispersos ao longo de vários locais, inclusive podendo estar
em diferentes países ou até mesmo continentes.
• Com objetivo de:
• Reduzir custos
• Ter maior qualidade no desenvolvimento
• Obter recursos em âmbito global
Conceitos DDS
9Novembro 2008
Desenvolvimento de Software
10Novembro 2008
Número de Computadores
Profissionais Disponíveis(SW)
Demanda por Serviços de SW
Volume
Ano1970 1980 1990
DDS - Motivações
11Novembro 2008
Competição por profissionais competentes
DDS – Novo Grande Desafio
12Outubro 2008
DDS – Gerência de Projetos
13Novembro 2008
DDS – Principais Desafios
14Novembro 2008
Pessoas
Processo
Comunicação Tecnologia
Gestão
DDS – Principais Desafios
15Novembro 2008
Pessoas
Processo
Comunicação Tecnologia
Gestão
DDS – Principais Desafios
16Novembro 2008
Processo
• Arquitetura do Software
• Engenharia de Requisitos
• Gerência de configuração
• Processo de Desenvolvimento
DDS – Principais Desafios
17Novembro 2008
Pessoas
• Confiança
• Conflitos
• Diferenças Culturais
• Tamanho da Equipe
DDS – Principais Desafios
18Novembro 2008
Tecnologia
• Tecnologia de Colaboração
• Telecomunicações
DDS – Principais Desafios
19Novembro 2008
Gestão
• Gerenciamento de Projetos
• Gerência de Riscos
• Seleção e alocação de Projetos
DDS – Principais Desafios
20Novembro 2008
Comunicação
• Dispersão Geográfica e temporal
• Estilo de comunicação
• Formas de comunicação
• Fusos Horários
DDS – Dimensões
21Novembro 2008
Uma pesquisa realizada em 2000 propõe a existência de algumas dimensões no contexto de equipes de projetos distribuídos.
Estas dimensões auxiliam no entendimento dos problemas, vantagens e desvantagens deste tipo de ambiente e afetam diretamente na performance destes projetos.
DDS – Dimensões
22Novembro 2008
DDS – Dimensões - Stakeholders
23Novembro 2008
É qualquer pessoa ou representante de uma organização que possua um stake (um grande interesse) no resultado de um projeto.
Principais atores: Clientes, Usuários e Equipes de Projetos.
DDS – Dimensões - Confiança
24Novembro 2008
Fundamental para manter o espírito de equipe.
Difícil de manter no DDS.
É impedida pela distância.
Essencial para desenvolver um projeto distribuído.
DDS – Dimensões – Dispersão Geográfica
25Novembro 2008
Mesma localização física
Distância municipal
Distância nacional
Distância continental
Distância global
DDS – Dimensões – Dispersão Geográfica
26Novembro 2008
Mesma localização Municipal
DDS – Dimensões – Dispersão Geográfica
27Novembro 2008
Nacional Continental
DDS – Dimensões – Dispersão Geográfica
28Novembro 2008
Global
DDS – Dimensões - Sincronização
29Novembro 2008
É o ponto em que pessoas estão trabalhando simultaneamente no mesmo projeto.
Onde utilizar o sincronismo em um DDS?
Na comunicação (teleconferência)
Na atualização de código (checkpoints)
DDS – Dimensões - Complexidade
30Novembro 2008
O nível de complexidade afeta o desempenho de projetos distribuídos.
Nível da tecnologia usada.
Nível da definição dos objetivos e do escopo do projeto.
DDS – Dimensões – Procedim. e Padrões
31Novembro 2008
Criar Procedimentos e Padrões (técnicas de estimativa, padrões de comunicação e implementação, etc).
Torná-los parte da cultura da organização.
DDS – Dimensões – Proc. Desenvolvimento
32Novembro 2008
Deve ser bem definido.
Conhecido pelas equipes distribuídas.
Uso da mesma metodologia.
DDS – Dimensões Evaristo – Cultura
33Novembro 2008
Aspectos da Cultura Nacional
Grupo étnicos com normas, valores e idioma, freqüentemente delineado por limites políticos do país.
Hierarquia e tipos de comunicação.
Aspectos da Cultura Organizacional
Cercada de normas e valores da unidade, inclue a cultura do desenvolvimento do sistema.
DDS – Dimensões – Distância Percebida
34Novembro 2008
Encontros Face to Face (fisicamente próximos). Alguns nunca se encontrarão (fisicamente afastados). Esta dimensão considera participantes do projeto, mas
desconsidera papéis. Atividades de coordenação são afetadas.
DDS – Dimensões – Tipo de Projeto
35Novembro 2008
Manufatura, Hardware e Software.
Afeta a forma como o mesmo será gerenciado.
DDS – Forças Centrífugas
36Novembro 2008
DDS – Comunicação Ineficiente
37Novembro 2008
– Dispersão causa impacto nas diversas formas de comunicação (redução da comunicação informal).
– Dificuldades impostas, número maior de reuniões e complexidade em coordená-las.
– Diferentes estágios do ciclo de desenvolvimento de software requerem comunicação mais rica.
DDS – Comunicação Ineficiente
38Novembro 2008
– Tarefas que necessitam de intensa cooperação requerem mais comunicação, e quanto mais rica melhor.
– Determinadas tarefas exigem muito cuidado na escolha do meio de comunicação a ser utilizado.
– Alguns impactos da dispersão na comunicação são:
A falta de comprometimento. Desconforto ao utilizar alguns meios.
DDS – Comunicação Ineficiente
39Novembro 2008
Correspondência
Chat / IM
Fone
VídeoConferência
F2F
Rever
Sequencia
-lidadeS
imulta-
neidade
Sincronia
Ouvir
Ver
Co-
presençaMeio de Comunicação
Característica
DDS – Dispersão Geográfica
40Novembro 2008
– Dificuldade na comunicação ou comunicação em horários inadequados devido ao fuso horário.
– Perda da comunicação informal, que é essencial para a coordenação do projeto.
– Dificuldade de saber quando contactar uma determinada pessoa.
– Dificuldade de saber quem é responsável por um determinado componente (quem projetou ou implementou) para resolver um problema.
DDS – Dispersão
41Novembro 2008
- Percepções diferentes de autoridade podem indeterminar a moral.- Gerentes devem se adaptar às práticas locais.
- Dificuldade em transportar uma visão e estratégia
- Gerenciamento de artefatos de projetos podem ser responsáveis por atrasos.
Controle
- Prática de trabalho inconsistente pode prejudicar a coordenação.- Redução na cooperação ocasionada pelos desentendimentos.
- Redução do contato informal pode levar a uma perda de interesse.
- Típico aumento no custo de coordenação.
Coordenação
- Desentendimentos culturais.
- Dificulta entrevistas cara-a-cara.
- Redução de oportunidades para uma comunicação síncrona .
Comunicação
DistânciaSociocultural
DistânciaGeográfica
DistânciaTemporal
Dimensão da Distância
Imp
acto
da
Dis
tânc
ia
DDS – Diferenças Culturais
42Novembro 2008
Reuniões informais Viagens para reuniões presenciais no início do projeto Ler sobre a tua cultura sob a perspectiva de outra pessoa
Ser capaz de identificar e explicar seus próprios valores Perguntar ao invés de assumir que entendeu Aceitar diversas possibilidades de explicação, e aceitar que você
pode estar errado Frustração e desconforto podem ser sintomas de diferenças
culturais Trocar experiências e resolver problemas imediatamente Compartilhar contexto
DDS – Perda de Espírito de Equipe
43Novembro 2008
Equipes são unidades sociais frágeis que podem facilmente ser quebradas.
Fraca comunicação. Distância. Infra-estrutura usada. Falta de comunicação informal. Diferença cultural. Tamanho do grupo.
DDS – Falta de coordenação
44Novembro 2008
– Mecanismos de coordenação
Dificuldade na integração das tarefas e das unidades organizacionais.
– Mecanismos de Controle
Adesão a metas, políticas e padrões.
– As dificuldades e os desafios são ampliados devido aos problemas de cultura, língua e tecnologia.
DDS – Forças Centrípetas
45Novembro 2008
DDS – Arquitetura do produto
46Novembro 2008
– É um fator determinante na efetividade e redução das dificuldades do DDS.
– Deve se basear no princípio da modularidade:
Reduz a complexidade.Permite um desenvolvimento com menor
interdependência entre os locais.Reduz custos adicionais de coordenação.
DDS – Construção de Equipe
47Novembro 2008
Equipes de DDS necessitam:
Relacionar-se.
Ter mecanismos de comunicação eficientes.
Possuir uma visão compartilhada.
Conhecer sua estrutura e os papéis de cada um dentro dela.
DDS – Técnicas de Gerência
48Novembro 2008
Devem ser adaptadas em projetos distribuídos.
Exemplos:
Gerência de conflitos.
Utilização de métricas.
Formas de reconhecimento e bonificação.
Escolha de um gerente com perfil para atuar em projetos
distribuídos.
DDS – Tecnologia de colaboração
49Novembro 2008
Amplia a comunicação informal.
Possibilita novas formas de comunicação formal entre equipes dispersas.
Tecnologias genéricas de colaboração:
Correio eletrônico, correio de voz, entre outros.
DDS – Metodologia de Desenvolvimento
50Novembro 2008
Deve ser comum a equipes distribuídas.
Quando processos são distribuídos em diversas localidades, a falta de sincronização pode se tornar crítica.
Fornece um conjunto comum de expectativa aos elementos envolvidos, impondo rigor à equipe.
DDS – Infraestrutura de Comunicação
51Novembro 2008
Ambientes de DDS necessitam:
Conexões confiáveis. De alta velocidade.
A estrutura de telecomunicações deve:
Permitir a transmissão confiável de voz e de dados com uma
boa performance.
DDS – Principais Problemas
52Novembro 2008
No DDS existem várias lacunas que devem ser analisadas para o surgimento de novas propostas, porém, duas requerem bastante atenção:
Processo de Desenvolvimento Comunicação
DDS – Processo de Desenvolvimento
53Novembro 2008
– Metodologias tradicionais não dão suporte as características existentes no Desenvolvimento Distribuído de Software
– Algumas práticas apontam para um conjunto de aspectos a serem levados em consideração quando se tenta elaborar um processo de desenvolvimento de software adequado a essa realidade
– Processos Ágeis parecem ser mais adequados as características do Desenvolvimento Distribuído de Software
DDS – Processo de Desenvolvimento
54Novembro 2008
– Metodologias Ágeis X DDS
• Características Comuns:– Mudança como regra– Releases freqüentes– Feedback contínuo– Padrões de codificação– Valorização da comunicação– Propriedade coletiva de código
• Características Divergentes:– Cliente “real” não existe (Open Source)
DDS – Processo de Desenvolvimento
55Novembro 2008
– Nos últimos anos, pesquisadores estão tentando melhorar a eficiência e qualidade do desenvolvimento distribuído adaptando metodologias ágeis nesse contexto:
• DXP (Distributed eXtreme Programming)• DPP (Distributed Pair Programming) • MAAD (Methodology for Agile Distributed Development)
DDS – Comunicação
56Novembro 2008
• Metade do desenvolvimento de software é comunicação entre pessoas
– Requisitos, modelagem, projeto, gestão, revisões• Definir a interface para a comunicação formal (processo)• Estabelecer canais de comunicação informal• Reuniões regulares (face a face ou virtuais)• Infra-estrutura de comunicação
– E-mails– Teleconferência– Videoconferência– Ferramentas web– Ferramentas de colaboração (MSN, IBM GDD Kit, etc)
DDS – Comunicação
57Novembro 2008
DDS - Estudo de Caso (TSapiens)
58Novembro 2008
• Formada por 9 membros (todos estudantes da disciplina);
• Parte da equipe trabalhava na mesma cidade, enquanto outros
trabalhavam em outras cidades, totalizando 3 cidades (Recife, João
Pessoa e Campina Grande);
• Nenhum membro nunca havia trabalhado com algum outro em
qualquer situação;
DDS - Estudo de Caso (TSapiens)
59Novembro 2008
• A equipe se reunia duas vezes na semana, um encontro no início e
outro no final da semana;
• Durante todos os dias da semana, mantínhamos contato através de
uma lista de discussão e troca de e-mails individuais;
• Além deste tipo de comunicação por e-mail, utilizamos messengers e
o próprio website da fábrica, que armazenava os artefatos e
informações relevantes sobre a resolução das tarefas planejadas;
• Para gerenciar melhor essas tarefas, foi utilizado pela fábrica uma
ferramenta WEB de planejamento e acompanhamento (XPlanner).
DDS - Estudo de Caso (TSapiens)
60Novembro 2008
O Processo de Desenvolvimento adotado foi baseado em quatro
principais fatores:
• A pouca experiência da equipe com outros processos e
metodologias em oposição ao maior conhecimento de
processos baseados no RUP;
• A necessidade de um processo leve que contemplasse uma
quantidade menor de artefatos - apenas os artefatos
considerados essenciais para o seu progresso;
• Processo mais adequado para o DDS;
• Desconhecimento ou pouca experiência no uso da tecnologia
JavaME, que era uma realidade para cerca de 65% da equipe.
DDS - Estudo de Caso (TSapiens)
61Novembro 2008
Processo: TechnoProcess
DDS - Estudo de Caso (TSapiens)
62Novembro 2008
Para mitigar o risco de atrasos no projeto, fizemos uma adequação do
processo pela adição de algumas práticas de metodologias ágeis:
• comunicação freqüente entre o grupo e o cliente e entre os
membros do grupo: para a resolução de possíveis dúvidas;
• programação em par: mesmo à distância, serviu para que
membros com menos experiência pudessem, virtualmente ou
fisicamente, ser auxiliados por outros com maior conhecimento;
• refactoring: realizado pelo membro mais experiente do grupo na
tecnologia com o intuito de organizar a estrutura, melhorar a
legibilidade e padronizar o código do sistema.
Minha Pesquisa
63Novembro 2008
“Fatores Técnicos, Humanos e Organizacionais que influenciam positivamente e negativamente no Desenvolvimento Distribuído de Software”
Alguns Fatores: Processos de Software Distância geográfica Distância socio-cultural Distância Temporal Controle Coordenação Comunicação
Minha Pesquisa
64Novembro 2008
Objetivos do Trabalho: Identificar fatores que contribuem para o sucesso / fracasso
em projetos DDS; Possibilitar outros estudos para minimizar as falhas
identificadas; Desenvolver métodos que auxiliem na identificação
prematura dos fatores;
Possíveis Resultados: Corpo de conhecimento maior Processo apropriado Ferramentas de suporte a DDS Lições transferíveis ao Desenvolvimento Tradicional
Oportunidades de Pesquisas
65Novembro 2008
– Arquitetura de Software Como projetar a arquitetura do software de forma a minimizar
problemas de coordenação entre as equipes
– Especificação e Gerência de Requisitos Prever de forma proativa e através de métodos específicos,
quais requisitos, em um determinado cenário distribuído pode riam ser cosinderado instáveis
– Ferramentas de Colaboração e suporte ao desenvolvimento Escassez de ferramentas de Awareness de atividades (quem
está fazendo o que) Escassez de ferramentas de disponibilidade (quem está
disponível quando) Escassez de ferramentas de Processo (quem deve fazer o
que)
Oportunidades de Pesquisas
66Novembro 2008
– Testes de Software em Ambientes Distribuídos Criação de Técnicas para lidar com a privacidade dos dados Processos específicos para minimizar a falta de precisão dos
documentos de testes que são trocados entre Equipes Distribuídas
– Desenvolvimento de Modelos de Maturidade para Ambientes Distribuídos
Modelos de qualidade de software (CMMI, ISO 9001, MR MPS) não suportam DDS.
Necessidade de abordagens de maturidade e capacidade
Oportunidades de Pesquisas
67Novembro 2008
– Processo de Desenvolvimento em um Ambiente Distribuído Análise e definição de quais práticas são efetivas em quais
circunstâncias /cenários Ou seja: As características de Outsourcing, E-lancing e Open
Source podem ser consideradas distantes quando se tenta traçar uma metodologia comum aos três cenários, como por exemplo Gestão de Pessoa e presença do cliente.
DDS – Participação da Academia / Indústria
68Novembro 2008
Carmel, E.: Global Software Teams: Collaborating across borders and timezones, 1999 Karolak, D.W.: Global Software Development – Managing virtual teams and environments, 1998 Morstead, S.: Offshore Ready: Strategies to Plan & Profit from Offshore IT- enabled Services, 2003. Workshops em Desenvolvimento Global de Software:
International Workshop series at ICSE (1999-2004) Cooperative Supports for Distributed Software Engineering Processes (2001-hoje) Improving Global Software Development, Novembro 2004, Finlândia Workshop em Desenvolvimento Distribuído de Software, Dezembro 2004, Porto Alegre, PUCRS International Workshop on Distributed Software Development, Agosto 2005, Paris, evento em conjunto com a 13a RE Conference. International Conference on Global Software Engineering, 2006, Florianópolis International Conference on Global Software Engineering, 2007, Munique I Workshop de Desenvolvimento Distribuído de Software, 2007, SBES II Workshop de Desenvolvimento Distribuído de Software, 2008, SBES
IEEE Software special issue on GSD, editores: Herbsleb J. and Moitra, D., 2001. Journal of Software Process: Improvement and Practice special issue, Dezembro 2003, editor: Damian, D.
DDS – Participação da Academia / Indústria
69Novembro 2008
Relatos de experiências publicados nestes eventos Acredita-se que as pesquisas realizadas vão ser úteis não apenas para o DGS, mas também para o desenvolvimento em distâncias menores A distância não precisa ser global para ser importante O DDS tem recebido uma grande atenção também de pesquisadores da área de administração (questões estratégicas e de gerência de projetos) e outras áreas de conhecimento Grande envolvimento da indústria:
HP Siemens Intel DELL Motorola Dataprev Infosys (faturamento de U$ 4 bilhões [2007] e 80 mil funcionários) WIPRO (faturamento de U$ 2,4 bilhões e mais de 66 mil funcionários) ...
Considerações Finais
70Novembro 2008
É cada vez mais significativo o número de empresas que estão distribuindo seus processos de desenvolvimento de software ao redor do mundo.
Este tipo de desenvolvimento criou uma nova classe de problemas a serem estudados pelos pesquisadores.
O DDS é mais complexo do que o desenvolvimento centralizado, porém é necessário
Considerações Finais
71Novembro 2008
– Desenvolvimento Distribuído de Software (DDS) é uma realidade baseada em tendências, práticas e apoiada em ferramentas
– É possível adequar metodologias e processos existentes para a realidade do DDS?
– Experiência prática vivida dentro desse contexto (TSapiens)
– Questões presentes em metodologias ágeis não podem ser substituídas, com mesma eficiência, por “encontros virtuais” ou revisão dos amigos
• Stand-up Meeting• Programação em Pares
Considerações Finais
72Novembro 2008
– Tão importante quanto tudo que foi citado para o sucesso e o não fracasso de um projeto DDS é a CONFIANÇA.
DDS – Considerações Finais
73Novembro 2008
74
Top Related