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/
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.