Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

83
Fábricas de Software Prof. Jones Albuquerque slide 1 de 116

Transcript of Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Page 1: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Fábricas de Software

Prof. Jones Albuquerque

slide 1 de 116

Page 2: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

ROTEIRO

1. Conceitos, idéias e mitos

2. Processos e Casos de sucesso e falha

3. Oficina de Montagem de Fábricas

4. Venda de Software

slide 2 de 116

Page 3: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 3 de 116

communications

applications

services

infrastructure

Page 4: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 4 de 116

communications

applications

services

infrastructure

software

applications

middleware

hardware + op sys[zysman stack]

Page 5: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 5 de 116

communications

applications

services

infrastructure

applications

softwarecomputing +communications

BUSINESSPROCESSES

Page 6: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 6 de 116

seu negócio éuma

comunidade!Silvio Meira

Page 7: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 7 de 116

http://headrush.typepad.com/creating_passionate_users/2007/03/user_community_.html

Page 8: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 8 de 116

comunidadedesenvolve [novos]produtos e serviços

Page 9: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

desenvolvimento de software em indústria, comunidades acadêmicas e científicas

uma fábrica de software? Uma comunidade de software...

slide 9 de 116

Page 10: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

um típico laboratório de desenvolvimento...

slide 10 de 116

Page 11: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Produção de Software: histórico• 60´s Fábrica de Software • 70´s Kanbam• 70´s Just In Time• 80´s SIGMA• 90´s CMM• 00´s Fábrica de

Software... de novo!• 10´s Fábrica de Componentes?

• COMUNIDADES?

• Open-Source?

• Distribuída?slide 11 de 116

Fonte: sixsigmatutorial.com

Page 12: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

factories X Business X OSS development...

• conjunções e intersecções

• métodos e ferramentas

• processo

• modelos

• licenças

• vendas

slide 12 de 116

Page 13: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Free Software Projects

• Nascem como iniciativa isolada e particular

• Usuários são co-desenvolvedores

• Divulgação “boca-a-boca”• Teste massificado pelos usuários• Gerência de versões é complexa

e “bem-definida”

slide 13 de 116

Page 14: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

SW livre e a monark?

slide 14 de 116http://www.no.com.br/revista/noticia/54475/atual

No Natal de 1964, a bicicleta Monark na sala, em Arcoverde, não era mais nem tanta surpresa assim. Eu tinha infernizado a vida de Seu Inácio meses a fio e ele, para se livrar da perseguição, talvez fosse capaz de me comprar um Sherman M4, daqueles que o exército brasileiro usou até o fim dos anos 70. O fato é que lá estava a bike de gente grande, muito diferente daquela de "minino" que eu tinha até a véspera, agora herança de meus irmãos. Depois de desfilar meu novo status para a vizinhança, as próximas providências foram tirar o bagageiro e instalar uns retrovisores... muito mais pra eu me ver pedalando do que para vigiar o tráfego. E, como fevereiro vinha por ali, fazer uma sirene, com barbante, borracha de câmara de ar e uma lata de óleo Salada, pra zoar no carnaval. Minha bicicleta, minhas modificações, meus adicionais, a Monark nunca teve uma satisfação, nem nunca me cobrou.

Page 15: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Open Source Projects• (Sun apr 22 20:18:32 BRT 2007) 189,827 projects!

•  Communications (18979)•  Database (7090)•  Desktop Environment (3843)•  Education (5076)•  Formats and Protocols (3014)•  Games/Entertainment (17723)•  Internet (29002)•  Multimedia (15900)•  Office/Business (9960)• Other/Nonlisted Topic (2620) • Printing (526) •  Religion and Philosophy (341)•  Scientific/Engineering (15436)•  Security (3350)•  Sociology (442)•  Software Development (29007)•  System (23545)•  Text Editors (3275)

slide 15 de 116

http://sourceforge.net/

231,649 projects nov 29 BRT 2007!268,668 projects apr 24 BRT 2008!273,633 projects mai 15 BRT 2008!

Page 16: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

sourceforge.net•2005 jun 100K

•2006 apr 134K

•2007 apr 189K

•2008 apr 269K

0

50

100

150

200

250

300

2004 2005 2006 2007 2008 2009

Série1

slide 16 de 116

273,633 projects mai 15 BRT 2008!!!

Page 17: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

fábricas de software

princípiosconceitos

ilusões

slide 17 de 116

Fonte: www.cs.ucla.edu

Page 18: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

fábrica de software na prática

• Operação profissional

• Processo de desenvolvimento transparente

• Retorno rápido ao cliente

• Alta produtividade• Ferramentas e processos padronizados

• Alta qualidade• Dados históricos, previsibilidade e análise de risco

• Reusabilidade de código

[1968 G&E, R. W. Berner][2003 IEEE Computer Vol.36 Num.3, B. Boehm]

[2005 IEEE Software Vol. 22 Num 2, PostModern SW Design]

slide 18 de 116

Page 19: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

e o mercado?

• http://mshiltonj.com/software_wars/

slide 19 de 116

Page 20: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 20 de 116

Page 21: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 21 de 116

Page 22: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 22 de 116

Page 23: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Cathedral and Bazaar

e Desenvolvimento de Software

segundo Eric Raymond, 1997

• Alguns projetos são como Cathedrals– altamente centralizados em poucas pessoas

que decidem projeto e implementação– para fazer parte deve-se aceitar as definições

slide 23 de 116

Fonte: http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/

Page 24: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Outros são como Bazaars (SW livre)

Sem planejamento detalhado mas orientados!

• Linux Kernel (www.linux.org): “hierarchical”– Linus Torvalds, “The Benevolent Dictator”

• APACHE Foundation (www.apache.org): “meritocracy”– Para fazer parte você deve ter colaborado continuamente em projetos da

fundação

• GCC (gcc.gnu.org): “steering Commitee”

slide 24 de 116

Page 25: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Conceitos

“The factory is an organization inhabited by people engaged in a common effort, work is organized one way or the other, standardization is used for coordination and formalization, and systematization is important, but there will be several options for the design of a particular software factory”

[Aaen, Botcher, Mathiassen, Software Factories, 1997]http://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf

slide 25 de 116

Page 26: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

fábricas de software: 4 estratégias...

• Japonesa (1981,1987)– SWB – Software Work Bench

• Européia (1991,1992)– ISDE – Integrated Software Development Environment

• Norte-Americana– experiência produção (1989,1993)

• Norte-Americana– níveis de maturidade (1990,1993)

slide 26 de 116

Page 27: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

...considerações...

“The four approaches are important contributions towards this goal. At the same time the approaches individually may lead to unfortunate illusions. Learning from the relative strengths and weaknesses between the approaches may help us avoid becoming victims of these illusions”

[Aaen, Botcher, Mathiassen, Software Factories, 1997]

http://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf

slide 27 de 116

Page 28: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

...e ilusões...

fábrica de software ≠ produção em massa

padronização, formalização, especialização,

controle ≠ produção de software com qualidade

o que fazer?

slide 28 de 116

Fonte: www.icb.ufmg.br

Page 29: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Discussion... open source communities versus Software Factories• personal time and autonomy

... freelancers

... project-oriented

• ... there are several avenues for future research– ... to refine the proposed framework and validate it empirically

slide 29 de 116

Page 30: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

e as comunidades híbridas? A Framework for

creating hybrid-open source software

communities

Srinarayan Sharma

et. al.

Info Systems

(2002), 12.slide 30 de 116 FONTE: http://www.blackwell-synergy.com/doi/pdf/10.1046/j.1365-2575.2002.00116.x

Page 31: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Introdução• “OSS model is a fundamentally new and revolutionary way to develop

software”

• “organizations are having difficulty building a business model around the open source paradigm”

• “not all OSS initiatives have been successful”

• “a Framework for creating • Hybrid-OSS communities!!!”

slide 31 de 116

Page 32: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

o modelo de OSS - Open-Source Software

• Três dimensões– Estrutura, processo e cultura

slide 32 de 116

structure culture

process

Eletronic communication

Multicultural community

Values: reciprocity, gift giving, reputation, ideology

Core assumptions

Division of labour

Co-ordination mechanisms

Distribution od decision-making

Organizational boundaries

Informal structure

Political structure

Legitimate basis of authority

Fonte: Info Systems (2002), 12.

Page 33: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

o que “sabemos” aqui?

• TODO o pressman ou sommerville (Software Engineering)

• ou seja:– requisitos, especificações, refinamento,

validação e verificação, métodos, técnicas, linguagens e ferramentas, componentes, reutilização, manutenção, modelagem de processos, qualidade, reengenharia,, verificação, validação e teste... além de programação JAVA++!...

– {faltaria o quê?}slide 33 de 116

Page 34: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

ROTEIRO

slide 34 de 116

1. Conceitos, idéias e mitos

2.Processos e Casos de sucesso e falha

3. Oficina de Montagem de Fábricas4. Venda de Software

Page 35: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

building a software factory...[Making the software factory work... 1990-1999]

1. to define a detailed software development process

2. staff members were given extensive training in the new process

3. process specification separated from process execution

4. data collection and analysis

1. interviews2. software process assesments3. process attributes for each project4. configuration management system5. project tracking data

http://ieeexplore.ieee.org/iel5/7313/19776/00915539.pdf

slide 35 de 116

Page 36: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Lições aprendidas

• “separating function of process engineer from developer”

• “job rotation between process engineering and product development”

slide 36 de 116 Fonte: www.everest2006.com.br

Page 37: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Framework para construção de fábricas de software

uma proposta

1. ... processo x equipe

2. ... requisitos x arquitetura

3. ... métricas x incerteza

4. ... ferramentas x processo

5. ... Comunidade x produto

6. ... ??

slide 37 de 116

Precisamos de um processo para definição de atividades,

ferramentas, técnicas, artefatos...

Page 38: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

É o que as pessoas fazem, utilizando procedimentos, métodos e ferramentas, para adquirir, desenvolver, manter e melhorar software e produtos associados

slide 38 de 116

Processo de SoftwareProcesso de Software

Objetivos

Recursos e Infraestrutura

Entradas SaídasATIVIDADES

Page 39: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

• Repositório das melhores práticas da Engenharia de Software (SWEBOK,

CMMI, ISO15504, ISO9000,PMBOK)• Referência para escrever e estabelecer processos • Define “o quê“ deve ser feito, não o “como”• Independente da tecnologia a ser utilizada• Diversas empresas já utilizaram com sucesso

• Os modelos definem um conjunto universal de processos fundamentais para

Engenharia de Software e um roteiro racional para avaliação e melhoria de

cada processo

slide 39 de 116

Exemplo: Fazer um bolo de chocolate com cobertura de brigadeiro e recheio de creme de coco, sem utilizar batedeira.

• Quais os ingredientes ????• Que atividades??• Como devo proceder??

Exemplo: Fazer um bolo de chocolate com cobertura de brigadeiro e recheio de creme de coco, sem utilizar batedeira.

• Quais os ingredientes ????• Que atividades??• Como devo proceder??

• Exemplo: BOLO PRESTÍGIO DA TIA RÔ

Cobertura tipo brigadeiro• Ingredientes: 1 lata leite condensado, 1 colher de manteiga, 4 colheres de chocolate• Modo de fazer: xxxx

Massa básica de bolo• Ingredientes: 4 ovos, 16 colheres de água, 3 xícaras de farinha, 3 xícaras de açucar, 1 colher de pó royal• Modo de fazer: xxxx

Recheio• Ingredientes: 1 lata de leite condensado, 1 lata de creme de leite, 1 vidro de leite de coco, 150g de coco• Modo de fazer: xxxx

• Exemplo: BOLO PRESTÍGIO DA TIA RÔ

Cobertura tipo brigadeiro• Ingredientes: 1 lata leite condensado, 1 colher de manteiga, 4 colheres de chocolate• Modo de fazer: xxxx

Massa básica de bolo• Ingredientes: 4 ovos, 16 colheres de água, 3 xícaras de farinha, 3 xícaras de açucar, 1 colher de pó royal• Modo de fazer: xxxx

Recheio• Ingredientes: 1 lata de leite condensado, 1 lata de creme de leite, 1 vidro de leite de coco, 150g de coco• Modo de fazer: xxxx

Modelo

Áreas de Conhecimento

Por que usar modelos?Por que usar modelos?

Page 40: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 40 de 116

RSKM: Gestão de Risco QPM: Gestão Quantitativa de Projeto

REQM: Gestão de RequisitosRD: Desenvolvimento de Requisitos

TS: Solução TécnicaPI: Integração de Produto

VER: VerificaçãoVAL: Validação

CM: Gestão de ConfiguraçãoPPQA: Garantia da Qualidade

de Processo e ProdutoMA: Medição e Análise

DAR: Análise de Decisão e ResoluçãoCAR: Análise de Causa e

Resolução

OPF: Foco no Processo OrganizacionalOPD: Definição do Processo OrganizacionalOT: Treinamento OrganizacionalOPP: Desempenho do Processo OrganizacionalOID: Inovação e Melhoria OrganizacionalPP: Planejamento de ProjetoPMC: Acompanhamento e Controle de ProjetoSAM: Gestão de Acordos com FornecedoresIPM: Gestão Integrada de Projeto

ÁREAS DE PROCESSO

Exemplo de modelo: CMMIExemplo de modelo: CMMI

Page 41: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 41 de 116

Obter Entendimento

dos Requisitos

ObterComprome-timento para

os Requisitos

Matriz de Rastreabilidade ouSistema de Acompanhamento de Requisitos

Requisitos

ManterRastreamentoBidirecional Requisitos

IdentificarInconsistênciasentre Trabalho

do Projeto eRequisitos

Gerenciar os requisitos

Gerenciar Mudanças Requisitos

Exemplo de modelo: CMMI - REQMExemplo de modelo: CMMI - REQM

Page 42: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Principais Modelos de Capacidade de Processo

• ISO/IEC 15504 (SPICE) :Software Engineering: Process Assessment(Engenharia de Software: Avaliação de Processo) – SPICE: Software Process Improvement Capability dEtermination

• CMMI : Capability Maturity Model Integration(Modelo Integrado de Maturidade da Capacidade)

• MR-MPS: Modelo de Referência do Projeto MPS-BR

• Há outros ?

slide 42 de 116

Page 43: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 43 de 116

Processos, guias, modelos... um mundo!

Page 44: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

o PROCESSO é complexo!

slide 44 de 116 (c) MERX LLC

Page 45: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 45 de 116

Elaborado: OJS - Revisão: CAB, JPML, GMR - Aprovado: CAB - Versão 0

Fábrica de Software da Ampla Consultoria em Informação

Prospecção

Execução

PLT

Execução

Proposta

Proposta

Encerramento

Garantia

Execução

PPPP

PC

PCPP PP

PROT

PPF

PT

DR

PC

PC PROTDRPTPPF

MER

DR

PPF

PT

PC

PPF

PP

PT

MER

UC

MER

UC

DR

DR

DR

MER

UC

DR

PROT

DR

DRPROT

DR

UC

AR

MER

PROT

N

S

N

S

S

N

OK?

RevisarRequisitos,

interfaces, casosde uso e MER

Gc

Criar PropostaComercial

Líder Equipe 2

Validar requisitos

Criar PropostaTécnica e Plano

de Projeto

Validar interfacese requisitos

Técnicos

Cl

Líder Equipe 1

Gc

Gerente de Projetos

Di

Agendar visitaspara apresentaçãoe/ou elicitação de

requisitos

Diretor

Identificardemandas que

possam seratendidas pelas

áreas deconhecimento

Gp

Projetar interfaces

Técnicos

Gc

Cliente

Requisitos/escopoestão claros?

Gp

Prototiparinterfaces

Projetarinterfaces?

1

Técnicos

De

Gerente ComercialGerente de Tecnologia

Gerente de Processos e Qualidade

Início

Gp

Líder Equipe n

Análise de Pontosde Função

Gc Di

Gc Gp

GcCl Gp

Gp

Gp Gc

Gp

N

S

S Revisões?

Projetoaprovado?

C

1

Registrarsuspensão do

projeto

Apresentar PC,PT e DR

Revisar DR, PT,PPF, PC e PROT.

Di GpGc

Gp

N

S Renegociar?

Revisarcronograma

Revisar PropostaComercial

Avaliar riscos

Preparar ambientede

desenvolvimento

Lp

Lp

Reavaliarnecessidades de

treinamento

Lp

Gp

Reavaliar recursoshumanos,software ehardware

LpGp

Lp

Gp GcDi

S

S

N

S

N

S

N

N

S

S N

Fim

PP

OK?

MER MER

DR

Implementar

A

Projetar banco dedados

PT

Apresentarrequisito paradesenvolvedor

PC

DS (o)

BIntegrar?

Corrigir

Preparar Plano deTeste

Lp

B

Solicitação demudanças

PLT

SM

Selecionarrequisito

Cl

Avaliar solicitação

DR

PLT

Problemas naimplementação?

Realizar Teste deUnidade

Comunicar Líderdo Projeto

PC

Revisar requisitos,plano de projeto

De

Realizar casos deuso

De

DI (o) Nãoconformidades?

PP

DS (o)

Agendar reuniãocom cliente

MER

PT

B-1

PC

Aprovarmudanças?

PLT

DR

Lp

PP

A

DI (o)

PP

Revisar requisitose plano de projeto

3

DR

Renegociar

PT

Lp

PT

Pode ser resolvidointernamente?

A-1

B-2

Encerrarsolicitação

DC

B-2

Especificar casosde teste de

unidade

A-2

PC

RIT

Lp

Gp

DC

GpSM

Início

De

Gc

SM

Lp

Gp Gc

Gp Gc

LpCl

Di

GpLp

Lp

De

De

S

N

S

N

PP

B

Nãoconformidades?

PP

PP

3

RIT

Analisar nãoconformidades e

planejarimplementação

Gp

RIT

DeGq

Analisar nãoconformidades e

planejarimplementação

B

Realizar Teste deSistema

Realizar Teste deIntegração

Nãoconformidades?

NS

N

S

S

N

Iniciar período degarantia(90 dias)

Analisar

Gq

PP

Preparar materialde treinamento

PO

PP

B

DR

De

Agendartreinamento

Gp

B

Realizartreinamento

DRProblema

encontrado?

PT

Gp

PC

Instalar econfigurarsoftware

Aceitação totalou parcial?

Procede?

Analisar

DR

De

AR

Teste deaceitação

(com cliente)

De

DeGp

Realizar pesquisade opinião

C

Reunião deencerramento

(equipe)

RM

KB

De

Gp

AR

Di

Gp

Avaliar resultadosdo projeto

Gq

Lp

Registrarencerramento do

projeto

Fim

PO

Gp

Artefato

Artefato fonte

Artefato produzido

Fluxo do processo

Processo

Ponto de decisão

Responsabilidade

Di DiretorCl ClienteGc Gerente ComercialGt Gerente de TecnologiaGp Gerente de ProjetosGq Gerente de Processos e QualidadeLp Líder do ProjetoDe Desenvolvedor

Atores

Artefatos

AR_<Cód. do Projeto>_<aaaammdd> Ata de ReuniãoDR_<Cód. do Projeto>_V<99>.<99> Documento de RequisitosPT_<Cód. do Projeto>_V<99>.<99> Proposta TécnicaPC_<Cód. do Projeto>_V<99>.<99> Proposta ComercialPP_<Cód. do Projeto>_V<99>.<99> Plano de ProjetoMER_<Cód. do Projeto>_V<99>.<99> Modelo de Entidades e RelacionamentosPLT_<Cód. do Projeto>_V<99><99> Plano de TesteRIT_<Cód. do Projeto>_V<99><99> Relatório de Incidentes de TesteMU_<Cód. do Projeto>_V<99>.<99> Manual do UsuárioPO_<Código do Projeto> Pesquisa de OpiniãoPROT_<aaaammdd> Protótipo (Na pasta I)SM_<Cód. do Projeto>_V<99>.<99> Solicitação de MudançasUC_<Cód. do Projeto>_V<99>.<99> Caso de UsoPPF_<Código do Projeto>_V<99>.<99> Pontos por FunçãoDC_<Código do Projeto>_V<99>.<99> Diagrama de ClassesDS_<Código do Projeto>_V<99>.<99> Diagrama de SequênciaDI_<Código do Projeto>_V<99>.<99> Diagrama de InteraçãoRA_<Código do Projeto>_V<99>.<99> Relatório de AceitaçãoRM_<Código do Projeto>_V<99>.<99> Relatório de Melhorias no ProcessoKB Knowledge Base

(o) = Opcional

Gp DeGq

GpCl

GpGq

Gq

Gq Gp De

Gq

PP

RA

Encerramento

MER

DR

PPF

PT

PC

PPF

PP

PT

MER

UC

MER

UC

DR

DRDR

MER

UC

DR

ReviseRequirements,

interfaces, E-Rand Use Cases

Gc

Build CommercialProposal

Build TechnicalProposal and

Project Plan

DiGc

Gp

1

Gp

Function PointAnalysis

Gp Gc

Gp

Contrato

Execução

Entrega

Prospecção

o processo é complexo... Ex.: Amplao processo é complexo... Ex.: Ampla

Page 46: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Temos uma sugestão: Hukars

1. Definir o modelo de negócios2. Definir a organização da fábrica3. Definir processo de desenvolvimento4. Habilitar o trabalho de forma distribuída5. Prover um site para a fábrica6. Prover um site exclusivo para cada novo projeto7. Definir papéis para cada novo projeto8. Trabalhar em harmonia

slide 46 de 116

Page 47: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Hukarz

• Fases

slide 47 de 116

Page 48: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Hukarz ...

slide 48 de 116

Hukarz

<<Disciplina>>Construção

<<Disciplina>>Arquitetura de

Software

<<Disciplina>>Testes

<<Disciplina>>Gerenciamento de Configuração de

Software

<<Disciplina>>Engenharia de

Processo

<<Disciplina>>Planejamento &

Acompanhamento de Projetos

<<Disciplina>>Gerenciamento de

Requisitos

[email protected],[email protected],[email protected]

Page 49: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

e as pessoas?.

.. mais complexas

ainda!!

slide 49 de 116 (c) MERX LLC

Page 50: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 50 de 116

Fornecimento ou troca de informações, de idéia ou de sentimento, através de:

PALAVRASSINAIS

GESTOS

Page 51: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 51 de 116

PROCESSAMENTO INTERNO

EVENTOS EXTERNOS

OMISSÕES, CRENÇAS, VALORES E OBJETIVOS

REPRESENTAÇÃO INTERNA

APRESENTAÇÃO DE INFORMAÇÃO

•VERBAL

•NÃO VERBAL

•IMAGENS

•SONS E PALAVRAS

•SENSAÇÃO (MOTIVAÇÃO,SATISFAÇÃO)

Page 52: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Três Estágios de Percepção

• Estágio de EXPOSIÇÃO – os consumidores recebem informação através de seus sentidos.

• Estágio de ATENÇÃO – os consumidores alocam capacidade de processamento a um estímulo.

• Estágio de COMPREENSÃO – os consumidores organizam e interpretam a informação para obter significado a partir dela.

slide 52 de 116

Page 53: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

O QUE SE VÊ?

slide 53 de 116

Page 54: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

RESPOSTA:• TRÊS COLUNAS E NÃO TRÊS LINHAS,

POR QUÊ?• OS ELEMENTOS MAIS PRÓXIMOS TENDEM A

SER AGRUPADOS.

slide 54 de 116

Page 55: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 55 de 116

Page 56: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

RESPOSTA• TRÊS LINHAS E NÃO QUATRO COLUNAS,

POR QUÊ?• OS ELEMENTOS SEMELHANTES SÃO

AGRUPADOS.

slide 56 de 116

Page 57: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 57 de 116

Page 58: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 58 de 116

Page 59: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 59 de 116

Page 60: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 60 de 116

Page 61: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 61 de 116

Page 62: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

slide 62 de 116

Page 63: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

O que a gente não quer? esse tipo de

“institutionalization”!

slide 63 de 116

No, not that kind!

Fonte: Process Implementation, Sarah Sheard. Software Productivity Consortium. July 3, 2003

https://www.goldpractices.com//practices/ippd/

Page 64: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

CASES• Bons Times• Excelentes Projetos• Excelentes Técnicas

VISITAR FÁBRICAS 2008, 2007, 2006...

slide 64 de 116

Page 65: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

CASOS DE SUCESSO (at work )...•CESAR.edu 2008•http://kport.cesar.edu.br •http://h3s.cesar.edu.br •http://geemap.cesar.edu.br

•CIn-UFPE 2008•http://tsapiens.cin.ufpe.br/ •http://www.factory2u.net/•http://init.cin.ufpe.br/ •https://efact.cin.ufpe.br/joomla/

•CESAR.edu 2007•http://whereis.cesar.edu.br •http://fire.cesar.edu.br •http://xfactory.cesar.edu.br •http://core.cesar.edu.br

•TODA A HISTÓRIA•http://200.17.137.110:8080/in953 slide 65 de 116

Page 66: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

ROTEIRO

slide 66 de 116

1. Conceitos, idéias e mitos2. Processos e Casos de sucesso e falha

3.Oficina de Montagem de Fábricas

4. Venda de Software

Page 67: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Building a Software Factory — Step by Step

1. Definir o modelo de negócios2. Definir a organização da fábrica3. Definir processo de desenvolvimento4. Habilitar o trabalho de forma distribuída5. Prover um site para a fábrica6. Prover um site exclusivo para cada novo projeto7. Definir papéis para cada novo projeto0. Trabalhar em harmonia

slide 67 de 116

Page 68: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

1.Definir o modelo de negócios

• Que modelos são apropriados?– http://www.opensourcestrategies.org/– http://www.informationweek.com/blog/main/archives/2008/01/

the_five_open_s.html

• Que tipos de serviços?– http://www.cio.com/article/17649/

Your_Guide_to_Open_Source_Business_Models

• Colaboradores externos• Licença...

– http://www.opensource.org/licenses

Aspectos de Propriedade Intelectual– http://www.museu-goeldi.br/institucional/i_prop_propintel.htm

• Análise SWOT– http://www.businessballs.com/swotanalysisfreetemplate.htm

slide 68 de 116

Page 69: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

2.Definir a organização da fábrica

• Gerência organizacional– Comitê de Gerenciamento – Vendas– Pesquisa e Desenvolvimento– Produtos– Finanças– Biblioteca de Componentes– Qualidade, etc

Vide Peter Drucker emhttp://www.lgti.ufsc.br/O&m/aulas/Aula1/paradgmas%20adm.htm

slide 69 de 116

Page 70: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

2.Definir a organização da fábrica

slide 70 de 116

Page 71: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

3.Definir processo de desenvolvimento• Flexível• Leve• Iterativo• Incremental

• Propostas? • vide RUP, Hukarz, SCRUM, XP e suas variantes XRUP, SCRUP…

slide 71 de 116

Page 72: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

4.Habilitar o trabalho de forma distribuída

• Organização virtual• Comunicação Assíncrona

– Listas de discussão

– Web site

• Comunicação Síncrona– Encontros

– IM

• SCM (gerência de configuração)• Issue tracker• Blogs

• vide– DDS – Desenvolvimento Distribuído de Software– GDS – Global Development Software– WDDS – Workshop de Desenvolvimento Distribuído de Software

slide 72 de 116

Page 73: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

5.Prover um site para a fábrica

• Missão • Processo de desenvolvimento• Notícias• Membros dos times• Projetos e soluções• Etc...

• Vendas de Software

slide 73 de 116

Page 74: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

6.Prover um site exclusivo para cada novo projeto

• Visibilidade interna e externa– News– Artefatos– Downloads– Informações do projeto

slide 74 de 116

Page 75: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

7.Definir papéis para cada novo projeto

• Alocar papéis

• Vide MBTI, …– Classificação Tipológica de Myers Briggs (geralmente abreviado para MBTI pelo termo em inglês).– Este método utiliza-se de quatro dicotomias distintas (Introversão-Extroversão, Sensação-Intuição, Razão-Sentimento e Julgamento-

Percepção), baseadas no trabalho de Carl Jung, que indicam características pessoais de forma geral. 

slide 75 de 116

Page 76: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

0.Trabalhar em harmonia

slide 76 de 116

Page 77: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

0.Trabalhar em harmonia

slide 77 de 116

Page 78: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Referências BibliográficasLivros• Abran, A. and Moore, J.W. and Bourque, P. and Dupuis, R. (eds). Guide to the Software Engineering Body of

Knowledge (SWEBOK). IEEE Press, 2004.• Chrissis, M. B. and Konrad, M. and Shrum, S. CMMI(R): Guidelines for Process Integration and Product Improvement

(2nd Edition) (The SEI Series in Software Engineering). Addison-Wesley Professional, 2006.• Clements., M. P. and L. Northrop., Software Product Lines: Practices and Patterns. Addison-Wesley, 2002.• D’Souza, D. F. and Wills, C. A. Objects, Components, and Frameworks with UML – The Catalysis Approach. Addison-

Wesley, 1999.• Greenfield, J. and Short, K. and Cook, S. and Kent, S. and Crupi, J. Software Factories: Assembling Applications with

Patterns, Models, Frameworks, and Tools. John Wiley, 2004, 500p.• Heineman, G., T., Council, W., T. Component-Based Software Engineering: Putting the Pieces Together, Addison-

Wesley. 2001. • Humphrey, W. PSP(sm) : A Self-Improvement Process for Software Engineers (SEI Series in Software Engineering).

Adison Wesley professional, 2005, 368p.• Humphrey, Watts S. 1989. Managing the software process. Boston, MA, USA: Addison - Wesley Longman Publishing

Co., Inc.• Jacobson, Ivar, Booch, Grady, & Rumbaugh, James. 1999. The unified software development process. Boston, MA,

USA: Addison-Wesley Longman Publishing Co., Inc.• Lenz, G. and Wienands, C. Practical Software Factories in .NET. Apress, 2006, 240p.• McIlroy, M. D. 1968. Mass Produced Software Components. Pages 79–85 of: Naur, P., & Randell, B. (eds), NATO

Software Engineering Conference Report.• Pereira, A. Vendendo Software. Novatec Editora, 2004, 160p.• Pressman, R. Engenharia de Software. McGraw-Hill Interamericana do Brasil, 2003, 6ª. Edição, 752p.• Raymond, Eric S. The Cathedral and the Bazaar. Sebastopol, CA, USA: O’Reilly & Associates, Inc, 1999.• Sametinger, J. Software Engineering with Reusable Components. Springer-Verlag, 1997.

Page 79: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Referências BibliográficasLivros• Williams, J. The Business Case for Components, In Component-Based Software Engineering: Putting the Pieces

Together, Addison-Wesley, 2001.

Artigos – Periódicos• Brown, A., Wallnau, K. The Current State of CBSE, IEEE Software, Oct , 1998.• Cusumano, M. A. 1989. The Software Factory: A Historical Interpretation. IEEE Softw., 6, 23–30. 2.4 DeLano,Warren L.

2005. The case for open-source software in drug discovery. Drug Discovery Today, 10(3), 213–217.• Favaro, J. What Price Reusability? A Case Study, ADA Letters, Mar, 1991.• Frakes, W., B., Isoda, S. Success Factors of Systematic Software Reuse. IEEE Software, Sep, 1994.• Frakes, W., B., Fox, C., J. Sixteen Questions about Software Reuse. Communications of the ACM, June, 1995.• Fuggetta, Alfonso. 2003. Controversy corner: open source software-an evaluation. J. Syst. Softw., 66(1), 77–90.• Glass, R. Reuse: What’s wrong with this picture?, IEEE Software, Mar, 1998.• Griss, M., Wosser, M. Making Reuse Work at Hewlett-Packard, IEEE Software, 1995.• Highsmith, Jim, & Cockburn, Alistair. 2001. Agile Software Development: The Business of Innovation. Computer, 34(9),

120–122.• Joos, R. Software Reuse at Motorola, IEEE Software, Sep, 1994.• Lamers, S. Programmers at Work, Microsoft Press, 1986.• Mills, H. D., O’Neill, D., Linger, R. C., Dyer, M., & Quinnan, R.E. 1980. The management of software engineering. IBM

Syst. J., 19(4), 414–477.• Moraes, A. K. O., Meira, S. R. L., & Albuquerque, J. O. 2007a. Building real F/OSS software factories: How to create

development communities around outside requirements. In: St.Amant, K., & Still, B. (eds), Handbook of Research on Open Source Software: Technological, Economic,and Social Perspectives. Idea Group Reference (to appear).

• Morisio, M., Ezran, Tully, C. Success and Failure Factors in Software Reuse, IEEE Transactions on Software Engineering, Apr, 2002.

Page 80: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Referências BibliográficasArtigos – Periódicos• R. D. Battin, R. Crocker, and J. Kreidler, "Leveranging resource in Global Software Development," IEEE Software,

2001.• R. Prikladnicki, "MuNDDoS Um modelo de Referência para o Desenvolvimento Distribuído de Software." Dissertação

de mestrado da PUCRS, Porto Alegre, 2003.• Schiff, Aaron. 2002. The Economics of Open Source Software: A Survey of the Early Literature. The Review of Network

Economics, 1(1), 66–74.• Sharma, S., Sugumaran, V., & Rajagopalan., B. 2002. A framework for creating hybrid-open source software

communities. Information Systems Journal, 12, 7–25.• Softex. 2005. O impacto do software livre e de código aberto na indústria de software do Brasil. Tech. rept. Softex,

Campinas, SP.• Software Engineering Institute. Market Assessment of Component-Based Software Engineering, Technical Report, May,

2000.• Sommerville, Ian. 1996. Software process models. ACM Comput. Surv., 28, 269–271.• Travasso, G., Gurov, D., & Amaral, E. 2002. Introduction to Experimental Software Engineering. Tech. rept.

Universidade Federal do Rio de Janeiro, Relatório Técnico RT-ES-590/02.

Artigos – Conferências• Aaen, I., Botcher, P., & Mathiassen., L. 1997. Software factories: Contributions and illusions. In: Proceedings of the

Twentieth Information Systems Research Seminar.• Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. 2002. Agile software development methods: Review and

analysis. Pages 107–218 of: ESPOO 2002, vol. 478. VTT Publications. • Abrahamsson, P. and Warsta, J. and Siponen, M. T. and Ronkainen, J. 2003. New directions on agile methods: a

comparative analysis. Pages 244–254 of: ICSE ’03: Proceedings of the 25th International Conference on Software Engineering. Washington, DC, USA: IEEE Computer Society.

Page 81: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Referências BibliográficasArtigos – Conferências• Agerfalk, P.J., Fitzgerald, B., Holmstrom, H., Lings, B., Lundell, B., & o Conchuir, E. 2005. A Framework for Considering

Opportunities and Threats in Distributed Software Development. Pages 47–61 of: DiSD ’05: Proceedings of the International Workshop on Distributed Software Development. Paris, France: Austrian Computer Society.

• Albuquerque, J. O., Meira, S. R. L., & Moraes, A. K. O. 2006. Software Engineering in Practice: Building Software Factories. Pages 49–50 of: ESELAW ’06: Proceedings of the 3rd Experimental Software Engineering Latin American Workshop.

• Bemer, R. W. 1968. Position Paper for the Panel Discussion on the Economics of Program Production. Pages 1626–27 of: Proceedings of Information Processing 68, vol. 2.

• Boehm, Barry. 2006. A view of 20th and 21st century software engineering. Pages 12–29 of: ICSE ’06: Proceeding of the 28th international conference on Software engineering. New York, NY, USA: ACM Press.

• Cavalcanti, A. P. C., Lucena, L. R., Lucena, M. J. N. R., Moraes, A. K. O., Fernandes, D. Y. S., Pereira, S. C., Albuquerque, J. O., & Meira, S. R. L. 2005. Towards an Open Source Software Factory. In: ESELAW ’05: Proceedings of the 2nd Experimental Software Engineering Latin American Workshop.

• Greenfield, Jack, & Short, Keith. 2003. Software factories: assembling applications with patterns, models, frameworks and tools. Pages 16–27 of: OOPSLA ’03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. New York, NY, USA: ACM Press.

• Hansen, Bo Hansen, & Kautz, Karlheinz. 2005. Grounded Theory Applied - Studying Information Systems Development Methodologies in Practice. Page 264.2 of: HICSS ’05: Proceedings of the Proceedings of the 38th Annual Hawaii International Conference on System Sciences (HICSS’05) - Track 8. Washington, DC, USA: IEEE Computer Society.

• Herbsleb, James D., Mockus, Audris, Finholt, Thomas A., & Grinter, Rebecca E. 2001. An empirical study of global software development: distance and speed. In: ICSE ’01: Proceedings of the 23rd International Conference on Software Engineering. Toronto, Ontario, Canada: IEEE Computer Society. 381481 81-90.

• Herbsleb, James D., Paulish, Daniel J., & Bass, Matthew. 2005. Global software development at siemens: experience from nine projects. Pages 167–173 of: ICSE ’05: Proceedings of the 27th international conference on Software engineering. St. Louis, MO, USA: ACM Press.

Page 82: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Referências BibliográficasArtigos – Conferências• Moraes, A. K. O., Meira, S. R. L., & Albuquerque, J. O. 2006. Open Source Software Factory — Step by Step: A Case Report.

Pages 46–51 of: Héphaïstos ’06: Proceedings of the First International Conference on Open Source Collaborative Development Platforms. 4.1, 4.2, 7

• Moraes, Alan Kelon Oliveira, de Lemos Meira, Silvio Romero, & de Albuquerque, Jones Oliveira. 2007b (June). Open Source Software Factories: Pushing the Software Engineering into the Open Source Development. In: OSS ’07: Proceedings of the Third IFIP International Conference on Open Source Systems.

• Perry, Dewayne E., Porter, Adam A., & Votta, Lawrence G. 2000. Empirical studies of software engineering: a roadmap. Pages 345–355 of: ICSE ’00: Proceedings of the Conference on The Future of Software Engineering. New York, NY, USA: ACM Press.

• Ribeiro, R. A., Silva, F. Q. B., Moraes, A. K. O., Albuquerque, J. O., & Meira, S. R. L. 2006. Towards a software licensing guide for Open Source Business Models. Pages 52– 62 of: Héphaïstos ’06: Proceedings of the First International Conference on Open Source Collaborative Development Platforms.

• Siy, Harvey P., Herbsleb, James D., Mockus, Audris, Tucker, George T., &Krishnan, Mayuram. 2001. Making the Software Factory Work: Lessons from a Decade of Experience. Pages 317–326 of: METRICS ’01: Proceedings of the 7th international Symposium on Software Metrics. IEEE Computer Society, Washington, DC.

• Tartarelli, R. V., Winckler, W. S., e Kronmeyer, O. R. F. "Aprendizagem organizacional em fábricas de software". PMI-RS.Disponível em: http://www.pmirs.org/Estudos/Rubens.pdf, 2005.

• V. Gruhn, "Process-Centered Software Engineering Environments, A Brief History and Future Challenges," 2002.

• Wine. 2006. Wine HQ. Disponível em http://www.winehq.com/.

• 5th ICSE Workshop on Component-Based Software Engineering, Benchmarks for Predictable Assembly , In conjunction with the 24th International Conference on Software Engineering, (ICSE), May, 2002.

• Griss, M. Software Reuse Experience at Hewlett-Packard, 16th International Conference on Software Engineering, (ICSE), May, 1994.

• Mehta, A., Heineman, G., T. Evolving Legacy System Features into Fine-Grained Components, In 24th International Conference on Software Engineering (ICSE). ACM Press, 2002.

• Rine, D, C. Success Factors for Software Reuse that are applicable across Domains and Businesses, ACM symposium on Applied Computing, Mar, 1997.

Page 83: Fábricas de Software Prof. Jones Albuquerque slide 1 de 116.

Referências BibliográficasArtigos – Conferências• Visser, W. Strategies in Programming Programmable Controllers: A field study of Programmers, Workshop, 1987.• 7th International Workshop on Component-Oriented Programming (WCOP) in conjunction with the 16th European

Conference on Object-Oriented Programming (ECOOP), Málaga, Spain, 2002.• Werner, C.; Braga, R. Desenvolvimento Baseado em Componentes, In XVI Simpósio Brasileiro de Engenharia de

Software, Minicursos, João Pessoa, Paraíba, 2000.