SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Comunicação e padrões em código aberto
FLÁVIO GOMES DA SILVA LISBOA
www.fgsl.eti.br
quando convergente e divergente cooperam
Ou
Como não fracassar na colaboração por
arrogância e desespero
CONSTITUIÇÃO DA REPÚBLICA FEDERATIVA DO
BRASIL DE 1988
Art. 5º
IV - é livre a manifestação do pensamento,
sendo vedado o anonimato;
Quem sou eu?
http://romocavaleirodoespaco.blogspot.com/
Objetivo
Compartilhar experiências positivas no trabalho
em projetos de código-aberto nas quais é
possível conciliar demandas da comunidade com
demandas específicas de clientes.
O problema
Você tem uma demanda de cliente ou de seu
empregador para atender.
O problema
Há um produto de código aberto que atende a
uma parte da demanda.
O problema
Esse produto é mantido por uma comunidade de
desenvolvedores.
O problema
Você sabe quais alterações são necessárias para
que o produto atenda à demanda.
O problema
Se a comunidade que mantém o produto aceitar
suas alterações, você usa o produto e pode
atualizá-lo posteriormente.
O problema
Se a comunidade que mantém o produto não
aceitar suas alterações, você terá de manter uma
cópia divergente e mantê-la por sua conta.
O problema
Ou pagar para que as alterações sejam aceitas,
se esta for uma possibilidade.
A pergunta
Como fazer a comunidade aceitar suas
alterações?
VOCÊ
COMUNIDADE
Sugestão
É preciso chegar a um acordo...
Pilares da Conciliação
Comunicação eficaz
Uso de padrões de projeto
e arquitetura
Comunicação eficaz
O que pode acontecer sem ela...
Comunicação eficaz
Comunicação eficaz
Duas questões na submissão de uma alteração:
● Sua alteração tem de ser vendida – a solução
de um problema particular tem de oferecer
vantagens para todos;
● Caso não ofereça vantagens para todos, deve
ser possível oferecer outra mudança em
troca;
● Nada é óbvio – telepatia não existe.
Uso de padrões de projeto e
arquitetura
Uso de padrões de projeto e
arquitetura
Uso de padrões de projeto e
arquitetura
“We have found that there exist idiomatic class and
object structures that help make designs more
flexible, reusable, and elegant. For example, the
Model-View-Controller (MVC) paradigm from
Smalltalk is a design structure that separates
representation from presentation. MVC promove
flexibilidade in the choice of views, independent of
the model. Abstract factories hide concrete
subclasses from the applications that use them só
that class names are not hard-wired into application”
(GAMMA, HELM, JOHNSON, VLISSIDES, 1993)
Relatos: como os padrões de
projeto conciliam
Obrigado!
www.fgsl.eti.br

Mais conteúdo relacionado

Semelhante a Comunicação e padrões em código aberto: quando convergente e divergente cooperam

Não Reinvente a Roda - O reuso de aplicações da Web 2.0 no Governo
Não Reinvente a Roda - O reuso de aplicações da Web 2.0 no Governo Não Reinvente a Roda - O reuso de aplicações da Web 2.0 no Governo
Não Reinvente a Roda - O reuso de aplicações da Web 2.0 no Governo allanperon
 
100920 palestra aba - divulgação
100920 palestra aba - divulgação100920 palestra aba - divulgação
100920 palestra aba - divulgaçãoJose Claudio Terra
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gofYan Justino
 
Canal DotNet - Design Patterns - Mediator
Canal DotNet - Design Patterns - MediatorCanal DotNet - Design Patterns - Mediator
Canal DotNet - Design Patterns - MediatorGustavo Bellini Bigardi
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimentoGabriel Moura
 
Design autogestionário: experiências e prospecções
Design autogestionário: experiências e prospecçõesDesign autogestionário: experiências e prospecções
Design autogestionário: experiências e prospecçõesUTFPR
 
Gestao 20 Apresentacao FIEP Unindus Divulgacao
Gestao 20   Apresentacao FIEP   Unindus   DivulgacaoGestao 20   Apresentacao FIEP   Unindus   Divulgacao
Gestao 20 Apresentacao FIEP Unindus DivulgacaoJose Claudio Terra
 
Mídias Sociais podem contribuir para estreitar o relacionamento com os clientes
Mídias Sociais podem contribuir para estreitar o relacionamento com os clientesMídias Sociais podem contribuir para estreitar o relacionamento com os clientes
Mídias Sociais podem contribuir para estreitar o relacionamento com os clientesGutenberg Dias
 
Sistema de Plugins do ExpressoV3. Não espere, faça o seu!
Sistema de Plugins do ExpressoV3. Não espere, faça o seu!Sistema de Plugins do ExpressoV3. Não espere, faça o seu!
Sistema de Plugins do ExpressoV3. Não espere, faça o seu!Flávio Lisboa
 
Como Criar Produtos Vencedores
Como Criar Produtos VencedoresComo Criar Produtos Vencedores
Como Criar Produtos VencedoresGustavo Caetano
 
Componentes vs Servicos
Componentes vs ServicosComponentes vs Servicos
Componentes vs ServicosMarcelo Sávio
 
Web - O que um geek antenado deve conhecer
Web - O que um geek antenado deve conhecerWeb - O que um geek antenado deve conhecer
Web - O que um geek antenado deve conhecerAislan Rafael
 

Semelhante a Comunicação e padrões em código aberto: quando convergente e divergente cooperam (20)

Bb out/2008
Bb out/2008Bb out/2008
Bb out/2008
 
Bb palestra 10.08
Bb palestra 10.08Bb palestra 10.08
Bb palestra 10.08
 
Não Reinvente a Roda - O reuso de aplicações da Web 2.0 no Governo
Não Reinvente a Roda - O reuso de aplicações da Web 2.0 no Governo Não Reinvente a Roda - O reuso de aplicações da Web 2.0 no Governo
Não Reinvente a Roda - O reuso de aplicações da Web 2.0 no Governo
 
Comunidades de Prática
Comunidades de PráticaComunidades de Prática
Comunidades de Prática
 
100920 palestra aba - divulgação
100920 palestra aba - divulgação100920 palestra aba - divulgação
100920 palestra aba - divulgação
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
 
Lessons Learned
Lessons LearnedLessons Learned
Lessons Learned
 
Lessons Learned
Lessons LearnedLessons Learned
Lessons Learned
 
Canal DotNet - Design Patterns - Mediator
Canal DotNet - Design Patterns - MediatorCanal DotNet - Design Patterns - Mediator
Canal DotNet - Design Patterns - Mediator
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
 
Design autogestionário: experiências e prospecções
Design autogestionário: experiências e prospecçõesDesign autogestionário: experiências e prospecções
Design autogestionário: experiências e prospecções
 
Gestao 20 Apresentacao FIEP Unindus Divulgacao
Gestao 20   Apresentacao FIEP   Unindus   DivulgacaoGestao 20   Apresentacao FIEP   Unindus   Divulgacao
Gestao 20 Apresentacao FIEP Unindus Divulgacao
 
Mídias Sociais podem contribuir para estreitar o relacionamento com os clientes
Mídias Sociais podem contribuir para estreitar o relacionamento com os clientesMídias Sociais podem contribuir para estreitar o relacionamento com os clientes
Mídias Sociais podem contribuir para estreitar o relacionamento com os clientes
 
Sistema de Plugins do ExpressoV3. Não espere, faça o seu!
Sistema de Plugins do ExpressoV3. Não espere, faça o seu!Sistema de Plugins do ExpressoV3. Não espere, faça o seu!
Sistema de Plugins do ExpressoV3. Não espere, faça o seu!
 
Como Criar Produtos Vencedores
Como Criar Produtos VencedoresComo Criar Produtos Vencedores
Como Criar Produtos Vencedores
 
Componentes vs Servicos
Componentes vs ServicosComponentes vs Servicos
Componentes vs Servicos
 
Web - O que um geek antenado deve conhecer
Web - O que um geek antenado deve conhecerWeb - O que um geek antenado deve conhecer
Web - O que um geek antenado deve conhecer
 
Design Patterns - Com Java
Design Patterns  - Com JavaDesign Patterns  - Com Java
Design Patterns - Com Java
 
Técnicas para desenvolver inovação
Técnicas para desenvolver inovaçãoTécnicas para desenvolver inovação
Técnicas para desenvolver inovação
 
Técnicas para desenvolver inovação
Técnicas para desenvolver inovaçãoTécnicas para desenvolver inovação
Técnicas para desenvolver inovação
 

Mais de Flávio Lisboa

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPFlávio Lisboa
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaFlávio Lisboa
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasFlávio Lisboa
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoFlávio Lisboa
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework LaminasFlávio Lisboa
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?Flávio Lisboa
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Flávio Lisboa
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPFlávio Lisboa
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosFlávio Lisboa
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasFlávio Lisboa
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadoresFlávio Lisboa
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)Flávio Lisboa
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Flávio Lisboa
 
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Flávio Lisboa
 

Mais de Flávio Lisboa (20)

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHP
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com Laminas
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com método
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Amanhecer esmeralda
Amanhecer esmeraldaAmanhecer esmeralda
Amanhecer esmeralda
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadores
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)
 
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
 

Comunicação e padrões em código aberto: quando convergente e divergente cooperam