Desenvolvimento Global de Software - PowerPoint PPT Presentation

About This Presentation
Title:

Desenvolvimento Global de Software

Description:

Desenvolvimento Global de Software Mestrado de Inform tica / UFPB Francilene Proc pio Garcia, D.Sc. francilene_at_ieee.org Desenv. Global Software - Parte I – PowerPoint PPT presentation

Number of Views:127
Avg rating:3.0/5.0
Slides: 35
Provided by: Telmo
Category:

less

Transcript and Presenter's Notes

Title: Desenvolvimento Global de Software


1
Desenvolvimento Global de Software
  • Mestrado de Informática / UFPB
  • Francilene Procópio Garcia, D.Sc.
  • francilene_at_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
  • Estados Unidos
  • Qual país tem os engenheiros de software mais
    produtivos?
  • Indía? Errado Canadá
  • Os EUA estão perdendo ou ganhando em termos de
    MIPshare a nível mundial?
  • Em 2000, os EUA decresceram de 37 para 30
  • Qual país melhor suporta o desenvolvimento de
    negócios em TI?
  • 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
  • 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
  • Qualidade de código e de produto é uma
    manifestação clara do processo de software e dos
    hábitos dos indivíduos
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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?
  • Oferta e demanda - a demanda por serviços de
    software tem sido maior que a oferta
  • Hoje, muitas empresas já consideram
    economicamente atrativo fazer outsourcing ou
    desenvolver software de forma cooperativa em
    outros países

11
Posição da indústria
  • Por quê a indústria de software está mudando?
  • Mercado global - o que se vê hoje é um
    deslocamento crescente de um mercado
    predominantemente Americano para um mercado
    global
  • A Microsoft, por exemplo, já possui 55 de sua
    produção centrada nas vendas fora dos EUA

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
  • 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
  • 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
Parceiro
Parceiro
Aliança estratégica
Joint Venture
14
Produção global de software
Ciclos de Localização
Entrada Linha de produção
Valor/Preço
Necessidades e Valores de um Mercado Global
Saída Desempenho do produto
Produção Global de Software
Time to Market
Entrada Info sobre Clientes e Concorrentes
Saída Plano de evolução
Tecnologia
Capacidade de Inovação
Entrada Componentes reusáveis, ferramentas, etc.
Saída Impacto do produto
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
  • parcerias de negócios
  • fases do desenvolvimento de software
  • aspectos da arquitetura do produto
  • experiência das equipes
  • investimentos de capital

17
Organização do esforço de desenvolvimento
18
Organização do esforço de desenvolvimento
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
  • Algumas empresas parceiras são mais experientes
    em certas áreas (projeto do sistema, integração e
    teste, suporte ao cliente)

20
Organização do esforço Aspectos arquiteturais
  • É o formato mais comum usado para divisão de
    esforços em projetos terceirizados (outsourcing)
  • Pratica-se um princípio já bem conhecido -
    Divida e conquiste

Executivo
Empresa B
Escalonador
Gerente Tarefas
Gerente Pacote
Comunicação
Lista Atividades
Prioridades
Eventos
Empresa A
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
  • Em geral, um esquema arquitetural é usado para
    melhor definição da parceria

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
  • A empresa detém conhecimento sobre o domínio do
    problema? Possui uma visão acerca de sua solução?
  • A empresa possui recursos para viabilizar o
    projeto?
  • 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
  • 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
  • Tempo - o quanto oportuna é a informação recebida
  • 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
25
Desenvolvimento Global Comunicação
26
Desenvolvimento Global Comunicação eletrônica
  • O meio mais popular em organizações virtuais
  • 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
  • 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
  • Diferenças culturais
  • 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
  • ALERTA! A integração de tudo isto é o mais
    difícil em projetos deste tipo
  • 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
Main site
Main site
Main site
29
Desenvolvimento Global Tools para Integração
  • Algumas ferramentas são relevantes na integração
    do projeto virtual
  • 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
  • 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
  • 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
  • Testes nos módulos desenvolvidos num dado local,
  • 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
  • Diferenças culturais (diferentes formas de
    integração)
  • Os parceiros necessitam de alguma forma de evento
    (milestones) que definam a disponibilização do
    produto
  • Em geral, existem algumas dúvidas ou indefinições
    quanto aos requisitos levantados para o produto

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

33
Desenvolvimento Global Documentação para
Integração
  • É extremamente importante para auxílio à
    integração, deve incluir
  • Uma matriz de rastreamento. Define as funções o
    software deve atender
  • 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
  • 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
Write a Comment
User Comments (0)
About PowerShow.com