dds alexnery

41
1 1 Processos para Desenvolvimento Distribuído de Software Alex Nery Borges Júnior anbj @cin.ufpe.br Centro de Informática – CIn/UFPE Setembro / 2010

Upload: anna-candida-vasconcelos-seixas

Post on 24-Jan-2016

281 views

Category:

Documents


0 download

DESCRIPTION

DDS

TRANSCRIPT

Page 1: DDS AlexNery

11

Processos para Desenvolvimento Distribuído de Software

Alex Nery Borges Júnior

[email protected]

Centro de Informática – CIn/UFPE

Setembro / 2010

Page 2: DDS AlexNery

22

• Introdução;

• Conceitos de DDS;

• Motivações para o DDS;

• Níveis de Dispersão;

• Modelos de Negócios;

• Desafios do DDS;

• Processos para o DDS;

• Oportunidades de Pesquisas;

• Considerações Finais;

Estrutura da Apresentação

Page 3: DDS AlexNery

3

Introdução

Page 4: DDS AlexNery

44

DDS - Introdução

• Globalização de negócios;

• Avanços das tecnologias de informação e comunicação;

• Aumento da importância dos softwares para as empresas;

• Processos de terceirização de serviços;

• Distribuição dos processos de software e surgimento do

DDS;

Page 5: DDS AlexNery

5

Conceitos

Page 6: DDS AlexNery

66

DDS - Conceitos

Desenvolvimento Distribuído de Software: “é um modelo de desenvolvimento de software onde os envolvidos em um determinado projeto estão dispersos” (Carmel, 1999).

Características:– Distância Física;– Diferença de fuso-horário;– Diferenças culturais;

Page 7: DDS AlexNery

77

DDS - Conceitos

Equipe global: é um conjunto de desenvolvedores localizados em cidades ou países diferentes que trabalham em conjunto em um projeto comum.

Organizações virtuais: são empresas caracterizadas por realizar partes de um projeto em departamentos localizados em cidades ou países diferentes, comportando-se como se estivesse em um mesmo local.

Desenvolvimento Global de Software (GSD): é uma forma de desenvolvimento distribuído de software que ocorre quando a distância física entre os envolvidos no projeto envolve mais de uma país (Karolak, 1998).

Page 8: DDS AlexNery

88

GSD – Global Software Development

DSD – Distributed Software Development

GDD – Geographically Distributed Development

DDS – Desenvolvimento Distribuído de Software

DDS - Terminologias

Page 9: DDS AlexNery

9

Motivações

Page 10: DDS AlexNery

1010

DDS - Motivações

Disponibilidade de recursos globais equivalentes com custo mais baixo e a qualquer hora;

Possibilidade de rápida formação de equipes virtuais para explorar as oportunidades de mercado;

Disponibilidade de recursos especializados em determinadas áreas;

Page 11: DDS AlexNery

1111

DDS - Motivações

Possibilidade de desenvolvimento follow-the-sun (24 horas contínuas de trabalho), que permite o aumento de produtividade e a redução dos prazos de entrega dos produtos;

Escalabilidade, que permite o crescimento de empresas para outras regiões;

Vantagem de presença no mercado local, que permite o conhecimento dos clientes, das condições locais e o desenvolvimento do produto perto do cliente;

Page 12: DDS AlexNery

12

Níveis de Dispersão

Page 13: DDS AlexNery

13

DDS - Níveis de Dispersão

Distância Física Inter-Atores;

Page 14: DDS AlexNery

1414

Mesma localização física: todos os atores estão em um mesmo lugar. Não existem dificuldades de reuniões e há comunicação constantes entre os membros.

Distância Nacional: as equipes distribuídas estão localizadas em um mesmo país. As reuniões acontecem com menos freqüência.

Distância Continental: as equipes distribuídas estão localizadas em países diferentes, mas nomes continente. As reuniões face a face ficam mais difíceis de acontecer e o fuso-horário pode dificultar a interação entre as equipes.

Distância Global: as equipes estão em países e continentes diferentes. As reuniões face a face geralmente acontecem no início do projeto e as dificuldades de comunicação e diferenças culturais podem ser barreiras para o projeto.

DDS - Níveis de Dispersão

Page 15: DDS AlexNery

15

Modelos de Negócio

Page 16: DDS AlexNery

1616

DDS – Modelos de Negócio (Prikladiniki)

Onshore Insourcing: departamento dentro da empresa ou uma subsidiária da empresa no mesmo país.

Offshore Insourcing: subsidiária da empresa para prover serviços de desenvolvimento de software em um país diferente da empresa contratante.

Onshore Outsourcing: contratação de um empresa terceirizada localizada no mesmo país da empresa contratante.

Offshore Outsourcing: contratação de uma empresa terceirizada localizada em um país diferente da contratante

Page 17: DDS AlexNery

17

Desafios

Page 18: DDS AlexNery

1818

DDS - Desafios

O DDS envolve fatores como a distância física, diferenças de fuso-horário e diferenças culturais;

Antigos desafios são agravados e novos desafios são acrescentados na área de desenvolvimento de software;

Page 19: DDS AlexNery

1919

DDS - Desafios

CATEGORIAS DESAFIOS

PessoasConfiança; Conflitos; Diferenças Culturais

Processos

Arquitetura do software;Engenharia de Requisitos; Gerencia de Configuração; Processo de Desenvolvimento

TecnologiaTecnologias de Colaboração;Telecomunicações

GestãoCoordenação e Controle; Gerenciamento de Projetos; Gerenciamento de Risco

ComunicaçãoEstilo de Comunicação; Formas de Comunicação

Page 20: DDS AlexNery

20

DDS - Desafios

Arquitetura do Software: – A definição de uma arquitetura apropriada reduz a

complexidade do projeto;– A arquitetura apropriada para um projeto com equipes

distribuídas deve se basear no princípio da modularidade (Karolak, 1998);

Reduz a complexidade; Permite alocar tarefas de forma distribuída; Permite um desenvolvimento em paralelo simplificado;

Page 21: DDS AlexNery

21

DDS - Desafios

Engenharia de Requisitos: – A Engenharia de Requisitos contém diversas tarefas que

necessitam de boa comunicação e coordenação;– Com isso, essas tarefas se tornam mais complexas em um

ambiente de DDS;– É importante uma boa infra-estrutura de comunicação para

as equipes;

Page 22: DDS AlexNery

22

DDS - Desafios

Gerência de Configurações: – O controle de modificações simultâneas nos artefatos a

partir de locais diferentes pode ser uma tarefa bastante complexa e gerar riscos para o projeto;

– O gerenciamento de configuração é uma atividade fundamental para controlar as varias partes desenvolvidas em um projeto distribuído;

– É importante utilizar ferramentas de gerência de configuração no controle da documentação e do software;

Page 23: DDS AlexNery

23

DDS - Desafios

Processo de Desenvolvimento: – O uso de metodologias de desenvolvimento para auxiliar o

processo de desenvolvimento distribuído é importante, pois permite o alinhamento e a padronização das atividades realizadas pelas equipes distribuídas;

– O processo de desenvolvimento deve padrão em um ambiente distribuído;

Page 24: DDS AlexNery

24

Processos

Page 25: DDS AlexNery

2525

DDS - Processos

O DDS causa impacto não só no mercado em si, mas também nas etapas do processo de desenvolvimento de software;

É necessário a utilização de processos de desenvolvimento específicos para o ambiente distribuído;

A seguir serão apresentados 2 processos específicos para o DDS, criados a partir da adaptação de processos voltados para o desenvolvimento co-localizado:

– Modelo de Karolak;– DXP (Distributed Extreme Programming);

Page 26: DDS AlexNery

2626

DDS - Processos (Modelo de Karolak)

Modelo de Karolak

O autor aborda o DDS seguindo o ciclo de vida tradicional de um projeto de desenvolvimento de software (visão e escopo, requisitos, modelagem, implementação, teste, entrega e manutenção);

Modelo para desenvolver projetos de DDS que define um conjunto de atividades que devem ocorrer ao longo do ciclo de vida do projeto e as características de cada atividade;

Page 27: DDS AlexNery

2727

DDS - Processos (Modelo de Karolak)

Modelo de Karolak

Page 28: DDS AlexNery

28

O DXP é um processo para o DDS que aplica princípios do XP em equipes distribuídas;

O DXP aborda:– Conectividade entre os membros (uso da internet);– Uso de ferramentas de gerenciamento de configuração;– Compartilhamento de aplicação;– Uso de videoconferência; – Familiaridade entre os membros;

DDS - Processos (DXP)

Page 29: DDS AlexNery

2929

DDS - Processos (DXP)

Práticas do XPÉ necessário a equipe ser co-localizada?

Jogo do PlanejamentoProgramação em ParIntegração ContínuaCliente local

Sim. Estes fatores dependem de uma aproximação entre o negócio, cliente e pessoal técnico.

Releases PequenosMetáforasDesign SimplesTestesRefatoramentoPropriedade Coletiva40 horas semanaisPadrão de codificação

Não. Independem de a equipe ser co-localizada ou não.

A tabela abaixo mostra alguns aspectos de XP que são relevantes para o DXP e se esses aspectos são ou não impactados devido a distribuição das equipes:

Page 30: DDS AlexNery

30

Desafios e Práticas:– Comunicação: em algumas situações deve ser analisada

qual forma de comunicação deve ser adotada;– Coordenação: é necessário planejamento das atividades e

uma comunicação eficaz;– Infra-estrutura: é importante a escolha correta do Hardware

e Software;– Disponibilidade: deve ser divulgado um calendário diário ou

semanal com a disponibilidade de cada membro da equipe;– Gestão: relatórios diários ou semanais com o andamento

das atividades;

DDS - Processos (DXP)

Page 31: DDS AlexNery

31

Oportunidades de Pesquisa

Page 32: DDS AlexNery

32

DDS - Oportunidades de Pesquisa

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

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;

Page 33: DDS AlexNery

33

DDS - Oportunidades de Pesquisa

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.

Arquitetura de Software– Como projetar a arquitetura do software de forma a minimizar

problemas de coordenação entre as equipes.

Page 34: DDS AlexNery

34

DDS - Oportunidades de Pesquisa

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 considerado instáveis.

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 35: DDS AlexNery

35

Considerações Finais

Page 36: DDS AlexNery

36

DDS - Considerações finais

No contexto da globalização, a distribuição dos processos de desenvolvimento de software em locais estrategicamente distribuídos tem se tornado uma prática cada vez mais comum;

Com o desenvolvimento distribuído de software, os problemas tradicionais da ES aumentaram e foram gerados novos desafios para a área;

A existência de um processo de desenvolvimento de software único e bem definido responde por grande parte dos resultados obtidos em um projeto de desenvolvimento distribuído;

Page 37: DDS AlexNery

37

DDS - Considerações finais

Os requisitos são vistos como um grande desafio, envolvendo atividades desde a realização de reuniões até a formalização (documentação) dos requisitos definidos, a rastreabilidade e controle dos mesmos;

Um processo único e bem definido de acordo com o ambiente em que o projeto está sendo desenvolvido pode ser a solução para muitas dificuldades do desenvolvimento distribuído;

Ferramentas de apoio atuam como facilitador na interação distribuída;

Page 38: DDS AlexNery

38

Referências

Herbsleb, J. D., Moitra, D. “Global Software Development”, IEEE Software, March/April, EUA, 2001, p. 16-20.

Karolak, D. W. “Global Software Development – Managing Virtual Teams and Environments”. Los Alamitos, IEEE Computer Society, EUA, 1998, 159p.

Global Software Development at ICSE, Oregon, EUA, 2003, 4p.

Herbsleb, J.D., Mockus, A., Finholt, T.A. e Grinter, R. E. “An empirical study of global software development: distance and speed”, In: ICSE 2001, Toronto, Canada.

Carmel, E. “Global Software Teams – Collaborating Across Borders and Time-Zones” Prentice Hall, EUA, 1999, 269p.

Page 39: DDS AlexNery

39

Referências

Marquardt, M. J., Horvath, L. “Global Teams: how top multinationals span boundariesand cultures with high-speed teamwork”. Davies-Black. Palo Alto, EUA, 2001.

Prikladnicki, R., Audy, J. L. N., Evaristo, R. “Global Software Development in Practice: Lessons Learned”, Journal of Software Process: Practice and Improvement – Special Issue on Global Software Development, 2004.

Prikladnicki, R. “MuNDDoS: Um Modelo de Referência para Desenvolvimento Distribuído de Software”. Dissertação de Mestrado, PPGCC – PUCRS, Brasil, 2003.

SOMMERVILLE, Ian. Software Enginnering. 8.ed. [S.l] ADDISON WESLEY, 2007.

J. L. N. PRIKLADINICKI, R.; AUDY. Desenvolvimento Distribuído de Software. 2007.

Page 40: DDS AlexNery

40

Referências

[KRUCHTEN, 2001] KRUCHTEN, Philippe. What Is the Rational Unified Process?. Rational Software. Disponível em: http://www.ibm.com/developerworks/rational/library/content/RationalEdge/jan01/WhatIstheRationalUnifiedProcessJan01.pdf. Acessado em: 20 Maio 2009.

[PERRELLI, 2009] Perrelli, Hermano. Visão Geral do RUP. Centro de Informática, Universidade Federal de Pernambuco. Disponível em: http://www.cin.ufpe.br/~if717/slides/3-visao-geral-do-rup.pdf. Acessado em 20 Maio 2009.

[TELES, 2004] TELES, Vinícius Manhães. Extreme Programming: Aprenda como encantar seus usuários desenvolvendo software com agilidade e alta qualidade. 1. ed. São paulo: Novatec, 2004. 320 p.

Page 41: DDS AlexNery

41

Dúvidas ??