1. desenvolvimento distribuído de software rodrigo rocha [email protected] rgcr 2 novembro 2008

74
1

Upload: raul-reposa

Post on 22-Dec-2015

236 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

1

Page 2: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

Desenvolvimento Distribuído de Software

Rodrigo Rocha

[email protected]

http://cin.ufpe.br/~rgcr

2Novembro 2008

Page 3: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 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

Page 4: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 5: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 6: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 7: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 8: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 9: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

Conceitos DDS

9Novembro 2008

Page 10: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

Desenvolvimento de Software

10Novembro 2008

Número de Computadores

Profissionais Disponíveis(SW)

Demanda por Serviços de SW

Volume

Ano1970 1980 1990

Page 11: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS - Motivações

11Novembro 2008

Competição por profissionais competentes

Page 12: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Novo Grande Desafio

12Outubro 2008

Page 13: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Gerência de Projetos

13Novembro 2008

Page 14: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Principais Desafios

14Novembro 2008

Pessoas

Processo

Comunicação Tecnologia

Gestão

Page 15: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Principais Desafios

15Novembro 2008

Pessoas

Processo

Comunicação Tecnologia

Gestão

Page 16: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Principais Desafios

16Novembro 2008

Processo

• Arquitetura do Software

• Engenharia de Requisitos

• Gerência de configuração

• Processo de Desenvolvimento

Page 17: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Principais Desafios

17Novembro 2008

Pessoas

• Confiança

• Conflitos

• Diferenças Culturais

• Tamanho da Equipe

Page 18: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Principais Desafios

18Novembro 2008

Tecnologia

• Tecnologia de Colaboração

• Telecomunicações

Page 19: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Principais Desafios

19Novembro 2008

Gestão

• Gerenciamento de Projetos

• Gerência de Riscos

• Seleção e alocação de Projetos

Page 20: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Principais Desafios

20Novembro 2008

Comunicação

• Dispersão Geográfica e temporal

• Estilo de comunicação

• Formas de comunicação

• Fusos Horários

Page 21: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 22: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Dimensões

22Novembro 2008

Page 23: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 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.

Page 24: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 25: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 26: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Dimensões – Dispersão Geográfica

26Novembro 2008

Mesma localização Municipal

Page 27: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Dimensões – Dispersão Geográfica

27Novembro 2008

Nacional Continental

Page 28: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Dimensões – Dispersão Geográfica

28Novembro 2008

Global

Page 29: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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)

Page 30: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 31: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 32: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Dimensões – Proc. Desenvolvimento

32Novembro 2008

Deve ser bem definido.

Conhecido pelas equipes distribuídas.

Uso da mesma metodologia.

Page 33: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 34: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 35: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Dimensões – Tipo de Projeto

35Novembro 2008

Manufatura, Hardware e Software.

Afeta a forma como o mesmo será gerenciado.

Page 36: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Forças Centrífugas

36Novembro 2008

Page 37: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 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.

Page 38: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 39: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Comunicação Ineficiente

39Novembro 2008

Correspondência

E-mail

Chat / IM

Fone

VídeoConferência

F2F

Rever

Sequencia

-lidadeS

imulta-

neidade

Sincronia

Ouvir

Ver

Co-

presençaMeio de Comunicação

Característica

Page 40: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 41: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 42: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 43: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 44: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 45: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Forças Centrípetas

45Novembro 2008

Page 46: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 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.

Page 47: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 48: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 49: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 50: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 51: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 52: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 53: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 54: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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)

Page 55: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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)

Page 56: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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)

Page 57: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Comunicação

57Novembro 2008

Page 58: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 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;

Page 59: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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).

Page 60: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 61: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS - Estudo de Caso (TSapiens)

61Novembro 2008

Processo: TechnoProcess

Page 62: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 63: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 64: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 65: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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)

Page 66: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 67: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 68: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 69: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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) ...

Page 70: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 71: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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

Page 72: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

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.

Page 73: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

DDS – Considerações Finais

73Novembro 2008

Page 74: 1. Desenvolvimento Distribuído de Software Rodrigo Rocha rgcr@cin.ufpe.br rgcr 2 Novembro 2008

74