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
slide 3 de 116
communications
applications
services
infrastructure
slide 4 de 116
communications
applications
services
infrastructure
software
applications
middleware
hardware + op sys[zysman stack]
slide 5 de 116
communications
applications
services
infrastructure
applications
softwarecomputing +communications
BUSINESSPROCESSES
slide 6 de 116
seu negócio éuma
comunidade!Silvio Meira
slide 7 de 116
http://headrush.typepad.com/creating_passionate_users/2007/03/user_community_.html
slide 8 de 116
comunidadedesenvolve [novos]produtos e serviços
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
um típico laboratório de desenvolvimento...
slide 10 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
factories X Business X OSS development...
• conjunções e intersecções
• métodos e ferramentas
• processo
• modelos
• licenças
• vendas
slide 12 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
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.
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!
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!!!
fábricas de software
princípiosconceitos
ilusões
slide 17 de 116
Fonte: www.cs.ucla.edu
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
e o mercado?
• http://mshiltonj.com/software_wars/
slide 19 de 116
slide 20 de 116
slide 21 de 116
slide 22 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/
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
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
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
...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
...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
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
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
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
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.
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
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
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
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
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...
É 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
• 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?
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
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
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
slide 43 de 116
Processos, guias, modelos... um mundo!
o PROCESSO é complexo!
slide 44 de 116 (c) MERX LLC
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
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
Hukarz
• Fases
slide 47 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
e as pessoas?.
.. mais complexas
ainda!!
slide 49 de 116 (c) MERX LLC
slide 50 de 116
Fornecimento ou troca de informações, de idéia ou de sentimento, através de:
PALAVRASSINAIS
GESTOS
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)
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
O QUE SE VÊ?
slide 53 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
slide 55 de 116
RESPOSTA• TRÊS LINHAS E NÃO QUATRO COLUNAS,
POR QUÊ?• OS ELEMENTOS SEMELHANTES SÃO
AGRUPADOS.
slide 56 de 116
slide 57 de 116
slide 58 de 116
slide 59 de 116
slide 60 de 116
slide 61 de 116
slide 62 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/
CASES• Bons Times• Excelentes Projetos• Excelentes Técnicas
VISITAR FÁBRICAS 2008, 2007, 2006...
slide 64 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
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
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
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
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
2.Definir a organização da fábrica
slide 70 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
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
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
6.Prover um site exclusivo para cada novo projeto
• Visibilidade interna e externa– News– Artefatos– Downloads– Informações do projeto
slide 74 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
0.Trabalhar em harmonia
slide 76 de 116
0.Trabalhar em harmonia
slide 77 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.
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.
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.
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.
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.
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.