Olá, eu sou o Jônatas, sou sócio da invent.to e sou dev rails na Resultados Digitais.

ps: Sinta-se livre para conversar comigo por email ou gtalk: jonatasdp@gmail.com.

Vida de busão

Já completei três meses na Resultados Digitais e me tornei literalmente um cliente da Consórcio Fenix aqui de Florianópolis. Vou e volto todo dia do trabalho somando 54 km ida e volta. Moro no Ingleses e trabalho no Itacorubi então pego em média 2,5 horas de trânsito por dia. Logo, com uma matemática básica é possível saber que temos 20 dias úteis mês eu significa 50 horas de ônibus por mês. Isso é simplesmente uma QUINTA SEMANA DO MEU MÊS que fico dentro do ônibus.

No começo ficava meio triste de ver as pessoas zombiziando no busão, mas agora não acho que elas estão infelizes ou que aquilo é ruim pra elas só acho que estão aproveitando para dormir mais. Eu ainda não consigo dormir no ônibus. Mas em conta disso já li praticamente 3 livros somente no busão e também estou ouvindo muitos podcasts.

Podcasts

Realmente não consigo escutar podcasts enquanto estou trabahando. Mas no ônibus é muito bom pois é possível escutar em pé com o ônibus balançando, o que é quase impossível de fazer para ler um livro.

Estou ouvindo @rubyrogues, Ruby5, giantrobots e o @grokpodcast para dar uma geral sobre as novidades do ruby e do rails.

E pra dar uma escapada da tecnologia também to aprendendo espanhol com o Learning Spanish Fast.

Online

Nos últimos dias depois de ouvir quase todos os podcasts do passado, ainda assim sobra tempo e estou só ouvindo as mesmas músicas e aproveitando para colocar a casa em ordem: ler e responder todos os emails, acompanhar o hckrnews e outros feeds de tecnologia.

Estar online é muito legal, e enquanto tem banda de internet é possível pra fazer muita coisa apenas com o smartphone.

Eu geralmente aproveito para escolher e publicar algumas das trocentas fotos que eu tiro no instagram, acessar meu facebook e responder emails.

Quando estou no ônibus sempre tenho aquele sintoma de improdutividade e se deixar fico só conectado na internet. Então tento sempre me regrar para não ficar só navegando e deixar os outros consumirem totalmente a minha atenção e tento olhar para dentro e produzir um pouco em offline.

Offline

A vida offine é bem mais difícil no busão e exige mais criatividade e preparo prévio. Ainda tenho dificuldades de manter mais conteúdo para acessar offline. Agora instalei o plugin do google chrome readability que envia os conteúdos que quero ler para o meu kindle e isso é bem legal e eficiente.

Estou pensando em começar a ouvir audiobooks mas ainda não comprei nenhum para iniciar. Já ouvi alguns no passado e curti também. Acho que vou começar pelo The Agile Samurai.

Geralmente tento aproveitar o tempo ócioso de forma criativa. Dentre elas tento:

  • Escrevo pequenas listas de coisas que preciso fazer
  • Detalho pequenas listas de assuntos estilo tópicos/subtópicos da maioria dos posts do meu blog
  • Pesquiso sobre detalhes / ferramentas dos tópicos que estou trabalhando

Esses dias fiquei 45 min dedicados a escrever minha pequena definição estilo mini-bio para falar "quem sou eu?". Não é fácil escrever e pensar em algumas definições. Tava saindo do busão e não tinha conseguido terminar. Foi de faltar estrada pra tanto assunto da minha cabeça.

As vezes preciso fechar os olhos pra me concentrar em algumas coisas de tanta informação e coisas a minha volta que estão tentando tomar a atenção. As mídias, as redes sociais, as pessoas conectadas.

A internet se tornou parte de nosso ciclo de vida e estar offline é muito bom. É como respirar ar puro. É ir para floresta. Um momento gostoso de silêncio.

Nestas horas de busão eu posso sentir isso. Estar isolado e solo. Posso aproveitar esse momento para falar comigo mesmo. Aproveitar para olhar para dentro e conversar comigo. Sempre tento por uma pitada disso em minhas viagens diárias.

E as pessoas?

Também não sou um cara tão anti-social que não conversa com ninguém e só usa fones de ouvido. Tenho conhecido várias pessoas legais no ônibus e quando elas não estão dormindos ou receosas de conversar eu também aproveito para trocar ideias.

Uma pena que só consegui ir e voltar trocando ideias com outras pessoas algumas vezes, pois em geral sinto as pessoas muito indispostas para conversar nos horários que eu vou. Quando vou um pouco mais tarde, o ônibus geralmente vai cheio de senhoras alegres e aí é impossível não conversar pois elas são muito simpáticas e sempre têm assuntos. Já as pessoas mais jovens tem smartphone e fones de ouvido. Então fica aí duas questões polêmicas para se pensar sobre o nosso futuro de ubiquidade tecnológica:

  • Por que a conectividade afasta tanto a juventude do mundo real?
  • Como as novas gerações vão interagir nos meios sociais reais?

E você pega o busão todo dia? Como gerencia seu tempo de busão? Pode contribuir com alguma ideia legal pra aproveitar melhor o tempo no busão?



Perguntas do meu filho de 3 anos

O meu filho Lorenzo está numa fase linda de muitas perguntas engraçadas, esquisitas e tudo mais. Sempre me deparo com as mais diversas perguntas e resolvi anotar algumas para ir registrando pois provavelmente não lembrarei nem da metade daqui uns anos.

  • O que é trabalho?
  • Por que as pessoas tem que trabalhar?
  • Eu trabalho?
  • Pai, já parou de trabalhar?
  • Mãe, por que que tu não tá trabalhando?
  • Mãe, tu só usa essa sandália?
  • De novo nessa padaria mãe?
  • Onde que tá o bombeiro?
  • Por que que na praia tem areia?
  • Por que tem polícia pai?
  • Mãe, eu dou água pro moranguinho mas por que que só cresce matinho?
  • Quando eu crescer quem vai ser minha namorada?

Fico pensativo sobre suas perguntas pois muitas vezes fazem total sentido e outras vezes não sei como ele conseguiu pensar naquilo :)

Selecionei algumas que anotei e resolvi compartilhar. As perguntas do Lorenzo:

O que's

  • O que é vender?
  • O que é amargo?
  • O que é dinheiro?

Ele assiste os desenhos e capta muitas palavras no ar. Então sempre pergunta sobre tudo:

  • o que que é bandido pai?
  • o que o mágico faz? E o que é mágica?
  • o que é um astronauta?
  • o que é morrer?

Os porque's

  • Por que o pai usa óculos de dia?
  • Por que as pessoas usam cinta?

  • Por que os nêne fica na barriga da mãe?

    • e por que a barriga cresce quando o nêne tá lá dentro?
  • Por que é 1,2,3,4?

  • Porque as pessoas não são iguais mãe?

  • Por que as pessoas são diferentes?

    Essa do porquê as pessoas são diferentes é uma que ele pediu mais de 5 vezes

Algumas que só entendi depois de assistir uns desenhos com ele

Por que helicóptero não vira submarino? Por que helicóptero não vai embaixo da água?

Tem um desenho que ele assiste que um submarino vira helicóptero
  • O que é camisola pai?
  • Por que eu não uso camisola?

Ele assiste o Ruca então é tudo português de portugal e o Ruca usa camisola. Então ele queria usar camisola também. Expliquei pra ele que camisola era pijama e ele entendeu :)

Como que...

  • Como que os passarinhos tomam banho?
  • Como que o bombeiro salva as pessoas?
  • Como que eu nasci?

E como responder a essas perguntas?

Sempre é um desafio ensinar e ser simplista, conseguindo dar uma resposta para o nível de compreensão da sua idade. Não vale a pena entrar em conflito e tentar explicar algo complexo ou mesmo difícil.

Quando vou dar uma resposta sempre tenho que lembrar: "ele tem 3 anos" e preciso conversar no vocabulário dele.

Apesar dele entender muito bem a maioria das coisas até mais difíceis que estamos falando, sempre tentamos manter a simplicidade para evitar confusões com o excesso de informações. Pois falar muito com criança não dá tanto resultado. Eles escutam quando querem.

Esses dias rolou a seguinte conversa lá em casa:

j = jonatas
l = lorenzo
t = tania

Estavamos para sair para praia e o Lorenzo tava ansioso para ver o mar.

j: tânia onde está o protetor solar? que vou passar na tatuagem....
t: lá em cima do balcão...
l: pai, vai tomar no cú que tu vai passar o protetor solar na tatuagem?
j: Lorenzo o que você disse?
j: Por que você mandou o pai tomar no cu?
j: Você sabe o que quer dizer isso?
l: ...
j: Se você não sabe você não pode falar.
j: isso é uma palavra feia e de gente grande e você não sabe o significado.
l: ...
j: Quando você crescer e aprender pode escolher se quer falar ou não mas enquanto você é pequeno têm que falar coisas de criança

Papo encerrado. Ele nunca mais falou no assunto. E também sabe outros palavrões mas não fala pois sabe que não é a sua hora.

Estamos ao máximo tentando evitar falar na frente dele mas sempre existem outros meios então como pais conscientes precisamos instruir, conversar e jogar aberto sobre qualquer assunto.

Não existem atitudes ideais, precisamos improvisar, melhorar e sentir o feedback deles o tempo todo. A experiência de ser pai é isso: exige aprender, ensinar, ter paciência e jogar limpo. Sem dogmas.

Ter filho pra mim superou todas as experiência de vida anteriores. Ensinam o que é o amor e relembram a reflexão de por que estamos aqui.

E afinal, por que estamos aqui?



Três meses na Resultados Digitais

Dia 23 completei três meses na Resultados Digitais.

Três meses que moro em floripa. Três meses que aprendi a adorar o clima litorâneo.

Estou muito feliz por estar aqui. A vida na praia tem um clima diferente. Incrivelmente me sinto mais livre aqui.

O trabalho também está sendo muito legal, e este post é mais uma reflexão sobre como está sendo minha vida na Resultados Digitais.

Team A

Faço parte de um Team "A" e estou aprendendo muito com eles. Estou gostando de fazer parte de uma equipe maior, estamos em mais de 30 pessoas em 6 equipes. Então sempre é possível aprender mais e ver uma ótica diferente de outros programadores.

Dentro dos times, faço parte de uma equipe que fica mais focada nos problemas de performance e escalabilidade do produto. Está sendo uma experiência incrível para mim, pois estou tendo desafios bem diferentes dos que tive antes em outras aplicações. Até escrevi no blog do shipit sobre algumas dicas para migrações eficientes com ActiveRecord.

Out teach

Outra coisa muito massa aqui na RD é o incentivo para aprender e ensinar. Out teach é um valor do código de cultura da RD, e isso possibilita estar sempre aprendendo em workshops e palestras internas.

Também somos muito incentivados a participar de eventos e compartilhar nossos conhecimentos publicamente. Eu tive o prazer de palestrar com o @andrehjr no TDC aqui em floripa. Foi muito legal, pois, além de nós, os RDevs deram 7 palestras em 5 trilhas além de participar do evento.

Code Review

Falando em ótica diferente, estou apaixonado pela prática do code review. Code review pra mim é uma consultoria particular especializada para me fazer um programador melhor.

Cada vez que recebo um feedback num pull request aprendo a ser um programador melhor.

Cada vez que encontro um problema ou tenho uma ideia para dar no código dos outros devs dou um feedback.

Esse processo se torna muito legal pois você aprende e ensina diariamente. Além de poder expor ideias ou mesmo alertar sobre possíveis falhas e inconsistências.

O code review tem valor se for feito com muita atenção e alto nível de criticidade. Existem muitos detalhes ou complexidades do código que podem tornar a revisão difícil e demorada. Porém uma revisão eficiente pode melhorar o algorítmo e o programador em vários níveis e o produto também, que tal?.

Esses dias achei muito legal que em um feedback de release escutei o @joaohornburg falando: "vamos começar desconfiar de pull requests que forem revisados e não encontrarem nenhum problema". Em outras palavras, sempre é possível melhorar.

Pra mim o code review tem sido uma das experiências mais valiosas e interessantes tanto para a minha melhora contínua quanto para maior qualidade nas entregas. Esse é o recado: Pratique code review ;)"

Pair programming

Pair programming é a prática de programar em par, usando um computador para dois programadores. Eu gosto muito deste formato de interação para construção de código pois sempre sai um código melhor. Sempre é possível planejar e executar ideias melhores em dois do que sozinho.

Fazendo uma correlação com o tópico anterior, observei que mesmo fazendo pair programming, que já ajuda muito para construir um código melhor, o code review tem um papel diferente e que muitas vezes pode trazer novidades e melhorias que os 2 devs não enxerguem.

Estou pareando bastante nos últimos dias. Isso me deixa muito feliz pois gosto muito de conversar e trabalhar em conjunto nas ideias. Além de poder passar e receber mais conhecimento. Sempre aprendemos tricks que agilizam o flow com as ferramentas dos coleguinhas.

Dentre as principais mudanças que aconteceram no meu flow de desenvolvimento depois que entrei na RD, as mais legais que aprendi com a galera da empresa ou fui inspirado por eles foram:

BDD e CI

O desenvolvimento orientado a testes ou Behaviour Driven Development (BDD) é uma das técnicas de programação que mais tranquilizam os finais de semana e as noites de sono de um programador. Na Resultados Digitais fiquei muito feliz com o capricho e a seriedade que é levado o branch master no git do rdstation que tal um exemplo do que seria "levar o master a sério?". Acho que pra quem não trabalha aqui, isso pode não ficar claro -- talvez finalizar o próximo parágrafo dizendo: "e só com os testes passando é que mergeamos com o branch master. Isso é levá-lo a sério". Também temos integração contínua (CI) e isso significa que várias pessoas compartilham o mesmo código e diariamente criam e compartilham novas funcionalidades e alterações.

Dessa forma, para compartilhar essas funcionalidades e progredir com segurança, existe uma bateria de testes que verifica se o funcionamento está conforme o esperado em cada parte do código até a funcionalidade como um todo. Quando uma nova parte é integrada, todos os testes são verificados e se nenhum código quebrou ou teste falhou, podemos saber que o código que está sendo criado está consistente e não corrompe as funcionalidades atuais.

Parece fácil, mas não é. Na prática essa é a primeira equipe que eu trabalho que consegue levar o processo contínuo de forma integrada.

Isso tudo é muito inspirador e só tenho a dizer muito obrigado :)