A experiência da integração entre comunidades Tine 2.0 e Expresso e como ela pode ser aplicada para qualquer projeto de software livre no governo. Não é uma exploração teórica, mas uma avaliação de lições aprendidas com ganhos reais que podem ser reproduzidas sem grandes dificuldades por qualquer setor ou empresa de TI governamental com efeitos espetaculares sobre o desenvolvimento de soluções de software.
2. Temos consciência de que...
“Um Cliente é o mais importante visitante
das nossas instalações. Ele não depende
de nós, nós é que dependemos dele. Não
é uma interrupção no nosso trabalho, é a
finalidade deste. Não é um estranho no
nosso negócio, faz parte dele. Ao servi-lo,
não estamos a fazer-lhe um favor, é ele
que nos faz um favor ao dar-nos uma
oportunidade para o servirmos.”
Mahatma Gandhi
8. Um produto que contribua com uma
imagem positiva da empresa
É mesmo, usa e não
devolve o que
conseguiu
acrescentar ao que
tomou de graça!
Olha, minha
empresa usa
software livre!
9. Por isso queremos investir (mais)
na integração Expresso X Tine 2.0
Tine 2.0
Expresso
}
Focar negócio do Serpro
● Segurança
● Estabilidade
● Flexibilidade
● Funcionalidades
genéricas / Demandas
da comunidade
Expresso
10. Fatos
Pegamos um projeto inteiro de graça e só
usamos 40% dele.
ActiveSync Addressbook Admin Calendar Courses
Crm Felamimail Filemanager HumanResources Inventory
Phone Projects RequestTracker Sales Setup
SimpleFAQ Sipgate Tasks Timetracker Tinebase
Tool Voipmanager
11. Fatos
Existe um potencial de reuso para demandas
internas, de clientes e da comunidade, no Brasil e
América Latina.
ActiveSync Addressbook Admin Calendar Courses
Crm Felamimail Filemanager HumanResources Inventory
Phone Projects RequestTracker Sales Setup
SimpleFAQ Sipgate Tasks Timetracker Tinebase
Tool Voipmanager
12. Fatos
Mesmo os módulos do Expresso criados pelo
SERPRO usam ou reusam módulos do Tine 2.0
Expressomail Webconference Messenger Expressodriver
Felamimail Filemanager
Tinebase
Tool
AppLauncher
13. Fatos
E se podemos ter clientes diferentes
(ExpressoLite) é porque reusamos a arquitetura
da aplicação, que é orientada a serviços.
ExpressoLite
ActiveSync
WebDAV
14. Fatos
Trazer atualizações da comunidade economiza
em custo de desenvolvimento.
Uma funcionalidade do Tine 2.0 como a melhoria
da conexão CalDAV custou 2.720 € (~R$ 8160)
para os patrocinadores do projeto (divididos em
7).
Nós pegamos essa funcionalidade de graça.
15. Fatos
Para se ter ideia, sem a integração das
comunidades Tine 2.0 e Expresso, se o SERPRO
tivesse de criar o Tine 2.0 do zero e deixá-lo com
as funcionalidades atuais, teria gasto cerca de R$
225.696.000,00 apenas com desenvolvimento
(considerando o valor médio de R$ 8000,00 para
cada commit no repositório)
18. Fatos
Tarefa #11613 do Expresso,
melhorada pelo Tine 2.0, com
adição de priorização de tipo
de serviço (HTTP, Json,
WebDAV, ActiveSync) e
criação de testes
automatizados
Testes
Isso aumenta a qualidade do
produto!
20. Fatos
O ambiente de integração contínua e testes
automatizados do Tine 2.0 está muito à nossa
frente. Quando submetemos para eles uma
alteração nossa, descobrimos bugs que não são
percebidos aqui dentro, e conseguimos corrigi-los
antes que se manifestem.
21. Fatos
Fica difícil integrar mudanças, se o código do
Expresso e do Tine 2.0 estiverem muito
diferentes.
Por isso é preciso manter o código comum
atualizado.
O ideal é integrar todo release estável do Tine
2.0.
22. Fatos
Para atualizar constantemente o Expresso com
código do Tine 2.0, é necessário separar o que é
implementação de regra de negócio específica do
Serpro do que é genérico.
Tinebase
Expressobase
Específico do Serpro Genérico
23. Fatos
Isso não somente permite a atualização, como
também evita que o Serpro distribua
funcionalidades dependentes do seu ambiente
de produção e que só atendem aos seus clientes
ou só servem no Brasil.
SÓ FUNCIONA
NO SERPRO
24. Fatos
Cada empresa tem suas demandas e ambiente
produtivo com características próprias. Por isso o
produto tem de ser flexível.
25. Fatos
Expresso tem um mercado
potencial na América
Latina, mas precisa
funcionar com a realidade
de cada país. Tem que ser
flexível.
26. Fatos
Separar o código específico do Serpro e não
desenvolver código que o Tine 2.0 já cria tem a
vantagem de permitir o foco no atendimento das
demandas do cliente do Serpro e na melhoria da
qualidade do que é específico para o Serpro.
27. Fatos
É bom que um projeto seja sustentado por mais de um
membro, em comunidade.
“Melhor é serem dois do que um, porque têm melhor
paga do seu trabalho. Porque, se um cair, o outro
levanta o seu companheiro; mas ai do que estiver só;
pois, caindo, não haverá outro que o levante.”
Eclesiastes 4:9-10
29. Fatos
Não é bom querer fazer tudo sozinho.
Isso é sintoma da Síndrome do Ursulão.
Ursulão é um personagem de desenho animado
que sempre decidia fazer as tarefas de casa, ao
invés de dar dinheiro para a mulher contratar um
especialista (eletricista, encanador, pintor).
Resultado: a casa pegava fogo; o cano estourava;
o motor do carro fundia. E no final, ele tinha que
gastar mais dinheiro pra consertar o que estragou.
30. Fatos
Ao desenvolver de forma colaborativa, evitamos
fazer uma implementação que resolve um
problema de forma imediata mas cria vários
outros problemas que temos de passar meses
para resolver.
31. Fatos
● Não devemos fazer somente o que o cliente
pede.
● Não devemos esperar o cliente pedir.
32. Fatos
● Temos de ser ousados,
criativos e inovar
● Temos de melhorar
continuamente a qualidade
dos produtos e serviços
para o cliente
33. Fatos
A atualização constante do código do Tine 2.0
permite que captemos funcionalidades não
solicitadas pelos clientes, mas que podemos
apresentar.
Exemplo: importação de eventos (existe no Tine
2.0, não existe no Expresso)
34. Fatos
Na visão de futuro do Tine 2.0 está a ampliação
da integrabilidade: a facilidade de integrar o
produto com aplicações de terceiros, ou
“pendurá-las” nos módulos do Tine 2.0.
Além disso, a ampliação do desacoplamento: a
facilidade de desacoplar as bibliotecas
(dependências) de terceiros e acompanhar a
evolução de cada uma de forma independente.
35. Fatos
Na visão de futuro do Tine 2.0 está a ampliação
do uso de dependências de terceiros (delegação
de negócios específicos a especialistas em seus
respectivos negócios).
Isso abre a possibilidade de usar funcionalidades
disponíveis em outros frameworks especialistas.
36. Qual é a nossa estratégia de
integração
● Nós isolamento de código com regras de
negócio específicas do Serpro;
● Restringirmos alterações na API do sistema, e
expandimos o uso de plugins;
● Contribuímos com a comunidade como parte
do processo do desenvolvimento.
37. Importante
O SERPRO não tem contrato de suporte com o
fornecedor da API do Expresso, por isso a
integração de código do SERPRO é feita no
tempo de comunidade: a priorização é feita de
acordo com a importância da demanda para os
patrocinadores do Tine 2.0.
38. Importante
Neste caso, é ainda mais importante isolar o
código de negócio específico do SERPRO e
enrijecer o critério de aceitação de mudanças
para a API (se não for plugável ou configurável,
não entra).