A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desenvolvimento Global de Software Mestrado de Informática / UFPB Francilene Procópio Garcia, D.Sc. Desenv. Global Software - Parte.

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento Global de Software Mestrado de Informática / UFPB Francilene Procópio Garcia, D.Sc. Desenv. Global Software - Parte."— Transcrição da apresentação:

1 Desenvolvimento Global de Software Mestrado de Informática / UFPB Francilene Procópio Garcia, D.Sc. francilene@ieee.org Desenv. Global Software - Parte I

2 Introdução: A economia do software global  Na entrada do século XXI, em todo o mundo, soam questões como:  Quais países são os que mais dependem da tecnologia?  Quem está seguro?  A infraestrutura básica de componentes caminha na direção correta?  Se as questões fossem sobre finanças - e não sistemas de software - talvez a resposta emergisse mais facilmente (qual país tem o mercado financeiro mais estável? Qual país tem infraestrutura financeira mais robusta?)  Vamos levantar alguns aspectos da economia do software global (ou da TI)

3 Introdução: Alguns números  Qual país tem a maioria dos profissionais de engenharia de software? Fácil … u Estados Unidos  Qual país tem os engenheiros de software mais produtivos? u Indía? Errado… Canadá  Os EUA estão perdendo ou ganhando em termos de MIPshare a nível mundial? u Em 2000, os EUA decresceram de 37% para 30%  Qual país melhor suporta o desenvolvimento de negócios em TI? u Nova Zelândia, é a resposta hoje

4 Introdução: A nova realidade global (24x7)  O desenvolvimento de software hoje acontece em todo o mundo, 24 horas por dia e 7 dias por semana  A dinâmica de negócios em software em termos do fluxo de trabalho, movimento de produtos e mobilidade de profissionais é verdadeiramente global  Se considerarmos que a engenharia de software seja a competência central da era da informação, um aspecto importante para os países medirem sua competitividade é dispor deste tipo de informação u desempenho dos engenheiros de software em termos de: produtividade, qualidade e capacidade para projetos locais e entre países

5 Introdução: Nova forma de gestão de competências e competitividade  Gestão remota: a habilidade de gerenciar atividades geograficamente distribuídas  Gestão de consumidores: desenvolvimento de relacionamentos mais refinados  Gestão do processo: eficiência na implementação de estratégias globais  Gestão da cadeia de valor: a habilidade de desenvolver parcerias  Gestão de tecnologias: a habilidade de explorar o potencial disponível e ser produtivo  Gestão de custos: a habilidade de maximizar os lucros a partir da gestão de custos

6 Introdução: Variações são evidentes  Enquanto os EUA exibem um misto de gestão e competências, na Europa percebe-se uma alto grau de especialização (Irlanda e França), e no Oriente fortes indícios de terceirização (India)  Não importa que plataforma ou ambiente se utilize - qualidade é uma peça chave u Qualidade de código e de produto é uma manifestação clara do processo de software e dos hábitos dos indivíduos u Quando se expressa qualidade em termos de defeitos por linhas de código as diferenças são significativas de país para país (EUA - 1,6; Japão - 1,8; Alemanha - 2,2; Israel - 2,3; França - 2,5; India - 2,6; Irlanda - 3,7; Canadá - 3,9)  Do ponto de vista global, as variações em produtividade, custo, desempenho, e capacidade de trabalho são indicadores claros dos avanços da economia global de software

7 Introdução: É possível atingir o desenvolvimento global de software?  Não importa o quanto avance a automação do processo de criação de software ou o quanto se desenvolvam novas tecnologias e ferramentas de suporte ao processo de software - o futuro é claro: as pessoas continuaram desenvolvendo software  A única coisa padrão até hoje em TI é o tamanho de um byte. No contexto da eng. de software existem pelo menos 5 padrões e 3 modelos de de capacidade de engenharia de sistemas  No âmbito do desenv. global, as diferenças culturais podem causar variações na semântica de algumas definições entre países u Tais diferenças devem resultar em estágios no mesmo projeto sendo implementados de forma variada para as diferentes culturas

8 Introdução: É possível atingir o desenvolvimento global de software?  Alguns fatores devem ser mantidos nas nossas mentes: u O tipo de software a ser implementado. O desenvolvimento de um grande sistema é um bom exemplo de um processo distribuído. O sistema e as ferramentas podem ser distribuídos entre parceiros segundo a mesma especificação técnica u Gestão de projeto. Um processo de gestão flexível e distribuído o suficiente assegura uma cooperação salutar entre os diversos grupos. Idealmente, todas as partes envolvidas devem fazer uso dos mesmos métodos e ferramentas, seguindo as mesmas regras de controle e qualidade. Na medida do possível, decisões sobre o produto, seus algorítmos, desempenho, funcionalidades, e/ou interface necessitam serem tomadas nas fases iniciais do processo e, nas fases finais elas devem ser revistas e aceitas

9 Introdução: É possível atingir o desenvolvimento global de software?  Alguns fatores devem ser mantidos nas nossas mentes: u Qualidade. A qualidade dos componentes é essencial ao processo de criação num ambiente virtual assíncrono. Os resultados obtidos com o processo de software, a sua aderência às necessidades do mercado, o treinamento dos usuários, e a melhoria contínua do processo de gestão e do próprio software possuem uma grande influência sobre a utilidade da solução e satisfação do cliente u Formalismos. Padrões, métodos e tecnologias apropriados devem ser escolhidos por pessoas que gerenciam o projeto e devem ser adaptados conforme a as demandas do projeto. Não devem ser vistos como uma religião u Tecnologia. As plataformas de comunicação e cooperação entre grupos não estão maduras ainda. Video conferências serão importantes. Contatos face-a-face ainda serão importantes como suporte às tecnologias formais

10 Posição da indústria  Por quê a indústria de software está mudando? u Oferta e demanda - a demanda por serviços de software tem sido maior que a oferta u Hoje, muitas empresas já consideram economicamente atrativo fazer outsourcing ou desenvolver software de forma cooperativa em outros países 197019801990 Número de micros disponíveis Número de profissionais de s/w disponíveis Demanda por software

11 Posição da indústria  Por quê a indústria de software está mudando? u Mercado global - o que se vê hoje é um deslocamento crescente de um mercado predominantemente Americano para um mercado global u A Microsoft, por exemplo, já possui 55% de sua produção centrada nas vendas fora dos EUA Mercado do vendedor Resposta do Mercado Expectativas do Consumidor Mercado do comprador Os clientes cada vez mais vão demandar software para suas necessidades...

12 Posição do mercado  O desenvolvimento global de software também ocorre devido aos novos arranjos de negócios - parcerias estratégicas e joint ventures u Uma parceria estratégica, ou aliança, traz situações onde um produto existente seja modificado ou suportado por empresas que não fizeram parte do desenvolvimento original  Em geral, as interfaces entre clientes e o feedback do mercado são compartilhados entre parceiros  Um dos parceiros pode ser o responsável pelo desenvolvimento e manutenção; outro pelo relacionamento com clientes … u As joint ventures resulta da união de empresas diferentes que passam a assumir responsabilidades fiscais conjuntas  São dependentes das legislações de cada país - um parceiro deve trazer a tecnologia, outro o capital, um outro pode prover recursos humanos...

13 Posição do mercado Desenvolvimento de subsistemas Geração da documentação Colocação do produto no mercado local Localização do produto Geração de documentação Desenvolvimento de subsistemas Colocação do produto fora do mercado local Controle de versões Suporte on-site Manutenção Aliança estratégica Parceiro Parceiro da joint venture Parceiro da joint venture Empresa criada joint venture Retorno financeiro Tecnologia Retorno financeiro Tecnologia Estratégia Investimento capital Investimento RH Joint Venture

14 Produção global de software Produção Global de Software Ciclos de Localização Necessidades e Valores de um Mercado Global Tecnologia Capacidade de Inovação Time to Market Entrada: Linha de produção Entrada: Info sobre Clientes e Concorrentes Entrada: Componentes reusáveis, ferramentas, etc. Saída: Plano de evolução Saída: Impacto do produto Saída: Desempenho do produto Valor/Preço

15 Mudanças à vista  Parcerias estratégicas - não requerem muito investimento em capital, porém a integração de estruturas e práticas é fundamental  Joint ventures - vão exigir alguns ajustes culturais - todos devem entender o que cada parceiro traz e espera da nova empresa  Empresas globais - num ambiente diverso (gestão, práticas de desenvolvimento, ferramentas, etc) a gestão conjunta do processo será um diferencial importante, inclusive com a superação de barreiras culturais  Desenvolvimento in-house - devem se manter, sempre uma opção para projetos de software específicos - porém as empresas devem se manter competitivas e manter-se em dia com as mudanças tecnológicas

16 Organização do esforço de desenvolvimento  Fazer uso de práticas de desenvolvimento cooperativo é uma estratégia em alta nos dias hoje. Porém, as empresas devem saber que componentes ou atividades do desenvolvimento podem ser realizadas por terceiros  Como decidir? Fatores técnicos e não técnicos devem ser considerados  Dependendo do projeto, a divisão de esforços pode ser definida segundo uma combinação de elementos: u parcerias de negócios u fases do desenvolvimento de software u aspectos da arquitetura do produto u experiência das equipes u investimentos de capital

17 Organização do esforço de desenvolvimento

18

19 Organização do esforço: Fases de desenvolvimento  É muito comum dividir os esforços segundo as fases de desenvolvimento do ciclo de vida do processo em uso: u Algumas empresas parceiras são mais experientes em certas áreas (projeto do sistema, integração e teste, suporte ao cliente) ContratoRequisitos Arquit. e Projeto alto nível Projeto baixo nível Codif. Teste unidade Teste integração Teste aceitação Instalação e suporte Empresa com experiência em projeto Empresa com experiência em codificação Empresa com experiência em teste Empresa com experiência em suporte

20 Organização do esforço: Aspectos arquiteturais  É o formato mais comum usado para divisão de esforços em projetos terceirizados (outsourcing): u Pratica-se um princípio já bem conhecido - “Divida e conquiste” Executivo Lista AtividadesPrioridadesEventos Escalonador Gerente Tarefas Gerente PacoteComunicação Empresa A Empresa B

21 Organização do esforço: Conhecimento e experiência  Também é popular. É aplicado quando as empresas demandam por alguns serviços que são dificéis de obter: u Em geral, um esquema arquitetural é usado para melhor definição da parceria Executivo Lista AtividadesPrioridadesEventos Escalonador Gerente Tarefas Gerente PacoteComunicação Empresa Terceira Tarefas do Disco Ótico [L] [P][A] [X] [X] [X] [X] Com base na experiência

22 Organização do esforço: Liderança  Embora não muito frequente, esta abordagem parq divisão de esforços é muito visível em empresas com alta experiência no mercado e grupos competentes  Recomenda-se a discussão de três questões chaves: u A empresa detém conhecimento sobre o domínio do problema? Possui uma visão acerca de sua solução? u A empresa possui recursos para viabilizar o projeto? u A empresa enconta-se comprometida com as fases do projeto?

23 Desenvolvimento Global: Comunicação  Comunicação é um aspecto determinante quando se gerencia projetos de software desenvolvidos em diferentes locais u os envolvidos devem ter meios para receber e transmitir mensagens verbais ou textuais  Existem duas dimensões para se determinar se um método de comunicação é efetivo: u Tempo - o quanto oportuna é a informação recebida u Conteúdo - o volume de informação escrita ou verbal comunicada e o que pode ser lido junto com ela (expressões faciais e tons de vozes em casos verbais; nível de formalidade em casos escritos)  Alguns métodos de comunicação combinam conteúdos verbais e não-verbais

24 Desenvolvimento Global: Comunicação Conteúdo BaixoTempo Alto BaixoAlto  e-Mail de Voz  Correio  e-Mail  Video conferência  Conferência telefone  Face a face

25 Desenvolvimento Global: Comunicação GeradorReceptor Modelo face a face GeradorReceptor Modelo conferência por telefone GeradorReceptor Modelo video conferência GeradorReceptor Modelo comunicação eletrônica Próxima ao tempo real Muito atraso no tempo de recepção Pouco conteúdo Muito conteúdo Comunicação fuzzy

26 Desenvolvimento Global: Comunicação eletrônica  O meio mais popular em organizações virtuais: u WEB e Internet - muito útil, este tipo de estrutura custa relativamente pouco se comparado ao seu uso relativo. Em geral, as empresas organizam um ambiente específico para troca de informações sobre o projeto. A segurança é um aspecto chave a ser considerado u Redes dedicadas (WANs e LANs) - o modelo de comunicação de uma rede dedicada possui muitas das características da Web e Internet, porém neste caso o controle de acesso é mais eficaz. Porém, para algumas empresas os custos com equipamentos, linhas de comunicação, software e manutenção são proibitivos  Outros aspectos a serem considerados: u Diferenças culturais u Fuso horário

27 Desenvolvimento Global: Integração  Em qualquer situação de projetos desenvolvidos por várias “cabeças”, os grupos virtuais devem dispor de métodos de comunicação, algum plano de gestão de configuração deve ser estruturado e ferramentas de apoio são disponibilizadas u ALERTA! A integração de tudo isto é o mais difícil em projetos deste tipo u Será necessária a criação de uma estratégia para integração sem maiores riscos  aquisição das ferramentas mais adequadas  uso correto de produtos para testes  definição de critérios de aceitação  definição do nível de documentação  definição do nível de suporte necessário

28 Desenvolvimento Global: Estratégias para Integração Local Virtual 1 Local Virtual 3 Local Virtual 2 Local Virtual 4 Descentralizado Pequenos grupos Ciclos curtos Local Virtual 1 Local Virtual 3 Local Virtual 2 Local Virtual 4 Feature completa Centralizado Ciclos longos % pequeno do s/w sofre mudanças Local Virtual 1 Local Virtual 3 Local Virtual 2 Local Virtual 4 Updates Just-in-time Projetos incrementais Ciclos curtos centrados em funcionalidades Updates Feature Main site

29 Desenvolvimento Global: Tools para Integração  Algumas ferramentas são relevantes na integração do projeto virtual: u Gestão de versões, gerenciando as versões em todas os locais de desenvolvimento e suportando o desenvolvimento distribuído. Tais ferramentas devem permitir a entrada de arquivos de fora de seu ambiente host u Integração, ferramentas de integração são úteis para junção dos n componentes do software. Podem gerar releases com módulos ainda não fechados e com erros; resolvem problemas de referência não definidas; e acionam versões iniciais de módulos via um linker. Tais ferramentas devem se capaz de recuperar componentes externos u Depurador, ferramentas de depuração devem ser capazes de rastrear os múltiplos módulos distribuídos entre os ambientes

30 Desenvolvimento Global: Testes para Integração  Dois tipos de testes devem ser praticados u Testes nos módulos desenvolvidos num dado local, u Testes para os módulos já terminados  Os testes devem apresentar alguma forma de documentação que indique o que foi testado e o que ainda estar para ser testado

31 Desenvolvimento Global: Critérios de aceitação para Integração  Definem uma lista de critérios que determinam quando um dado componente do software é aceitável para ser integrado ao produto  Devem ser definidos antes do início da tarefa de integração e são vitais por três razões chaves: u Diferenças culturais (diferentes formas de integração) u Os parceiros necessitam de alguma forma de evento (milestones) que definam a disponibilização do produto u Em geral, existem algumas dúvidas ou indefinições quanto aos requisitos levantados para o produto Requisitos do software CodificaçãoPlanos de TestesTestes Critérios de aceitação Entrega

32 Desenvolvimento Global: Critérios de aceitação para Integração  Os critérios de aceitação, em geral, dependem: u Das expectativas do consumidor/mercado u Do tempo disponível u Do capital disponível u Do estágio do software

33 Desenvolvimento Global: Documentação para Integração  É extremamente importante para auxílio à integração, deve incluir: u Uma matriz de rastreamento. Define as funções o software deve atender u Descrição do ambiente de integração. Descreve as ferramentas, processos e versões dos suítes de testes, arquivos de configuração, e outras ferramentas de suporte à integração u Matriz de versões dos módulos. Identifica cada módulo do software e a versão da configuração usada para construir a release. Este tipo de matriz pode ser encontrada num linker ou num ambiente de SCM

34 Discussão sobre artigo  WHAT CHARACTERIZES DISTRIBUTED DEVELOPMENT? – 1 aluno  WHAT HAVE COMPANIES LEARNED FROM DSD? – 2 alunos  DECISION CRITERIA FOR A DISTRIBUTED ENVIRONMENT – 1 aluno  METHODOLOGIES AND TECHNIQUES IN DSD – 1 aluno  OVERVIEW OF TOOLS AND TECHNOLOGY - 1 aluno


Carregar ppt "Desenvolvimento Global de Software Mestrado de Informática / UFPB Francilene Procópio Garcia, D.Sc. Desenv. Global Software - Parte."

Apresentações semelhantes


Anúncios Google