Marcelo Cajueiro

RSS

Pequenas tarefas, grandes melhorias

Ultimamente, venho pensado muito em como melhorar a parte interna das aplicações em que trabalho, de forma que não atrapalhe a entrega de valor ao cliente.

Cheguei a uma solução a longo prazo baseada nas quests existentes em RPGs.

Quests

Eu joguei MMORPG, mais precisamente World of Warcraft, por muitos anos.

Em praticamente todos os “role-play games”, há diversas tarefas, conhecidas como quests. Essas quests são uma lista de “metas” a serem cumpridas para se conseguir uma pequena recompensa.

Em alguns jogos, existem as chamadas “daily quests”, que se resume em fazer a mesma quest todos os dias em busca de uma grande recompensa a longo prazo.

Realidade no desenvolvimento de software

Nos sistemas da IntegraGRP nós temos diversas melhorias a serem feitas.

Como nós somos um grupo de desenvolvedores que adora código limpo, bem testado e rápido, gostamos de manter tudo atualizado para ter acesso as principais vantagens de cada ferramenta.

Isso tudo é muito bonito, mas não é tarefa fácil conseguir, pois temos muitos sistemas e cada um deles de tamanho considerável.

Exemplos de melhorias:

  • Atualização para o Capybara 2.0;
  • Troca do Machinist pelo FactoryGirl;
  • Verificar testes de aceitação que podem ser rodados com rack-test ao invés do poltergeist, em favor performance;
  • Junção de cenários que fazem CRUD (ao invés de um cenário para criar, outro para editar e outro para apagar, usar apenas um, diminuindo o tempo dos testes).

Vamos supor um caso:

  • atualização do Capybara;
  • criamos um branch para esta alteração, e lá aplicamos o básico;
  • o servidor de integração contínua irá rodar os testes;
  • 100 testes quebram;
  • temos 4 desenvolvedores.

Resultado não exato:

Nós sabemos que em planejamento de desenvolvimento de software a matemática não é exata… mas… digamos que seja.

Em aproximadamente 25 dias de trabalho, com apenas alguns minutos por dia para cada dev arrumar um teste, teríamos uma app melhorada.

Com tudo pronto, temos desenvolvedores satisfeitos e motivados para um próximo desafio.

Conclusão

Acredito que pequenas tarefas diárias, para resolver grandes problemas não prioritários é um ótimo caminho para aperfeiçoar o software, sem ter de sacrificar o mais importante, a entrega de valor ao cliente.

Lembre-se, para grandes mudanças, pequenos atos!

A conjecture about code reviews

Hidden gems: suspenders by Mike Burns

Usando o foreman para iniciar o ambiente de seu projeto by Nando Vieira

RS on Rails - A saga

Ah o RS on Rails… essa foi a minha terceira participação e quanta coisa mudou devido a esse evento.

Segue uma pequena retrospectiva demonstrando o quanto o RS on Rails foi marcante na minha vida.

2010

Fui na cara e na coragem, de carro com um grupo de catarinenses.

Eu nem programava direito ainda, estava engatinhando com Ruby e Rails.

Nesse ano, fiz uma lightning talk sobre o GURU-SC que eu havia “fundado” devido a “morte” do “rails-SC”.

Meses depois, graças a comunicação gerada entre o GURU-SC e o GURU-RS, teve o primeiro encontro do GURU-SC em Florianópolis.

Tivemos a participação em massa do pessoal do Rio Grande do Sul.

Nesse evento, houve turismo, banho em lagoa poluída e muito mais, fora a presença do Doido que veio de Belo Horizonte, chegando em cima da hora das palestras e partindo de volta 12 horas depois.

(Eu iria virar um grande amigo do Doido alguns meses depois)

2011

Dessa vez, eu não era mais tão noob. Já estava trabalhando com Ruby on Rails há praticamente 10 meses na Ocapi.

Já um pouco mais desembaraçado, dessa vez fiz vários contatos, que continuam fortes até hoje.

Sabe o doido que comentei em “2010” e que veio a virar meu amigo? No preview do RS on Rails, que aconteceu no QG da Engage, me convidou para trabalhar na sua empresa recém fundada.

Aceitei a proposta e estou na Nohup até hoje.

2012

Evoluí ainda mais depois de um ano, virando coordenador de projetos na Nohup, liderando uma equipe no desenvolvimento de dois sistemas, além de ter ajudado a fundar a Code5.

Decidi praticamente em cima da hora em ir no RS on Rails desse ano e por ironia do destino, o Doido ao conversar com o ilustre Cabral descobriu que havia um slot vago (graças a viagem do barba ruiva pelos mares) nas palestras e, coincidentemente, eu e o Doido tínhamos uma palestra pronta sobre SOLID.

Foi uma ótima experiência e um prazer palestrar ao lado de um amigo num grande evento que é o RS on Rails.

O networking novamente foi algo animal. Reencontrei grandes pessoas, conheci outras e, provavelmente, produziremos grandes frutos graças a isso.

Quero agradecer aos organizadores do RS on Rails, pois se não fosse essa sequência, eu não estaria na ótima posição que estou hoje.

Para o pessoal que não costuma ir em eventos, fica o exemplo, pois são neles que as principais oportunidades acontecem.

Mapa mental

Evolução

O Doido

Algumas fotos

Slides da nossa palestra



PS.: não citei os nomes das pessoas que estiveram comigo durante os eventos porque sempre irá faltar alguém, o que torna injusto, pois todos são especiais (emo mode[on]).

Retornando JSON com Rails Metal by Rinaldi Fonseca

SOLID Design Principles by Gregory Brown

Protected methods and ruby 2.0 by Tenderlove

SOLID Object-Oriented Design by Sandi Metz

SOLID Ruby by Jim Weirich