SlideShare uma empresa Scribd logo
1 de 25
Desenvolvimento em
Comunidade
"If you have an apple and I have an apple and we exchange these apples then you
and I will still each have one apple. But if you have an idea and I have an idea and
we exchange these ideas, then each of us will have two ideas." - George Bernard
Shaw




                                                                     Pedro Dias
                                                        http://www.pedromdias.com
Resumo


Open-source em Portugal.
Como é constituída uma comunidade.
Como colaborar dentro da comunidade.
Ferramentas de colaboração.
Caso prático no IPT.
Onde está o open-source?




 Comunidade global
                     http://www.redhat.com/about/where-is-open-source/activity
Utilização de open-source em Portugal
 Positivos para adopção
   Start-ups adoptam open-source de forma estratégica.
   Soluções de chave na mão implementadas com recurso a
   open-source.
   Estado da economia actual -> necessidade de redução de
   custos.


 Negativos para adopção
   Mais barato = inferior qualidade. (mito)
   Divulgação do código fonte = falha de segurança. (mito)
   Suporte às soluções existentes.
   Dependência de determinados fornecedores. (Micro$oft, entre
   outros)
Desenvolvimento open-source em Portugal
 Falta de desenvolvimento comunitário.
   Desenvolvimento open-source sem ou com poucas contribuições
   externas ao autor/dono do projecto.
           Falta de desenvolvimento comunitário.
   Abertura das soluções devido à utilização de peças licenciadas de
   forma viral e não como decisão inicial ou estratégia.


 Casos de open-source em PT:
   Caixa mágica (considerado caso de sucesso e com uma comunidade
   activa)
   Fénix
   Alinex
   iPortalmais
   Outro casos em: http://www.esop.pt/
Comunidade Debian




                    http://www.debian.org/devel/developers.loc
Comunidade Debian




                    http://widi.berlios.de/paper/study.html
Papel da comunidade
Community Architecture
Team (Red Hat)
 ”Community serves as a catalyst
 in everything that Red Hat,
 Fedora, and JBoss does.”

 ”From a business point of view,
 energy, time, and money are all
 synonymous.”

 Microsoft and Red Hat can both
 produce an operating system. Our
 job is to ensure that Red Hat does
 so more efficiently, and
 community is the mechanism by
 which we achieve that.
Life-cycle da comunidade
 Projecto pessoal
   Um programador inicia o projecto e materializa as suas ideias
   iniciais.
   Publica o seu código na web.
 Outros programadores juntam-se ao projecto.
   Nasce uma comunidade.
   Nascem diferentes equipas dentro da comunidade.
   São criadas criadas regras de funcionamento dentro da
   comunidade.
 O programador inicial assume o papel de líder da comunidade.
 São estandardizados os meios de comunicação para a comunidade.
 Criação de uma linha de produção colaborativa.
Equipas dentro da comunidade

 Analistas
   Análise do sistema a implementar.
 Programadores
   Materializam as ideias e a análise.
 Testers
   Testam as diversas funcionalidades.
 Gestores de pacotes
   Estudam como e onde fazer o deployment do código
   produzido.
Colaborar
Ferramentas de colaboração
  Controlo de versões
       Analistas
       Programadores
       Testers
       Documentação
  Ticketing system (bug trackers)
       Programadores
       Testers
  Testing tools
       Testers
  Package management
       Gestores de pacotes
  Comunicação
       Todos
Controlo de versões

 Autenticação
   Todas as subsmissões de código têm obrigatoriamente um autor identificado.
 Operações
   Import (Checkin)
      Upload inicial para o servidor.
      Semear projecto.
   Checkout
      Download inicial para o computador de trabalho do utilizador.
   Update
      Actualiza a versão local no computador com a versão mais recente no
      servidor.
   Commit
      Upload das alterações efectuadas localmente para o servidor.
Import
Import
Checkout e commit
Bug tracker

 Papéis
   Testers
          Reportam bugs/falhas/defeitos... no tracker, normalmente
          através de tickets.
   Programadores
          Consultam o tracker de forma a conhecerem novos bugs e
          procederem à sua resolução.


 Integração
   Normalmente integrado com o sistema de controlo de versões.
   Diferenciar multiplas alterações de versão.
   Análise estatistica das diversas contribuições.
Ticket
                          Quem está a
                            resolver
             Prioridade


   Quem
reportou o
 problema



Descrição
   do
problema
Colaboração



                  Testing tools
                                 Testers

    Package                          Bug trackers
     mngt
                              Programadores
      Gestores de pacotes
                       Version
                       control
                      Documentação
                        Analistas
Comunicação

Foruns
  Comunicação persistente.
  Pouco interactivo.
Wiki
  Comunicação persistente.
  Interactivo e colaborativo.
  Integrado em algumas soluções de bug tracking.
Instant messaging
  Não persistente.
  Habitualmente requer instalação de um cliente.
In the field
Instituto Politécnico de Tomar
Dep. Engenharia Informática
Projecto de Sistemas de Informação - 3º Ano
Projecto Fractuspic
Fractuspic
Fractuspic
  Webapp similar ao twitpic.
  Compressão de imagem através de fractais.
  Autenticação centralizada (openid, google accounts api).
  Open-source


Componentes do sistema
  Core do sistema - compressão de imagem.
  Web - users, upload de imagens, webapp.
Equipas de
desenvolvimento
Core do sistema


Base de dados


Web development


Autenticação
Ferramentas utilizadas

Controlo de versões
 SVN (http://subversion.tigris.org/)
Bug tracker
 TRAC (http://trac.edgewall.org/)
Comunicação
 Wiki (http://trac.edgewall.org/)
Fractuspic servidor de
desenvolvimento




 http://code.dei.estt.ipt.pt/trac/fractuspic

Mais conteúdo relacionado

Semelhante a Desenvolvimento em Comunidade

Jukebox Webpanel Datasul
Jukebox Webpanel DatasulJukebox Webpanel Datasul
Jukebox Webpanel Datasuldatasul20
 
Jukebox Webpanel
Jukebox WebpanelJukebox Webpanel
Jukebox Webpanelguesta3ecbb
 
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...Bruno Tanoue
 
Metodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreMetodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreGeoLivre Conference
 
C.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en DiseñoC.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en DiseñoTiago Barros
 
Bugs, DVCS e tools
Bugs, DVCS e toolsBugs, DVCS e tools
Bugs, DVCS e toolsPaulo Mattos
 
De javaparapython
De javaparapythonDe javaparapython
De javaparapythonTiago
 
Apresentação do V Workshop Demoiselle
Apresentação do V Workshop DemoiselleApresentação do V Workshop Demoiselle
Apresentação do V Workshop DemoiselleEmerson Saito
 
Software livre para windows - Jerônimo Medina Madruga
Software livre para windows - Jerônimo Medina MadrugaSoftware livre para windows - Jerônimo Medina Madruga
Software livre para windows - Jerônimo Medina MadrugaTchelinux
 
Crescendo profissionalmente com o apoio comunidade
Crescendo profissionalmente com o apoio comunidadeCrescendo profissionalmente com o apoio comunidade
Crescendo profissionalmente com o apoio comunidadeFelipe Nascimento
 
Portabilidade de uma aplicação
Portabilidade de uma aplicaçãoPortabilidade de uma aplicação
Portabilidade de uma aplicaçãoTiago Pinhão
 
Como manter a qualidade do seu projeto sem perder a sua sanidade!
Como manter a qualidade do seu projeto sem perder a sua sanidade!Como manter a qualidade do seu projeto sem perder a sua sanidade!
Como manter a qualidade do seu projeto sem perder a sua sanidade!Elton Minetto
 
Princípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV UnipPrincípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV UnipHeber Gutenberg
 
Software livre no windows - Tchelinux bagé 2010
Software livre no windows - Tchelinux bagé 2010Software livre no windows - Tchelinux bagé 2010
Software livre no windows - Tchelinux bagé 2010Jerônimo Medina Madruga
 
Resenha Producao de Software: Software Livre / Código Aberto
Resenha Producao de Software: Software Livre / Código AbertoResenha Producao de Software: Software Livre / Código Aberto
Resenha Producao de Software: Software Livre / Código Abertoantonio sérgio nogueira
 
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoEstratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoComunidade NetPonto
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
 

Semelhante a Desenvolvimento em Comunidade (20)

Jukebox Webpanel Datasul
Jukebox Webpanel DatasulJukebox Webpanel Datasul
Jukebox Webpanel Datasul
 
Jukebox Webpanel
Jukebox WebpanelJukebox Webpanel
Jukebox Webpanel
 
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
 
Metodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreMetodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura Livre
 
C.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en DiseñoC.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en Diseño
 
Bugs, DVCS e tools
Bugs, DVCS e toolsBugs, DVCS e tools
Bugs, DVCS e tools
 
De javaparapython
De javaparapythonDe javaparapython
De javaparapython
 
Apresentação do V Workshop Demoiselle
Apresentação do V Workshop DemoiselleApresentação do V Workshop Demoiselle
Apresentação do V Workshop Demoiselle
 
Software livre para windows - Jerônimo Medina Madruga
Software livre para windows - Jerônimo Medina MadrugaSoftware livre para windows - Jerônimo Medina Madruga
Software livre para windows - Jerônimo Medina Madruga
 
Crescendo profissionalmente com o apoio comunidade
Crescendo profissionalmente com o apoio comunidadeCrescendo profissionalmente com o apoio comunidade
Crescendo profissionalmente com o apoio comunidade
 
Portabilidade de uma aplicação
Portabilidade de uma aplicaçãoPortabilidade de uma aplicação
Portabilidade de uma aplicação
 
Como manter a qualidade do seu projeto sem perder a sua sanidade!
Como manter a qualidade do seu projeto sem perder a sua sanidade!Como manter a qualidade do seu projeto sem perder a sua sanidade!
Como manter a qualidade do seu projeto sem perder a sua sanidade!
 
Revista programar 17
Revista programar 17Revista programar 17
Revista programar 17
 
Princípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV UnipPrincípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV Unip
 
Software livre no windows - Tchelinux bagé 2010
Software livre no windows - Tchelinux bagé 2010Software livre no windows - Tchelinux bagé 2010
Software livre no windows - Tchelinux bagé 2010
 
Gt 2 – ferramentas
Gt 2 – ferramentasGt 2 – ferramentas
Gt 2 – ferramentas
 
Resenha Producao de Software: Software Livre / Código Aberto
Resenha Producao de Software: Software Livre / Código AbertoResenha Producao de Software: Software Livre / Código Aberto
Resenha Producao de Software: Software Livre / Código Aberto
 
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 01 - ...
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 01 - ...Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 01 - ...
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 01 - ...
 
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoEstratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de Versão
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 

Mais de Pedro Dias

ajp_pr3_parts_list.pdf
ajp_pr3_parts_list.pdfajp_pr3_parts_list.pdf
ajp_pr3_parts_list.pdfPedro Dias
 
pedrodias_wordcamp2016
pedrodias_wordcamp2016pedrodias_wordcamp2016
pedrodias_wordcamp2016Pedro Dias
 
Wordpress Meetup ISCTE
Wordpress Meetup ISCTEWordpress Meetup ISCTE
Wordpress Meetup ISCTEPedro Dias
 
Wordcamp LX 2011
Wordcamp LX 2011Wordcamp LX 2011
Wordcamp LX 2011Pedro Dias
 
Botbeans CISTI 2011
Botbeans CISTI 2011Botbeans CISTI 2011
Botbeans CISTI 2011Pedro Dias
 
Portugol EDUCON2010
Portugol EDUCON2010Portugol EDUCON2010
Portugol EDUCON2010Pedro Dias
 

Mais de Pedro Dias (8)

ajp_pr3_parts_list.pdf
ajp_pr3_parts_list.pdfajp_pr3_parts_list.pdf
ajp_pr3_parts_list.pdf
 
phplx16
phplx16phplx16
phplx16
 
pedrodias_wordcamp2016
pedrodias_wordcamp2016pedrodias_wordcamp2016
pedrodias_wordcamp2016
 
nebulaconf
nebulaconfnebulaconf
nebulaconf
 
Wordpress Meetup ISCTE
Wordpress Meetup ISCTEWordpress Meetup ISCTE
Wordpress Meetup ISCTE
 
Wordcamp LX 2011
Wordcamp LX 2011Wordcamp LX 2011
Wordcamp LX 2011
 
Botbeans CISTI 2011
Botbeans CISTI 2011Botbeans CISTI 2011
Botbeans CISTI 2011
 
Portugol EDUCON2010
Portugol EDUCON2010Portugol EDUCON2010
Portugol EDUCON2010
 

Desenvolvimento em Comunidade

  • 1. Desenvolvimento em Comunidade "If you have an apple and I have an apple and we exchange these apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas." - George Bernard Shaw Pedro Dias http://www.pedromdias.com
  • 2. Resumo Open-source em Portugal. Como é constituída uma comunidade. Como colaborar dentro da comunidade. Ferramentas de colaboração. Caso prático no IPT.
  • 3. Onde está o open-source? Comunidade global http://www.redhat.com/about/where-is-open-source/activity
  • 4. Utilização de open-source em Portugal Positivos para adopção Start-ups adoptam open-source de forma estratégica. Soluções de chave na mão implementadas com recurso a open-source. Estado da economia actual -> necessidade de redução de custos. Negativos para adopção Mais barato = inferior qualidade. (mito) Divulgação do código fonte = falha de segurança. (mito) Suporte às soluções existentes. Dependência de determinados fornecedores. (Micro$oft, entre outros)
  • 5. Desenvolvimento open-source em Portugal Falta de desenvolvimento comunitário. Desenvolvimento open-source sem ou com poucas contribuições externas ao autor/dono do projecto. Falta de desenvolvimento comunitário. Abertura das soluções devido à utilização de peças licenciadas de forma viral e não como decisão inicial ou estratégia. Casos de open-source em PT: Caixa mágica (considerado caso de sucesso e com uma comunidade activa) Fénix Alinex iPortalmais Outro casos em: http://www.esop.pt/
  • 6. Comunidade Debian http://www.debian.org/devel/developers.loc
  • 7. Comunidade Debian http://widi.berlios.de/paper/study.html
  • 8. Papel da comunidade Community Architecture Team (Red Hat) ”Community serves as a catalyst in everything that Red Hat, Fedora, and JBoss does.” ”From a business point of view, energy, time, and money are all synonymous.” Microsoft and Red Hat can both produce an operating system. Our job is to ensure that Red Hat does so more efficiently, and community is the mechanism by which we achieve that.
  • 9. Life-cycle da comunidade Projecto pessoal Um programador inicia o projecto e materializa as suas ideias iniciais. Publica o seu código na web. Outros programadores juntam-se ao projecto. Nasce uma comunidade. Nascem diferentes equipas dentro da comunidade. São criadas criadas regras de funcionamento dentro da comunidade. O programador inicial assume o papel de líder da comunidade. São estandardizados os meios de comunicação para a comunidade. Criação de uma linha de produção colaborativa.
  • 10. Equipas dentro da comunidade Analistas Análise do sistema a implementar. Programadores Materializam as ideias e a análise. Testers Testam as diversas funcionalidades. Gestores de pacotes Estudam como e onde fazer o deployment do código produzido.
  • 12. Ferramentas de colaboração Controlo de versões Analistas Programadores Testers Documentação Ticketing system (bug trackers) Programadores Testers Testing tools Testers Package management Gestores de pacotes Comunicação Todos
  • 13. Controlo de versões Autenticação Todas as subsmissões de código têm obrigatoriamente um autor identificado. Operações Import (Checkin) Upload inicial para o servidor. Semear projecto. Checkout Download inicial para o computador de trabalho do utilizador. Update Actualiza a versão local no computador com a versão mais recente no servidor. Commit Upload das alterações efectuadas localmente para o servidor.
  • 17. Bug tracker Papéis Testers Reportam bugs/falhas/defeitos... no tracker, normalmente através de tickets. Programadores Consultam o tracker de forma a conhecerem novos bugs e procederem à sua resolução. Integração Normalmente integrado com o sistema de controlo de versões. Diferenciar multiplas alterações de versão. Análise estatistica das diversas contribuições.
  • 18. Ticket Quem está a resolver Prioridade Quem reportou o problema Descrição do problema
  • 19. Colaboração Testing tools Testers Package Bug trackers mngt Programadores Gestores de pacotes Version control Documentação Analistas
  • 20. Comunicação Foruns Comunicação persistente. Pouco interactivo. Wiki Comunicação persistente. Interactivo e colaborativo. Integrado em algumas soluções de bug tracking. Instant messaging Não persistente. Habitualmente requer instalação de um cliente.
  • 21. In the field Instituto Politécnico de Tomar Dep. Engenharia Informática Projecto de Sistemas de Informação - 3º Ano Projecto Fractuspic
  • 22. Fractuspic Fractuspic Webapp similar ao twitpic. Compressão de imagem através de fractais. Autenticação centralizada (openid, google accounts api). Open-source Componentes do sistema Core do sistema - compressão de imagem. Web - users, upload de imagens, webapp.
  • 23. Equipas de desenvolvimento Core do sistema Base de dados Web development Autenticação
  • 24. Ferramentas utilizadas Controlo de versões SVN (http://subversion.tigris.org/) Bug tracker TRAC (http://trac.edgewall.org/) Comunicação Wiki (http://trac.edgewall.org/)
  • 25. Fractuspic servidor de desenvolvimento http://code.dei.estt.ipt.pt/trac/fractuspic