Relato sobre a 63a reunião do SPIN-SP (tema: Integração Contínua)

SPIN-SP - 63a reunião

SPIN-SP Logo

Foi a minha primeira visita a uma reunião da SPIN-SP. A SPIN é um movimento criado na década de 80 que visa a melhoria contínua do processo de desenvolvimento de software através da divulgação de experiências, melhores práticas e melhoria de qualidade. Fiquei surpreso ao ver que seria em um auditório muito bem estruturado na Universidade São Judas Tadeu, com três projetores em diferentes locais da sala, sistema de som e um coffee break. Pelo que vi o grupo é formado apenas por voluntários.

SPIN-SP 63 01
SPIN-SP 63 02

Tive a chance de conversar com pessoal da Universidade e do SPIN, além dos palestrantes também. O clima era ótimo, e todos eram abertos a ideias e com ótimos comentários. A seguir um breve relato do que aconteceu por lá, para você que não pôde ir mas gostou da ideia :-)

13:25  pessoal chegando, social entre palestrantes e membros do SPIN-SP 13:30 troca de palestrantes devido a um atraso e boas vindas da Universidade e do SPIN-SP 13:40 começam as palestras!

1. Automação de processos e qualidade com Jenkins na MAPS (PDF)

O início da palestra foi sobre a MAPS , apresentando o que a empresa realiza e também mencionando o JMine , um framework Open Sourced por eles. Em seguida veio uma breve definição do Jenkins . O início foi bem simples, mostrando o ferramental utilizado.

Renato Lundberg - MAPS

Em seguida o palestrante - Renato Lundberg - explicou como era o processo de desenvolvimento da MAPS antes. Eles aplicavam RUP e o processo era bem lento, o que acabou levando a um freeze .

Os desenvolvedores ficaram bem desmotivados . Mas foram os próprios desenvolvedores que tiveram novas ideias. Scrum , Agile , novas ferramentas. E a gestão da empresa comprou a ideia e patrocinou testes automatizados, ferramentas de automação e integração contínua. Após mostrar o processo anterior e o que foi feito para melhorá-lo, Renato passou a entrar um pouco mais em detalhes sobre os benefícios. Antes os desenvolvedores tinham medo de modificar o código, mas eles passaram a adotar testes, inclusive escrevendo uma DSL para possibilitar testes em um estilo parecido com BDD . E para rodar os testes a MAPS adotou o Jenkins e criou um pipeline de integração contínua. Também migraram do Subversion para o Mercurial .

Assim, conseguiram mais de 5 mil planilhas (usadas como DSL para testes), 17 mil horas de testes manuais sendo executadas em apenas 5 horas de maneira automatizada, mais de 250 mil de testes. Um trabalho que seria igual ao de 20 pessoas, em aproximadamente 107 dias . A solução da MAPS apresentada no evento é muito interessante. Uma das maiores que já vi no Brasil, com 50 slaves (há casos fora do Brasil com mais de 1000 slaves ), utilizando XEN para rodar testes distribuídos. No restante da apresentação foram apresentados mais números e benefícios alcançados com a Integração Contínua aplicada com Jenkins e testes, além de mostrar que a MAPS vem seguindo boas práticas como segurança no Jenkins (com LDAP ), boa comunicação entre o time (tanto com práticas ágeis , como com uma TV e o eXtreme Feedback Panel Plug-in ).

Ao final, foi possível perceber que a MAPS passou por um momento de stress , que fez com que os desenvolvedores adotassem medidas e ferramentas que facilitassem o trabalho deles e dessem mais agilidade para o time . Acredito que o desenvolvimento tenha ficado mais divertido, assim como os desenvolvedores tenham aprendido bastante no processo todo. Não apenas as ferramentas foram bem configuradas (plug-ins, hooks no Subversion, builds por commits, etc), mas o processo também. Ao final de um build deles, foi mostrado em um slide, que era possível executar testes de performance também.

2. Integração contínua e gestão de configuração: um relato de experiência (PDF)

A segunda apresentação foi realizada pelo Maurício do Banco Sofisa . Foi mais curta que a primeira, mas também recebeu bastante perguntas (uma das características que é fácil de perceber é o envolvimento dos organizadores, outros palestrantes e platéia, realizando perguntas durante e após as palestras).

Foi apresentado uma situação problema também, e como o time do banco estava evoluindo após ter aplicado técnicas de integração contínua , novamente com Jenkins e repositório Maven  Sonatype Nexus . O palestrante salientou também que não havia mais configurações espalhadas nas máquinas dos desenvolvedores (talvez indicando que este problema ocorria anteriormente), e que no passado usaram o Apache Continuum , outro servidor de integração contínua.

3. Fluxo contínuo de software: repensando o ciclo de vida (PDF)

A terceira apresentação foi mais filosófica no início (intencionalmente). O Jorge Diz , palestrante experiente e que já passou por diversos tipos de projetos, expôs sua visão sobre integração contínua, fluxo, diferentes tipos de técnicas “contínuas” ( continuous delivery , continuous integration , continuous testing , etc). Usou o Mihaly Csikszentmihalyi ( http://www.ted.com/talks/mihaly_csikszentmihalyi_on_flow.html ) em definições sobre fluxo e motivação dos desenvolvedores.

Jorge Diz - Glia

Durante a palestra foram apresentadas experiências vividas, situações engraçadas como o Zé do Build , aquele responsável por builds que se ficar doente o time precisa esperar para lançar uma nova versão, além de mostrar que conhecendo esse “background filosófico”, conseguimos entender melhor porque e como devemos aplicar tantas novas metodologias no nosso desenvolvimento. Além do Jenkins, o Jorge tinha um slide com uma lista de alguns outros servidores e mencionou mais alguns enquanto falava (não anotei os nomes).

~16:00 - Coffee-break com café, sucos e salgados servidos em uma sala próxima.

~16:10 - Organizadores do evento cederam 5 minutos para que eu pudesse falar sobre o evento Jenkins Meetup São Paulo , a acontecer em Dezembro desse ano.

4. Resultados práticos do uso de Integração Contínua com o Jenkins (PDF)

A última palestra começou 15 minutos após o café e se houve gente deixando o evento não foi possível perceber. O palestrante, Emerson Vieira, é gerente da 7comm , e deu uma palestra muito interessante. Foi a primeira vez que vi uma palestra de um gerente, que não conhecia a fundo tecnicamente a solução, porém viveu com o time a migração de um ambiente complicado para um ambiente com builds controlados pelo Jenkins.

O sistema do time do palestrante envolvia um banco com serviços e transações na alta plataforma. O acesso ao mainframe era restrito, o que onerava o processo de desenvolvimento deles. Além do Jenkins, foram incluídos testes automatizados e mocking no processo de desenvolvimento e integração contínua. Assim, o time passou a poder começar a trabalhar assim que a especificação da transação chegava do banco, e continuava trabalhando mesmo quando o sistema estava fora. Com uma visão gerencial, o Emerson mostrou em números os ganhos da equipe de desenvolvedores. Tanto em horas quanto em custo. Estimar, que era muito difícil antes, passou a ficar mais fácil também, já que agora possuíam padrões e um processo de desenvolvimento.

Concluindo

Como muitos presentes no evento, saí mais cedo no expediente para ver o evento, e não me arrependi. Aprendi muito, conheci mais sobre alguns ambientes com integração contínua, fiz alguns amigos novos e no fim ainda rolou mais um social com alguns palestrantes em um bar próximo ao metrô Butantã. Pelo que vi das palestras, foi unanimidade o uso do Jenkins.

Jenkins logo

E se você organiza as palestras com Jorge, Maurício, Renato e por último o Emerson, você tem a primeira do Jorge, onde os fundamentos de fluxo, continuidade, integração contínua e prós e contras são demonstrados. Posteriormente, o Maurício mostra um cenário em que estão começando a organizar a casa, porém ainda têm trabalho a fazer (não havia testes ainda no projeto deles, pelo que pude entender). E o Renato mostrou um ambiente em que já estão colhendo os frutos pela adoção do Jenkins, e em que é impossível ficar sem o servidor de integração contínua. Enquanto que já o Emerson mostra um outro ponto de vista, de um gestor antes, durante e após a implantação de integração contínua no seu time de desenvolvimento.

Time de palestrantes

Com certeza participarei das próximas edições do SPIN-SP. Espero que tenha gostado do relato, em breve as palestras devem estar disponíveis no site do SPIN-SP, bem como fotos e talvez vídeos do evento. Espero ver você na próxima reunião! ;-) EDIT: Obrigado aos organizadores da SPIN-SP que adicionaram um link para este relato no site da SPIN-SP e também enviaram fotos e o link das apresentações. Muito obrigado!