Presentation is loading. Please wait.

Presentation is loading. Please wait.

1. Desenvolvimento Distribuído de Software Rodrigo Rocha 2 Novembro 2008.

Similar presentations


Presentation on theme: "1. Desenvolvimento Distribuído de Software Rodrigo Rocha 2 Novembro 2008."— Presentation transcript:

1 1

2 Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br http://cin.ufpe.br/~rgcr 2 Novembro 2008

3 Agenda 3 Novembro 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

4 DDS – Cenários 4 Novembro 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

5 DDS – O que é? 5 Novembro 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

6 DDS – O que é? 6 Novembro 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

7 DDS – O que é? 7 Novembro 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.

8 DDS – O que é? 8 Novembro 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

9 Conceitos DDS 9 Novembro 2008

10 Desenvolvimento de Software 10 Novembro 2008 Número de Computadores Profissionais Disponíveis(SW)‏ Demanda por Serviços de SW Volume Ano 1970 1980 1990

11 DDS - Motivações 11 Novembro 2008 Competição por profissionais competentes

12 DDS – Novo Grande Desafio 12 Outubro 2008

13 DDS – Gerência de Projetos 13 Novembro 2008

14 DDS – Principais Desafios 14 Novembro 2008 Pessoas Processo ComunicaçãoTecnologia Gestão

15 DDS – Principais Desafios 15 Novembro 2008 Pessoas Processo ComunicaçãoTecnologia Gestão

16 DDS – Principais Desafios 16 Novembro 2008 Processo Arquitetura do Software Engenharia de Requisitos Gerência de configuração Processo de Desenvolvimento

17 DDS – Principais Desafios 17 Novembro 2008 Pessoas Confiança Conflitos Diferenças Culturais Tamanho da Equipe

18 DDS – Principais Desafios 18 Novembro 2008 Tecnologia Tecnologia de Colaboração Telecomunicações

19 DDS – Principais Desafios 19 Novembro 2008 Gestão Gerenciamento de Projetos Gerência de Riscos Seleção e alocação de Projetos

20 DDS – Principais Desafios 20 Novembro 2008 Comunicação Dispersão Geográfica e temporal Estilo de comunicação Formas de comunicação Fusos Horários

21 DDS – Dimensões 21 Novembro 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.

22 DDS – Dimensões 22 Novembro 2008

23 DDS – Dimensões - Stakeholders 23 Novembro 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.

24 DDS – Dimensões - Confiança 24 Novembro 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.

25 DDS – Dimensões – Dispersão Geográfica 25 Novembro 2008  Mesma localização física  Distância municipal  Distância nacional  Distância continental  Distância global

26 DDS – Dimensões – Dispersão Geográfica 26 Novembro 2008 Mesma localização Municipal

27 DDS – Dimensões – Dispersão Geográfica 27 Novembro 2008 Nacional Continental

28 DDS – Dimensões – Dispersão Geográfica 28 Novembro 2008 Global

29 DDS – Dimensões - Sincronização 29 Novembro 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)‏

30 DDS – Dimensões - Complexidade 30 Novembro 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.

31 DDS – Dimensões – Procedim. e Padrões 31 Novembro 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.

32 DDS – Dimensões – Proc. Desenvolvimento 32 Novembro 2008  Deve ser bem definido.  Conhecido pelas equipes distribuídas.  Uso da mesma metodologia.

33 DDS – Dimensões Evaristo – Cultura 33 Novembro 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.

34 DDS – Dimensões – Distância Percebida 34 Novembro 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.

35 DDS – Dimensões – Tipo de Projeto 35 Novembro 2008  Manufatura, Hardware e Software.  Afeta a forma como o mesmo será gerenciado.

36 DDS – Forças Centrífugas 36 Novembro 2008

37 DDS – Comunicação Ineficiente 37 Novembro 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.

38 DDS – Comunicação Ineficiente 38 Novembro 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.

39 DDS – Comunicação Ineficiente 39 Novembro 2008 Correspondência E-mail Chat / IM Fone Vídeo Conferência F2F ReverSequencia-lidadeSimulta-neidadeSincroniaOuvirVerCo-presença Meio de Comunicação Característica

40 DDS – Dispersão Geográfica 40 Novembro 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.

41 DDS – Dispersão 41 Novembro 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ância Sociocultural Distância Geográfica Distância Temporal Dimensão da Distância Impacto da Distância

42 DDS – Diferenças Culturais 42 Novembro 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

43 DDS – Perda de Espírito de Equipe 43 Novembro 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.

44 DDS – Falta de coordenação 44 Novembro 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.

45 DDS – Forças Centrípetas 45 Novembro 2008

46 DDS – Arquitetura do produto 46 Novembro 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.

47 DDS – Construção de Equipe 47 Novembro 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.

48 DDS – Técnicas de Gerência 48 Novembro 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.

49 DDS – Tecnologia de colaboração 49 Novembro 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.

50 DDS – Metodologia de Desenvolvimento 50 Novembro 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.

51 DDS – Infraestrutura de Comunicação 51 Novembro 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.

52 DDS – Principais Problemas 52 Novembro 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

53 DDS – Processo de Desenvolvimento 53 Novembro 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

54 DDS – Processo de Desenvolvimento 54 Novembro 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)‏

55 DDS – Processo de Desenvolvimento 55 Novembro 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)‏

56 DDS – Comunicação 56 Novembro 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)‏

57 DDS – Comunicação 57 Novembro 2008

58 DDS - Estudo de Caso (TSapiens)‏ 58 Novembro 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;

59 DDS - Estudo de Caso (TSapiens)‏ 59 Novembro 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).

60 DDS - Estudo de Caso (TSapiens)‏ 60 Novembro 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.

61 DDS - Estudo de Caso (TSapiens)‏ 61 Novembro 2008 Processo: TechnoProcess

62 DDS - Estudo de Caso (TSapiens)‏ 62 Novembro 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.

63 Minha Pesquisa 63 Novembro 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

64 Minha Pesquisa 64 Novembro 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

65 Oportunidades de Pesquisas 65 Novembro 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)‏

66 Oportunidades de Pesquisas 66 Novembro 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

67 Oportunidades de Pesquisas 67 Novembro 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.

68 DDS – Participação da Academia / Indústria 68 Novembro 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.

69 DDS – Participação da Academia / Indústria 69 Novembro 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)‏ ...

70 Considerações Finais 70 Novembro 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

71 Considerações Finais 71 Novembro 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

72 Considerações Finais 72 Novembro 2008 –Tão importante quanto tudo que foi citado para o sucesso e o não fracasso de um projeto DDS é a CONFIANÇA.

73 DDS – Considerações Finais 73 Novembro 2008

74 74


Download ppt "1. Desenvolvimento Distribuído de Software Rodrigo Rocha 2 Novembro 2008."

Similar presentations


Ads by Google