Inovação, Geração de
Conhecimento e Renda
com Fábricas de Sofware
Open-Source
José Damico
[email protected]
Breve História das Fábricas de
Software
●
●
●
●
“Perhaps the earliest proponent, R. W. Bemer of General Electric, made many proposals
that culminated in a 1968 paper suggesting that General Electric develop a software
factory to reduce variability in programmer productivity through standardized tools, a
computer-based interface, and a historical database useful for financial and management
controls. ... Bemer's paper gave the first working definition of what might constitute a
software factory.”
“While Bemer focused on standardized tools and controls, M.D. McIlroy of AT&T
emphasized another factory-like concept: systematic reusability of code when
constructing new programs.”
“Reaction to McIlroy's ideas was mixed ... Nonetheless, by the late 1960s, the term
‘factory’ had arrived in software engineering and was being associated with computeraided tools, management-control systems, modularization, and reusability.”
“The first company in the world to adopt the term ‘factory’ (actually, its Japanese
equivalent ‘kojo’, which translates to either ‘factory’ or ‘work’') to label a software facility
was Hitachi, which founded the Hitachi Software Works in 1969.”
Software News of 1987 March, page 38, in an article entitled “‘Factories’ for Software?”,
reported McNamara's talk in the distinguished lecturer series at the Wang Institute. “Design
code for re-use, and register it. Re-use is a secret to productivity”, he said.
Objetivo da Fábrica de Software
●
Desenvolvimento de softwares de
qualidade sob demanda, com gestão de
performance e produtividade, com base
em componentes reutiliáveis, ferramentas
e metodologias padronizadas.
Os números da produção de
Software (USA)
●
250 bilhões de US$ / ano
●
430.000 – 2.300.000 US$ - custo de projeto
●
16% terminam no prazo e no budget
●
●
●
31% são cancelados devido a problemas de qualidade
(81 bi US$ de prejuízo / ano)
53% excedem o custo na média de 189% (59 bi US$ de
prejuízo / ano)
42% recursos previstos nos projetos que terminam
Standish Group [2002]
Um novo modelo de
desenvolvimento
“Tratar seus usuários como co-desenvolvedores é seu
caminho mais fácil para uma melhora do código e
depuração eficaz. O poder deste efeito é fácil de se
subestimar. De fato, todos nós do mundo do código
aberto subestimamos drasticamente como isto iria
incrementar o número de usuários e diminuir a
complexidade do sistema, até que Linus Torvalds nos
mostrou de outra forma. De fato, eu penso que a
engenhosidade do Linus e a maior parte do que
desenvolveu não foram a construção do kernel do
Linux em si, mas sim a sua invenção do modelo de
desenvolvimento do Linux.”
Eric Raymond (The Cathedral and the Bazaar)
Reuso e Gestão do
Conhecimento
Modelo proposto
por em 1989:
V.R. Basili, “Software
Development: A Paradigm for the Future”
Experiência realmente
aplicada no Linux a partir
de 1991
Experiência amadurecida
com Google, Wikipedia e
Web 2.0
Comunidade
Open-Source
O que é uma Fábrica de
Software Open-Source?
●
Produtora de aplicações em série
●
Utiliza padrões abertos
●
Desenvolve e distribui sob licenças abertas
•
•
•
•
•
•
•
•
•
Apache License, 2.0
New BSD license
GNU General Public License (GPL)
GNU Library or "Lesser" General Public License (LGPL)
MIT license
Mozilla Public License 1.1 (MPL)
Common Development and Distribution License
Common Public License 1.0
Eclipse Public License
Como gerar renda nesse
modelo?
●
Venda
–
“Actually we encourage people who redistribute free
software to charge as much as they wish or can.” (FSF)
●
Desenvolvimento patrocinado
●
Hospedagem de serviço
●
Adaptação
●
Integração (empacotamento)
●
Treinamento
●
Suporte
●
Interoperabilidade
●
Virtualização
Para cada US$ 1 gasto em pacotes, são
gastos de 5 a 9 com sua integração
Modelos de sucesso
(Lucrativos)
●
Asterisk
●
Compiere / Adempiere
●
Conectiva
●
JBoss
●
SugarCRM
●
SourceFire
“(...)when a Forrester survey asked respondents
about the benefits and concerns associated with
open source software, 57% cited lack of support
as a key concern. This explains why Red Hat and
JBoss are doing well with their model.”
As Demandas do Mercado
●
●
Soluções dinâmicas e moldáveis
Independência de S.O. em virtude de
novos produtos microprocessados
●
Possibilidade de múltiplas integrações
●
Padrões livres de segurança
●
Implementações estruturais vs.
processamento de dados cotidiano
●
Virtualização sobre uma base mínima
●
Transações SOA
As Demandas da Academia
●
Indepência em pesquisas
●
Domínio de todo ambiente de pesquisa
●
Padrões livres de segurança
●
●
●
Treinamento em Computação (Reciclagem
de computadores)
SOs para infraestrutura de sistemas
embarcados de pesquisa
Modelo sistêmico
Como gerar inovação e
conhecimento?
●
●
●
●
Acesso a uma base livre de softwares
Liberdade de redesenvolvimento e
implementação a partir de bases de
código-aberto
Velocidade de comunicação
Re-distribuição em larga escala dos
resultados
A Influência das Fábricas de
Software Open-Source
●
●
●
●
Criação de uma base de usuários e
desenvolvedores que formam um
ecossistema sem fronteiras regionais
Fomento de bases de conhecimento
públicas
Multi-disciplinaridade dos usuários
Formação de grupos locais de
desenvolvimento e integração
Exemplo de Inovação no
Mercado
●
India-based Encore Software has designed a handheld Internet appliance, called Simputer,
based on Linux. Simputer uses the Intel StrongARM chip (known for its low power consumption),
64 Mbytes of RAM, 32Mbytes of flash memory, and a modem to connect to a telephone line. At
a cost of less than US$200, Simputer provides Internet and email access in local languages,
microbanking, speech recognition, and text-to-speech conversion. Time magazine described
Simputer as among the 10 best technological innovations of 2001. India, which has two official
languages (Hindi and English), 18 major languages, and 418 officially listed languages, has
benefited from Simputer’s low cost, efficiency, and local-language capabilities. For example,
India’s Karnataka state accountants use Simputers to collect and upload village data to the
government servers, cutting data collection time by an estimated 80 to 90 percent.
●
Minha Fábrica de Software
Linux Server, Firewall, NAT, www, ftp, samba, nfs
●
Eclipse
●
Database (MySQL,PostgreSQL,DB2,OracleXE,Derby)
●
IBM DevWorks
●
Documentacao
–
(Xdoclets + Javadoc + Readme + ChangeLog)
●
Colaboracao
●
Controle de versao (CVS)
●
Test Case
●
Junit, JMeter
●
Deploy (Ant,InstallJammer)
●
Servers Farm
●
IRC, Jabber
A escolha das Linguagens
●
C
●
Java
●
Framework Mono
●
PHP (simplicidade produtiva)
●
Python (simplicidade produtiva)
Fábricas de software
tradicionais I
Fábricas de software
tradicionais II
Uma nova metodologia para um
novo modelo
●
eXtreme Programming
Valores
Princípios Básicos
• Comunicação
• Feedback rápido
• Simplicidade
• Presumir simplicidade
• Feedback
• Mudanças incrementais
• Coragem
• Abraçar mudanças
• Respeito
• Trabalho de qualidade.
●
Testes
obcessivos
+
Curtas
Iterações
Passos práticos
●
Escolha um problema comum
●
Tenha uma abordagem sistêmica
●
Desenvolva em módulos reutilizáveis
●
Documente
●
Distribua
Determinantes do reuso
●
Publicação completa do código do
componente (ativo de software)
●
Documentação intuitiva
●
Processo simplificado de identificação
Lições do Debian
●
●
●
●
●
●
Debian developers assemble a comprehensive universe of software
products.
Debian contains programs which are actually used, as at least one
person insisted it be included in the repository.
Rules and guidelines ensure a standardized process of including
software into the distribution. As a result, the information available for
each package is usually complete and dates back until up to 1993.
Packages within one version of the distribution are designed to be
compatible, hence form an integrated environment of software
products.
Categories, or sections, within the distribution provide possible
sampling foci (sections include editors, web, admin, libs, mail, and so
on)
For each package, a maintainer assumes personal responsibility and is
knowledgeable about the software he or she maintains for Debian.
Estudo de Caso: DB2JMIN
●
●
●
●
A necessidade de um cliente leve
rápido e multiplataforma para o DB2
Primeiro release: 22 de agosto de 2006
(v.: 0.0.1)
Segundo release: 06 de setembro de
2006 (v.: 0.0.9)
Downloads:
–
367 em setembro de 2006
– 1.459 em setembro de 2007
http://sourceforge.net/projects/db2-jmin/
Oportunidades gerais I
Volume negociado em 2005
em US$ milhões
5.7
17.7
17.5
Microsoft
Unix
Linux
Segundo o Gartner
Group
Linux e Microsoft terão
seu grande confronto
entre 2008 e 2010
Oportunidades gerais II
Venda de Computadores com Linux
18
16
14
milhões
12
2006
10
2008
8
6
4
2
0
Row 20
fonte: IDC
Oportunidades gerais III
3/ 4
das empresas
usam Linux em
servidores
(fonte: IDC 2006)
Oportunidades gerais IV
23%
do mercado de
dispositivos móveis
(fonte: IBM)
Oportunidades específicas de
negócio
●
SOA
●
Web 2.0
●
Sistemas de segurança para aplicações proprietárias
●
Adempiere
●
Sistemas de gestão de processos
●
Plugins
●
Sistemas móveis
●
E-learning
●
Gestão do conhecimento
Porquê optar por esse modelo?
●
“The path you tread is narrow
And the drop is sheer and very high
The ravens all are watching
From a vantage point nearby”
Pela identificação pessoal com os
princípios:
–
Mercado restritivo vs. Mercado de Serviços
–
Renda pela oportunidade vs. Renda pela
solução
–
Foco no benefício individual vs. Foco na
solução
–
Contribuir com uma parte e se beneficiar pelo
todo
Perguntas?
10/16/07
José Damico
Template Documentation
[email protected]
30
Download

Link do pdf da apresentação.