Nos dias 15 e 16 de outubro participei do Rails Summit Latin America 2008. O evento recebeu grandes nomes do desenvolvimento de software e da comunidade Ruby On Rails, o nível técnico foi inquestionável. Os palestrantes apresentaram temas como testes, qualidade, empreendedorismo, desenvolvimento ágil, open source, REST, Git, Escalabidade, e claro, Ruby e Rails.

Auditório Principal

Auditório Principal

Como o Alexandre Gomes falou “a impressão que me deu é que a grande bandeira desta comunidade não é a tecnologia em si, mas os princípios em que acreditam.” Assino em baixo.

Não entrarei em grandes detalhes sobre as palestras porque tem gente que já falou muito bem, mas registrarei as principais lições que aprendi nestes dois dias de evento.

O Dr. Nic Williams e o Chris Wanstrath falaram bastante sobre a importância de contribuir com projetos Open Source, ser ativo na comunidade e gastar menos tempo com coisas que podem não ser assim tão importantes. Os grandes conselhos foram:

  1. Aprenda Git
  2. Aprenda Testes Unitários
  3. Aprenda a Testar Primeiro
  4. Crie um Blog para compartilhar coisas que você aprende
  5. Mantenha um Currículo online
  6. Participe de reuniões de desenvolvimento (como o DojoSP, por exemplo)
  7. Concerte código de outras pessoas
  8. Responda perguntas em fóruns
  9. Traduza artigos para mais pessoas terem acesso.

Jay Fields, Danilo SatoDavid Chelimsky falaram sobre Testes. Licões aprendidas:

  1. Selenium é lento e grandes suites podem ser insustentáveis, você não precisa testar tudo, mantenha o foco no que for mais importante.
  2. Remova débitos técnicos.
  3. Faça o que funciona bem para você (ou sua empresa).
  4. Fique atento aos Code Smells.
  5. Aprenda Behavior Driven Design (BDD = DDD + TDD + Aceptance Test Driven Planning) e teste comportamento.
  6. Defina os testes de aceitação nas reuniões de planejamento.
  7. Use o código de teste para comunicar suas intenções e o “você do futuro” vai te agradecer.
  8. Teste não é custo, é investimento!

Pra fechar com chave de ouro, Obie Fernandez apresentou um pouco do dia-a-dia da Hashrocket (empresa fundada por ele) e como eles aplicam os quatro princípios do manifesto ágil. Sem sombra de dúvidas, essa foi a palestra que eu mais gostei, por isso comentarei um pouco sobre ela.

Para aplicar o primeiro princípio “Indivíduos e Iterações são mais importantes do que processo e ferramentas” eles fazem o seguinte:

  1. Programação em par: Na Hashrocket, a programação em par acontece com um computador, dois desenvolvedores, um monitor dois teclados e dois mouses. Segundo Obie, ao programar em par, o código é revisado o tempo todo e os desenvolvedores se tornam seniors muito rápido.
  2. Nada de Entrevistas: Quando é necessário contratar novas pessoas para equipe, um post é publicado no blog informando que eles contratando. Quem se enquadrar melhor no perfil é convidado a trabalhar por uma semana (em par), algo como um trial…
  3. Não cresça demais e forme equipes Pequenas: Porque é fundamental manter as pessoas unidas. Forme equipes auto-organizáveis de 2 a 4 pessoas e escolha as pessoas certas, não se tem gerentes de projetos.
  4. Guest Star Program: Faz-se convites para grandes estrelas da comunidade de desenvolvimento de software para que estes trabalhem junto com a equipe durante um determinado período de tempo. Assim é possível trocar experiências e aprender com os melhores.

Para aplicar o segundo princípio “Indivíduos e Iterações são mais importantes do que processos e ferramentas“:

  1. TAFTTest All The Fucking Time: Esse é o título de  uma apresentação do Brian Liles cujo a principal mensagem é Teste Todo o Tempo.
  2. RSpec: Utiliza-se esta ferramenta que permite escrever testes em forma de especificação executável.
  3. Mínimo Produto Viável: Desenvolve-se o mais importante, o que realmente dá valor ao software.
  4. Releases Curtos: Entrega-se software em pequenos intervalos.

Para aplicar o terceiro princípio “Colaboração do Cliente é mais importante do que negociação contratual”:

  1. OnSite Custumer: O Cliente (ou alguém que responda por ele) deve fazer parte da equipe.
  2. Visual Design First: O Design Visual deve estar pronto antes do inicio do desenvolvimento do software.
  3. User Stories: Utilizam user stories como especificação, as user stories devem conter narrativas sobre funcionalidades a serem implementadas no software, devem ter um critério de aceitação e devem ser estimadas.
  4. Master Service Agreement: negociação contratual da Hashrocket.

Para aplicar o terceiro princípio “Responder as mudanças é mais importante do que seguir um plano”:

  1. Pivotal Tracker: Utilizam o Pivotal Tracker como ferramenta colaborativa para gerenciamento de projetos baseados em user stories.
  2. Reuniões de Pé: São reuniões diárias muito conhecidas em metodologia ágeis como XP e Scrum em que a equipe geralmente reponde a três perguntas: “O que fiz desde a última reunião?”, “O que farei até a próxima reunião?” e “Quais são meus impedimentos?”. Essa reunião proporciona transparência e mantém todos informados da situação atual do projeto.
  3. Pivotal Standup: Uma reunião onde as pessoas respondem rapidamente “Tenho alguma coisa interessante para compartilhar com todos?“.

Para concluir sua apresentação Obie apresenta o princípio mais importante que é o grande segredo do sucesso: “Divirtam-se Juntos“, e mostrou algumas fotos de situações (participando em reuniões de grupos de usuários, passeando de barco, tocando instrumentos musicais, jogando vídeo games, indo à praia, bebendo, pulando na piscina, etc) em que ele e sua equipe estavam se divertindo.

Para maiores informações, visite o site do Obie, o site da Hashrocket, o blog do Obie, e sua galeria do Flickr.

Palestrantes Reunidos no final do Evento

Palestrantes Reunidos no final do Evento

Hugo, Akita, Ricardo e Eu

Hugo, Akita, Ricardo e Eu

E como todo bom evento, é claro, tivemos um Happy Hour, dessa vez em um restaurante japonês na Liberdade.

Happy Hour no final do Evento

Happy Hour no final do Evento

Meus agradecimentos ao Fábio Akita e à toda a equipe da Locaweb pela realização do evento.

Um grande abraço a todo os bons amigos que participaram do evento!

Quinta e Sexta estaremos no “Falando em Agile 2008“. Espero encontrar você lá!