Estudo de Caso do Expresso
Uma Integração Profissional
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
Queremos oferecer um bom produto
ao nosso cliente
Um produto que seja seguro
Um produto que seja estável
Um produto que seja flexível
Um produto com custo de
manutenção aceitável
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!
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
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
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
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
Fatos
E se podemos ter clientes diferentes
(ExpressoLite) é porque reusamos a arquitetura
da aplicação, que é orientada a serviços.
ExpressoLite
ActiveSync
WebDAV
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.
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)
Fatos
Nossas contribuições não são somente aceitas...
Tine 2.0 implementando para Expresso!
Fatos
Nossas contribuições são melhoradas!
Tarefa do Expresso
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!
Fatos
Nós consumimos frequentemente melhorias e
correções do Tine 2.0
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.
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.
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
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
Fatos
Cada empresa tem suas demandas e ambiente
produtivo com características próprias. Por isso o
produto tem de ser flexível.
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.
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.
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
Fatos
Melhor ainda se a comunidade for internacional.
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.
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.
Fatos
● Não devemos fazer somente o que o cliente
pede.
● Não devemos esperar o cliente pedir.
Fatos
● Temos de ser ousados,
criativos e inovar
● Temos de melhorar
continuamente a qualidade
dos produtos e serviços
para o cliente
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)
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.
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.
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.
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.
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).
Obrigado
Dúvidas: flavio.lisboa@serpro.gov.br
http://comunidadeexpresso.serpro.gov.br

Integração Profissional: Estudo de Caso do Expresso

  • 1.
    Estudo de Casodo Expresso Uma Integração Profissional
  • 2.
    Temos consciência deque... “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
  • 3.
    Queremos oferecer umbom produto ao nosso cliente
  • 4.
    Um produto queseja seguro
  • 5.
    Um produto queseja estável
  • 6.
    Um produto queseja flexível
  • 7.
    Um produto comcusto de manutenção aceitável
  • 8.
    Um produto quecontribua 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 queremosinvestir (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 projetointeiro 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 potencialde 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ódulosdo 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 podemoster clientes diferentes (ExpressoLite) é porque reusamos a arquitetura da aplicação, que é orientada a serviços. ExpressoLite ActiveSync WebDAV
  • 14.
    Fatos Trazer atualizações dacomunidade 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 terideia, 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)
  • 16.
    Fatos Nossas contribuições nãosão somente aceitas... Tine 2.0 implementando para Expresso!
  • 17.
    Fatos Nossas contribuições sãomelhoradas! Tarefa do Expresso
  • 18.
    Fatos Tarefa #11613 doExpresso, 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!
  • 19.
    Fatos Nós consumimos frequentementemelhorias e correções do Tine 2.0
  • 20.
    Fatos O ambiente deintegraçã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 integrarmudanç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 constantementeo 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 somentepermite 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 temsuas demandas e ambiente produtivo com características próprias. Por isso o produto tem de ser flexível.
  • 25.
    Fatos Expresso tem ummercado 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ódigoespecí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 queum 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
  • 28.
    Fatos Melhor ainda sea comunidade for internacional.
  • 29.
    Fatos Não é bomquerer 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 deforma 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 devemosfazer somente o que o cliente pede. ● Não devemos esperar o cliente pedir.
  • 32.
    Fatos ● Temos deser ousados, criativos e inovar ● Temos de melhorar continuamente a qualidade dos produtos e serviços para o cliente
  • 33.
    Fatos A atualização constantedo 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 defuturo 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 defuturo 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 é anossa 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ãotem 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).
  • 39.