Desenvolvimento Distribuído de Software

52
Rafael Leonardo Vivian Rafael Leonardo Vivian Departamento de Informática – DIN Departamento de Informática – DIN Universidade Estadual de Maringá – UEM Universidade Estadual de Maringá – UEM rlvivian.uem [at] gmail [dot] com rlvivian.uem [at] gmail [dot] com Twitter: @rafaelvivian Twitter: @rafaelvivian Desenvolvimento Desenvolvimento Distribuído de Software Distribuído de Software

description

Palestra no I Ciclo de Palestras e Pesquisa da Horus Faculdades 14/10/2011 http://www.horus.edu.br/

Transcript of Desenvolvimento Distribuído de Software

Page 1: Desenvolvimento Distribuído de Software

Rafael Leonardo VivianRafael Leonardo VivianDepartamento de Informática – DINDepartamento de Informática – DIN

Universidade Estadual de Maringá – UEMUniversidade Estadual de Maringá – UEMrlvivian.uem [at] gmail [dot] comrlvivian.uem [at] gmail [dot] com

Twitter: @rafaelvivianTwitter: @rafaelvivian

Desenvolvimento Desenvolvimento Distribuído de SoftwareDistribuído de Software

Page 2: Desenvolvimento Distribuído de Software

Evolução doEvolução doDesenvolvimentoDesenvolvimento

de Softwarede Software

● Anos 50 e 60: não havia processo definido● Anos 80: modelagem de dados● Anos 90: orientação a objetos● Anos 2000: distribuição do processo de

desenvolvimento

– Desenvolvimento Distribuído de Software (DDS)– Global Software Development (GSD)

Page 3: Desenvolvimento Distribuído de Software

Fatores geradores de DDS...Fatores geradores de DDS...

Desenvolvimento Desenvolvimento Distribuído de SoftwareDistribuído de Software

GlobalizaçãoGlobalizaçãoProcessos de terceirizaçãoProcessos de terceirização

Crescimento da importância dos SICrescimento da importância dos SI

Page 4: Desenvolvimento Distribuído de Software

GlobalizaçãoGlobalização

● Mercado local para mercado global● Novas formas de cooperação e competição● Avanço da economia, sofisticação dos meios de

comunicação e pressão por custos● Redes de cooperação e internacionalização● Vantagens: custos, recursos humanos, benefícios

fiscais, qualidade, agilidade e customização

Fatores geradores de DDSFatores geradores de DDS

Page 5: Desenvolvimento Distribuído de Software

OutsourcingOutsourcing

● Políticas de terceirização adotadas pelas empresas● Desenvolvimento de software é uma área-meio● Terceirização completa ou parcial das áreas de

sistemas e computação

Fatores geradores de DDSFatores geradores de DDS

Page 6: Desenvolvimento Distribuído de Software

OutsourcingOutsourcing

Fonte: Gartner/Brasscom

Page 7: Desenvolvimento Distribuído de Software

OutsourcingOutsourcing

Fonte: Gartner/Brasscom

Page 8: Desenvolvimento Distribuído de Software

Crescimento da Importância Crescimento da Importância dos Sistemas de Informaçãodos Sistemas de Informação

● Papel estratégico nas empresas● Evolução do uso das tecnologias● Preocupação com novas abordagens● Apoio às novas demandas da área de negócios

Fatores geradores de DDSFatores geradores de DDS

Page 9: Desenvolvimento Distribuído de Software

Equipes DistribuídasEquipes Distribuídas

Desenvolvimento de softwareDesenvolvimento de software

● Melhorias nas ferramentas e métodos têm permitido que grupos distribuídos possam trabalhar em equipe em um mesmo projeto

Page 10: Desenvolvimento Distribuído de Software

Desenvolvimento Desenvolvimento Distribuído de SoftwareDistribuído de Software

Uma revoluçãoUma revoluçãoda maneira como seda maneira como se

desenvolve softwaredesenvolve software

Page 11: Desenvolvimento Distribuído de Software

Desenvolvimento Desenvolvimento Distribuído de SoftwareDistribuído de Software

Colaboração e cooperaçãoColaboração e cooperaçãoentre departamentos de organizaçõesentre departamentos de organizações

e grupos de desenvolvedores quee grupos de desenvolvedores quetrabalham em conjuntotrabalham em conjunto

Page 12: Desenvolvimento Distribuído de Software

Soluções GlobaisSoluções Globais

BenefíciosBenefícios

● Economia em termos de custo para grandes projetos● Profissionais habilitados em idioma diferente● Baixas taxas de rotatividade de pessoal● Incentivo de governos locais

Page 13: Desenvolvimento Distribuído de Software

Empresas que usam DDSEmpresas que usam DDS

Page 14: Desenvolvimento Distribuído de Software

Fatores Geradores de DDSFatores Geradores de DDS

Recursos globais a qualquer horaRecursos globais a qualquer hora

● Maiores vantagens competitivas com soluções globais, em outros países

Page 15: Desenvolvimento Distribuído de Software

Fatores Geradores de DDSFatores Geradores de DDS

Proximidade com o mercado localProximidade com o mercado local

● Conhecimento dos clientes e condições locais para oportunidades de mercado

Page 16: Desenvolvimento Distribuído de Software

Fatores Geradores de DDSFatores Geradores de DDS

Desenvolvimento Desenvolvimento time-to-markettime-to-market

● Vantagens do fuso horário:

– folow-the-sun (24 horas contínuas)

Page 17: Desenvolvimento Distribuído de Software

Desenvolvimento Desenvolvimento Distribuído de SoftwareDistribuído de Software

Obter vantagens competitivasObter vantagens competitivasassociadas a custo, qualidadeassociadas a custo, qualidade

e flexibilidade no desenvolvimento,e flexibilidade no desenvolvimento,aumentado a produtividadeaumentado a produtividade

e diminuindo os riscose diminuindo os riscos

Page 18: Desenvolvimento Distribuído de Software

Dificuldades em DDSDificuldades em DDS

Dispersão geográficaDispersão geográficaDispersão temporalDispersão temporal

Diferenças socioculturaisDiferenças socioculturais

Page 19: Desenvolvimento Distribuído de Software

Dispersão geográficaDispersão geográfica

Dificuldades em DDSDificuldades em DDS

● Distância física

Page 20: Desenvolvimento Distribuído de Software

Dispersão temporalDispersão temporal

Dificuldades em DDSDificuldades em DDS

● Diferenças de fuso horário

Page 21: Desenvolvimento Distribuído de Software

Diferenças socioculturaisDiferenças socioculturais

Dificuldades em DDSDificuldades em DDS

● Idioma● Tradições● Costumes● Normas● Comportamentos

Page 22: Desenvolvimento Distribuído de Software

Dificuldades em DDSDificuldades em DDS

A sensação de distânciaA sensação de distânciase multiplica em diversas dificuldadesse multiplica em diversas dificuldades

na coordenação do trabalhona coordenação do trabalhopara desenvolver softwarepara desenvolver software

Page 23: Desenvolvimento Distribuído de Software

Outros fatoresOutros fatores

Dificuldades em DDSDificuldades em DDS

● Questões estratégicas● Questões técnicas● Questões de gestão do conhecimento

Page 24: Desenvolvimento Distribuído de Software

Fatores que motivamFatores que motivamo uso DDSo uso DDS

DDSDDS

Rapidez deRapidez deresposta aoresposta ao

mercadomercado

Mercado eMercado epresençapresença

globalglobal

Rigor eRigor eexperiênciaexperiência

SinergiaSinergiaculturalcultural

EscalaEscala

DemandaDemandae custose custos

Page 25: Desenvolvimento Distribuído de Software

Demanda e custosDemanda e custos

● Demanda por serviços de software supera disponibilidade de pessoas

● Alto custo dos profissionais● Disponibilidade de recursos equivalentes em outras

localidades a um custo mais baixo

Fatores que motivamFatores que motivamo uso DDSo uso DDS

Page 26: Desenvolvimento Distribuído de Software

Rapidez de resposta ao mercadoRapidez de resposta ao mercado

● Redução do tempo para colocar um produto no mercado (time-to-market)

● Follow-the-sun: desenvolvimento 24 horas por dia

Fatores que motivamFatores que motivamo uso DDSo uso DDS

Page 27: Desenvolvimento Distribuído de Software

Mercado e presença globalMercado e presença global

● Para satisfazer o mercado consumidor é necessária a presença das corporações

● Atingir o mercado global e ficar próxima de seus consumidores

● Empresa global é um atrativo de marketing

Fatores que motivamFatores que motivamo uso DDSo uso DDS

Page 28: Desenvolvimento Distribuído de Software

Rigor e experiênciaRigor e experiência

● Para melhorar a comunicação as equipes tendem a melhorar a documentação e as ferramentas de colaboração

● Determinados locais desenvolvem experiência e habilidade em áreas pouco difundidas em outros pontos da organização

Fatores que motivamFatores que motivamo uso DDSo uso DDS

Page 29: Desenvolvimento Distribuído de Software

Sinergia culturalSinergia cultural

● A diversidade amplia a criatividade e a inspiração● Encontrar novas formas de resolver problemas● Ampliar a capacidade de aprendizado

Fatores que motivamFatores que motivamo uso DDSo uso DDS

Page 30: Desenvolvimento Distribuído de Software

EscalaEscala

● Centros de desenvolvimento de software aumentam e ficam difíceis de gerenciar

Fatores que motivamFatores que motivamo uso DDSo uso DDS

Page 31: Desenvolvimento Distribuído de Software

Níveis de Dispersão em DDSNíveis de Dispersão em DDS

Mesma localização físicaMesma localização físicaDistância nacionalDistância nacional

Distância continentalDistância continentalDistância globalDistância global

Page 32: Desenvolvimento Distribuído de Software

Níveis de Dispersão em DDSNíveis de Dispersão em DDS

Mesma localização físicaMesma localização física

Page 33: Desenvolvimento Distribuído de Software

Níveis de Dispersão em DDSNíveis de Dispersão em DDS

Distância nacionalDistância nacional

Page 34: Desenvolvimento Distribuído de Software

Níveis de Dispersão em DDSNíveis de Dispersão em DDS

Distância continentalDistância continental

Page 35: Desenvolvimento Distribuído de Software

Níveis de Dispersão em DDSNíveis de Dispersão em DDS

Distância globalDistância global

Page 36: Desenvolvimento Distribuído de Software

Modelos de Negócio em DDSModelos de Negócio em DDS

Controle e relação entre as pessoasControle e relação entre as pessoasLocalização geográficaLocalização geográfica

Page 37: Desenvolvimento Distribuído de Software

Modelos de Negócio em DDSModelos de Negócio em DDS

OutsourcingOutsourcingterceirizarterceirizar

InsourcingInsourcing departamento ou subsidiáriadepartamento ou subsidiária

Controle e relação entre as pessoasControle e relação entre as pessoas

Page 38: Desenvolvimento Distribuído de Software

Modelos de Negócio em DDSModelos de Negócio em DDS

OnshoreOnshoremesmo paísmesmo país

OffshoreOffshorepaís diferentepaís diferente

Localização geográficaLocalização geográfica

NearshoreNearshorepaís diferente próximopaís diferente próximo

Page 39: Desenvolvimento Distribuído de Software

Modelos de Negócio em DDSModelos de Negócio em DDS

Controle e Controle e relação relação entre as entre as pessoaspessoas

OutsourcingOutsourcing““terceirizar”terceirizar”

OnshoreOnshoreOutsourcingOutsourcing

OffshoreOffshoreOutsourcingOutsourcing

InsourcingInsourcing““departamento departamento ou subsidiária”ou subsidiária”

OnshoreOnshoreInsourcingInsourcing

OffshoreOffshoreInsourcingInsourcing

OnshoreOnshore““mesmo país”mesmo país”

OffshoreOffshore““outro país”outro país”

Localização geográficaLocalização geográfica

Page 40: Desenvolvimento Distribuído de Software

Alguns Desafios do DDSAlguns Desafios do DDS

Impacto na forma comoImpacto na forma comoos produtos são concebidos,os produtos são concebidos,

testados e entregues aos clientestestados e entregues aos clientes

Page 41: Desenvolvimento Distribuído de Software

Alguns Desafios do DDSAlguns Desafios do DDS

PessoasPessoas

ComunicaçãoComunicação

ProcessoProcesso

TecnologiaTecnologia GestãoGestão

Page 42: Desenvolvimento Distribuído de Software

Alguns Desafios do DDSAlguns Desafios do DDS

PessoasPessoas

ConfiançaConfiançaDiferenças culturaisDiferenças culturais

Espírito de equipeEspírito de equipe

Page 43: Desenvolvimento Distribuído de Software

Alguns Desafios do DDSAlguns Desafios do DDS

ProcessoProcesso

Arquitetura do softwareArquitetura do softwareEngenharia de requisitosEngenharia de requisitos

Gerência de configuraçãoGerência de configuraçãoProcesso de desenvolvimentoProcesso de desenvolvimento

Page 44: Desenvolvimento Distribuído de Software

Alguns Desafios do DDSAlguns Desafios do DDS

TecnologiaTecnologia

Tecnologia de colaboraçãoTecnologia de colaboraçãoTelecomunicaçõesTelecomunicações

Page 45: Desenvolvimento Distribuído de Software

Alguns Desafios do DDSAlguns Desafios do DDS

GestãoGestão

Coordenação e controleCoordenação e controleGerenciamento de projetosGerenciamento de projetos

LegislaçãoLegislação

Page 46: Desenvolvimento Distribuído de Software

Alguns Desafios do DDSAlguns Desafios do DDS

ComunicaçãoComunicação

AwarenessAwarenessFormas de comunicaçãoFormas de comunicação

Fusos horáriosFusos horários

Page 47: Desenvolvimento Distribuído de Software

ConclusõesConclusões

Desenvolvimento DistribuídoDesenvolvimento Distribuídode Software é uma realidadede Software é uma realidade

Page 48: Desenvolvimento Distribuído de Software

ConclusõesConclusões

Equipes distribuídasEquipes distribuídasapresentam diversasapresentam diversas

dificuldades e desafiosdificuldades e desafios

Page 49: Desenvolvimento Distribuído de Software

ConclusõesConclusões

Confiança e espírito de equipeConfiança e espírito de equipeControlar processoControlar processo

ColaboraçãoColaboraçãoCoordenaçãoCoordenação

Equipes distribuídas precisam...Equipes distribuídas precisam...

ComunicaçãoComunicação

Page 50: Desenvolvimento Distribuído de Software

Perguntas?Perguntas?

Rafael Leonardo VivianRafael Leonardo VivianDepartamento de Informática – DINDepartamento de Informática – DIN

Universidade Estadual de Maringá – UEMUniversidade Estadual de Maringá – UEMrlvivian.uem [at] gmail [dot] comrlvivian.uem [at] gmail [dot] com

Twitter: @rafaelvivianTwitter: @rafaelvivian

Apresentação disponível em:Apresentação disponível em:www.din.uem.br/~pg45189/horus-dds.pdfwww.din.uem.br/~pg45189/horus-dds.pdf

Page 51: Desenvolvimento Distribuído de Software

Obrigado!Obrigado!

Rafael Leonardo VivianRafael Leonardo VivianDepartamento de Informática – DINDepartamento de Informática – DIN

Universidade Estadual de Maringá – UEMUniversidade Estadual de Maringá – UEMrlvivian.uem [at] gmail [dot] comrlvivian.uem [at] gmail [dot] com

Twitter: @rafaelvivianTwitter: @rafaelvivian

Page 52: Desenvolvimento Distribuído de Software

Extraído do livro “Desenvolvimento Distribuído de Extraído do livro “Desenvolvimento Distribuído de Software: desenvolvimento de software com Software: desenvolvimento de software com

equipes distribuídas”, Audy, J. e Prikladnicki, R., Rio equipes distribuídas”, Audy, J. e Prikladnicki, R., Rio de Janeiro : Elsevier, 2008. de Janeiro : Elsevier, 2008.