Desenvolvimento Distribuído de Software Rafael Leonardo Vivian (DIN-UEM) rlvivian.uem [at] gmail [dot] com Twitter: @rafaelvivian Evolução do Desenvolvimento de 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) Desenvolvimento Distribuído de Software Fatores geradores de DDS Globalização Processos de terceirização Crescimento da importância dos SI Globalização Desenvolvimento de software ● 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 Outsourcing Desenvolvimento de software ● 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 Outsourcing Fonte: Gartner/Brasscom Outsourcing Fonte: Gartner/Brasscom Crescimento da Importância dos Sistemas de Informação Desenvolvimento de software ● 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 Equipes Distribuídas Desenvolvimento de software ● Melhorias nas ferramentas e métodos têm permitido que grupos distribuídos possam trabalhar em equipe em um mesmo projeto Desenvolvimento Distribuído de Software Uma revolução da maneira como se desenvolve software Desenvolvimento Distribuído de Software Colaboração e cooperação entre departamentos de organizações e grupos de desenvolvedores que trabalham em conjunto Soluções Globais Benefícios ● Economia em termos de custo para grandes projetos ● Profissionais habilitados em idioma diferente ● Baixas taxas de rotatividade de pessoal ● Incentivo de governos locais Fatores Geradores de DDS Recursos globais a qualquer hora ● Maiores vantagens competitivas com soluções globais, em outros países Fatores Geradores de DDS Proximidade com o mercado local ● Conhecimento dos clientes e condições locais para oportunidades de mercado Fatores Geradores de DDS Desenvolvimento time-to-market ● Vantagens do fuso horário: – folow-the-sun (24 horas contínuas) Desenvolvimento Distribuído de Software Obter vantagens competitivas associadas a custo, qualidade e flexibilidade no desenvolvimento, aumentado a produtividade e diminuindo os riscos Dificuldades em DDS Dispersão geográfica Dispersão temporal Diferenças socioculturais Dificuldades em DDS Dispersão geográfica ● Distância física Dificuldades em DDS Dispersão temporal ● Diferenças de fuso horário Dificuldades em DDS Diferenças socioculturais ● Idioma ● Tradições ● Costumes ● Normas ● Comportamentos Dificuldades em DDS A sensação de distância se multiplica em diversas dificuldades na coordenação do trabalho para desenvolver software Dificuldades em DDS Outros fatores ● Questões estratégicas ● Questões técnicas ● Questões de gestão do conhecimento Fatores que motivam o uso DDS Demanda e custos Rapidez de resposta ao mercado Mercado e presença global Rigor e experiência Sinergia cultural Escala Fatores que motivam o uso DDS Demanda 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 motivam o uso DDS Rapidez 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 motivam o uso DDS Mercado 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 motivam o uso DDS Rigor 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 motivam o uso DDS Sinergia cultural ● A diversidade amplia a criatividade e a inspiração ● Encontrar novas formas de resolver problemas ● Ampliar a capacidade de aprendizado Fatores que motivam o uso DDS Escala ● Centros de desenvolvimento de software aumentam e ficam difíceis de gerenciar Níveis de Dispersão em DDS Mesma localização física Distância nacional Distância continental Distância global Níveis de Dispersão em DDS Mesma localização física Níveis de Dispersão em DDS Distância nacional Níveis de Dispersão em DDS Distância continental Níveis de Dispersão em DDS Distância global Modelos de Negócio em DDS Controle e relação entre as pessoas Outsourcing terceirizar Insourcing departamento ou subsidiária Modelos de Negócio em DDS Localização geográfica Onshore mesmo país Offshore país diferente Nearshore país diferente próximo Modelos de Negócio em DDS Outsourcing “terceirizar” Controle e relação Insourcing entre as pessoas “departamento ou subsidiária” Onshore Outsourcing Offshore Outsourcing Onshore Insourcing Offshore Insourcing Onshore Offshore “mesmo país” “outro país” Localização geográfica Alguns Desafios do DDS Impacto na forma como os produtos são concebidos, testados e entregues aos clientes Alguns Desafios do DDS Pessoas Processo Tecnologia Gestão Comunicação Alguns Desafios do DDS Pessoas Confiança Diferenças culturais Espírito de equipe Alguns Desafios do DDS Processo Arquitetura do software Engenharia de requisitos Gerência de configuração Processo de desenvolvimento Alguns Desafios do DDS Tecnologia Tecnologia de colaboração Telecomunicações Alguns Desafios do DDS Gestão Coordenação e controle Gerenciamento de projetos Legislação Alguns Desafios do DDS Comunicação Awareness Formas de comunicação Fusos horários Conclusões Desenvolvimento Distribuído de Software é uma realidade Conclusões Equipes distribuídas apresentam diversas dificuldades e desafios Conclusões Equipes distribuídas precisam Confiança e espírito de equipe Controlar processo Colaboração Coordenação Comunicação Perguntas? Apresentação disponível em: www.din.uem.br/~pg45189/sifa-dds.pdf Rafael Leonardo Vivian (DIN-UEM) rlvivian.uem [at] gmail [dot] com Twitter: @rafaelvivian Obrigado! Rafael Leonardo Vivian (DIN-UEM) rlvivian.uem [at] gmail [dot] com Twitter: @rafaelvivian Extraído do livro “Desenvolvimento Distribuído de Software: desenvolvimento de software com equipes distribuídas”, Audy, J. e Prikladnicki, R., Rio de Janeiro : Elsevier, 2008.