Minha pequena trajetória no software livre

Este mês completam 10 anos desde que comecei meu curso de “Bacharelado em Informática e Tecnologia da Informação” na UERJ. Para comemorar esta primeira década, vou falar um pouco de uma parte importante da minha carreira: o meu envolvimento com software livre.

O início

Utilizo e advogo a favor do software livre desde aproximadamente 2003, no início da minha carreira profissional. No entanto, só a partir de 2008 que passei a fazer parte de uma comunidade e trabalhar em conjunto com outras pessoas em favor deste ideal. Esta comunidade foi a SL-RJ e a conheci durante o Flisol 2008, evento organizado por alguns amigos logo após a criação do grupo.

Na comunidade

Desde então, eu procuro fazer o que posso para ajudar, sempre buscando mais. Em 2009, eu organizei meu primeiro evento (Flisol 2009) e fiz minha primeira palestra (Gnugraf 2009).

Neste ano estava muito envolvido com a comunidade, mas vi todos aqueles eventos importantes, como FISL e Latinoware, passando e eu não fui em nenhum. Terminei o ano pensando: “Ano que vem eu vou em algum evento grande de software livre!”

Primeiro evento grande

Em 2010, só dei uma palestra (Gnugraf 2010) e não pude ir no FISL. Então, para cumprir minha meta, eu fui ao Latinoware! Gostei muito de estar naquele ambiente cheio de pessoas inteligentes e cheio de amigos (sim, o pessoal do SL-RJ estava em peso lá – como palestrantes!).

Muito destes amigos falaram que eu devia ter mandado uma palestra, mas eu andava com a cabeça muito cheia para pensar nisso e acabou passando. Então submeti uma palestra ao evento FSLDC 2010 que foi aprovada! Infelizmente, fiquei muito gripado no dia anterior e não tive a menor condição de ir ao evento.

Mostrando a cara

Então o ano de 2011 começou com uma nova meta: “fazer mais palestras”. Comecei palestrando em abril no Flisol 2011 e, em seguida, no FSLDC 2011, ambas com a palestra “Integração contínua com software livre” que ia apresentar no FSLDC 2010. Fiquei empolgado e submeti 2 palestras ao FISL. Para a minha total surpresa, uma delas foi aprovada!!!

Assim, acabei indo para o meu segundo evento grande de software livre, mas desta vez como palestrante (que tem regalias, como jantar às custas do Google :P ). No FISL, apresentei a palestra “Android: uma catedral de sucesso” e foi bem legal (até apareceu no site do evento \o/).

Obs.: As apresentações de todas as minhas palestras estão na página Palestras aqui do blog.

Meta cumprida

Estamos pouco além da metade de 2011 e considero minha meta para este ano cumprida. Já mostrei bastante a minha cara e, mesmo assim, ainda tenho 2 palestras marcadas. A primeira será na próxima segunda-feira, no Ciclo de Palestras do Sindpd-RJ, e a outra no sábado seguinte, no II Universidade Livre. Gostaria de poder apresentar em outros eventos, mas o Hack’n Rio está sugando todas as minhas forças e estou preferindo deixar para depois que o evento passar.

Falando em Hack’n Rio, este é um marco importante na minha trajetória no software livre, pois é o maior evento que já organizei. Com dois dias de duração e uma quantidade razoável de patrocinadores, está dando bastante trabalho, mas vai valer a pena.

Futuro

E minha meta para 2012? Com certeza será contribuir como desenvolvedor para alguns projetos. Sinto que preciso dar um passo a mais na carreira e deixar de apenas fazer divulgação. Este ano comecei a dar meus primeiros passos no desenvolvimento de software livre: primeiro com o ORC, iniciado pelo Gabriel Duarte, e depois começando o Barcode-Check-in, que talvez seja usado no Hack’n Rio para fazer o credenciamento dos participantes de forma mais ágil. No entanto, além de criar projetos, quero contribuir com os que já existem e que utilizo.

Se o mundo não acabar em 2012 (:P), espero que daqui a 10 anos eu já seja um desenvolvedor conhecido e respeitado, e tenha como minha principal fonte de renda o software livre. Como sou um cara ansioso, agora estou doido para saber como estarei em 2021!

Manifesto para uma mudança de postura

Recentemente postei na lista de discussão da SL-RJ uma mensagem que gostaria de compartilhar para um número maior de pessoas. A razão para eu escrever este texto foi por um integrante da comunidade escreveu uma frase que já ouvi muitas vezes de diversos ativistas do software livre. A frase (com leves modificações) é:

Vou usar um software proprietário X, porque o software livre Y ainda não está tão bom.

Ler isto novamente me fez pensar e acho que esta postura que estamos acostumados a tomar deveria mudar. Qual postura? Pegar o atalho e deixar de contribuir para o software livre para utilizar um software proprietário.

Antes de você que já falou isto pare de ler, deixo claro que não estou te crucificando e vou deixar isto mais claro ainda durante o texto. Pessoas influentes já disseram isto, então quem sou eu para crucificar alguém?

Antes de continuar, recomendo a leitura do artigo “Software Livre não nasce em árvores: do Colonialismo ao extrativismo digital” do Jomar Silva, porque tem tudo a ver com este conteúdo.

Extrativismo digital

Quem leu o artigo viu que a postura que citei foi chamada pelo Jomar de “extrativista”. O próprio Linus Torvalds, uma das pessoas mais influentes e que mais admiro no mundo, já fez isto. Ele não gostava de nenhuma ferramenta livre de controle de versão e passou a utilizar uma ferramenta proprietária para o Linux: o BitKeeper. No final ele teve problemas de licenciamento com a ferramenta e desenvolveu o Git, o qual fez melhor que o BitKeeper. Mas repare, nesta história toda, que a atitude extrativista não deu certo!

Tá bom, não existe outro Linus Torvalds e o cara é fora de série mesmo… Normalmente as pessoas que pegam este atalho ou não são programadores ou não programam na linguagem em que aquele software foi escrito. Sendo assim, eles não poderiam desenvolver uma solução para atendê-los. Mas será que existe outro caminho?

Relembrando o nosso amor pelo software livre

Eu gosto de software livre por vários motivos:

  1. Não fico preso a fornecedores e suas estratégias de mercado;
  2. A evolução normalmente é muito mais rápida;
  3. Eu posso reutilizar em meus projetos e debugar quando tenho algum problema;
  4. Eu posso consertar e melhorar!

Vale a pena abandonar isto tudo tão rápido?

Qual minha solução “genial”? (É o que muita gente deve ter pensado, né? Joguei pedra, agora ferrou – vou ter que dar uma solução! ;) )

Eu acho que nós, desenvolvedores, poderíamos de fato exercer o 4° ponto que citei. Quando não tivermos conhecimento requerido, podemos apelar para outra solução. Esta solução seria, ao invés de pagar o proprietário, pagar a um desenvolvedor para fazer o que você precisa no software livre!

Você acha isto impossível? Olha que eu conheço um cara que está trabalhando na Globo.com reimplementando partes do software livre Squid! Este cara não teria competência para implementar o que está faltando no seu software? Acho que sim.

Além disso, temos as seguintes vantagens:

  1. Você estará apoiando a economia local e não mandando dinheiro para americanos sacanas que querem te enjaular;
  2. O software ficará mais próximo do que você considera ideal (o próprio Randal Schwartz disse que nem o iPhone nem o MacOS são perfeitos);
  3. Você estará fortalecendo o software livre e mostrando que é um modelo viável e sustentável;
  4. Melhorando o software, é capaz dele se ter mais usuários e receber melhorias mais rápido;
  5. Esta melhoria estará disponível para TODO O MUNDO! Em outras palavras: você estará fazendo um mundo melhor (sem lágrimas, por favor);

Não existe bala de prata

OK, pessoal. Eu sei que nem sempre esta solução será possível, pois pode ser que você tenha restrições de tempo de atendimento a um cliente ou o que precisa ser implementado é muito grande, ou muito complexo, ou demandaria muito mais dinheiro dentre vários outros impeditivos.

Mas gostaria de fazer um apelo a vocês: vamos considerar como primeira opção pagar alguém para desenvolver um software livre! Caso esta opção não seja possível, aí sim, vamos pensar em partir para uma solução proprietária e que vai te enjaular!

Hack’n Rio: inscrições a preços promocionais

Como muitos de vocês devem saber, estou organizando o Hack’n Rio, evento nascido da ideia do Júlio Neves: fazer um grande evento com enfoque técnico. Junto comigo está um grupo de peso acostumado a organizar eventos e apoio jurídico da ONG ALTA.

Logotipo do Hack'n Rio

O grande diferencial do Hack’n Rio é o enfoque técnico e nosso objetivo é que os participantes aprendam bastante durante o evento. Então, nada mais natural do que esperar muitos estudantes interessados no evento, certo? Muitos que estão acostumados com os valores cobrados em outros eventos, devem pensar que um evento deste porte e com duração de 2 dias deve custar caro demais para estudantes, certo? ERRADO!

Durante todo o mês de agosto, os ingressos do Hack’n Rio estarão ao preço promocional de R$ 25,00! Portanto, você tem ainda 2 semanas para fazer sua inscrição e aproveitar a promoção!

Projeto pró-contribuição: uma proposta de estrutura para as comunidades brasileiras de software livre

Muito se tem falado pelos “corredores” das comunidades de software livre a respeito da falta de contribuição dos brasileiros, principalmente com codificação. Um acontecimento marcante para a comunidade do Estado do Rio de Janeiro foi em 2009, quando Jon “Maddog” Hall veio ao FSLDC e disse “vocês já tem fazem bastante divulgação – agora vocês precisam escrever código”.

De fato, se observarmos bem, as contribuições brasileiras para a maioria dos projetos livres são sempre em:

  1. Divulgação;
  2. Tradução do software e da documentação;
  3. Solução de dúvidas;
Apesar de serem importantes contribuições, elas não ajudam tanto para evolução do software. Além disso, acabamos não tirando proveito da melhor coisa que o software livre nos provê: controle sobre o que ele faz. Desta forma, acho que existem dois pontos importantes que podemos melhorar:
  1. Reporte de bugs;
  2. Codificação;

A barreira do idioma

Apesar de estar na moda criticar os brasileiros por não contribuírem, na minha opinião, a maior barreira que existe para os nossos conterrâneos contribuírem em projetos livre é o idioma. Por mais que a maioria dos desenvolvedores de software saibam ler inglês (afinal, a maioria das nossas fontes de consulta está neste idioma), escrever em inglês é muito mais difícil. Isto acaba afastando as pessoas não só da codificação, mas até mesmo usuários comuns de reportarem bugs!

Acho que as comunidades brasileiras tem um papel fundamental para melhorar esta situação, mas, infelizmente, a maioria delas atualmente funciona apenas como “proxies” e filtrando o que pessoalmente não consideram válido.

Por isso comecei a pensar em como poderíamos transpassar esta barreira e com a ajuda das comunidades brasileiras. Cheguei a uma estrutura que gostaria de compartilhar com vocês para que possa ser melhorado e aplicado num projeto real.

Importante: Não espere por uma ideia do outro mundo, pois as ideias que vou apresentar são bem simples :)

Facilitando o reporte de bugs

Antes de mais nada, precisamos entender o ciclo de vida de um bug reportado:

  1. Reporte: quando o usuário notifica ao projeto que percebeu um comportamento errôneo;
  2. Triagem: uma equipe exclusiva que verifica os bugs reportados para ver se eles são válidos, se estão duplicados e se estão com todas as informações necessárias;
  3. Correção: após a triagem, o desenvolvedor terá todas as informações para fazer a correção;

O papel que eu acho que a comunidade brasileira deveria fazer aqui é de participar da equipe de triagem. O usuário brasileiro poderia reportar o bug em português e a equipe de triagem iria fazer a tradução do bug para que qualquer desenvolvedor possa corrigí-lo.

O importante aqui é ter uma forma simples para o usuário sinalizar que ele está reportando em português. O ideal é que a própria ferramenta tenha esta opção ou que possa ser enviado automaticamente dados de idioma do sistema (ou navegador) do usuário. Caso isto não seja possível, deve ser documentado de forma clara como ele deve informar o idioma que está escrevendo.

Facilitando a codificação

Para facilitar a introdução de novos codificadores não fluentes em inglês é interessante que se tenha uma tradução da documentação para desenvolvedores tão boa quanto a tradução da documentação para usuários. Claro que isto não é uma barreira tão grande, já que nós desenvolvedores já estamos acostumados com documentação em inglês, mas qualquer ajuda é bem vinda.

Mais importante do que isto, a comunidade brasileira deve ter uma lista de desenvolvimento própria! Esta lista teriam discussões em português para que as dúvidas possam ser tiradas por todos. Como eu disse, escrever em inglês não é para todos (mesmo para quem lê neste idioma) e uma lista brasileira ajudaria muito a inserir novos desenvolvedores.

No entanto, a primeira providência que deve ser tomada é: as comunidades brasileiras precisam ter desenvolvedores! Caso contrário, quem vai traduzir a documentação técnica? Quem vai responder as dúvidas na lista de discussão? Além disso, existe o efeito cascata – quanto mais codificadores, mais gente vai querer codificar!

Próximos passos

Vou tentar implementar isto em algum projeto e, por consequência, fazer melhorias. Quem quiser contribuir nos comentários, ideias e críticas construtivas são bem vindas.

Eu sou desenvolvedor de software, mas atualmente não codifico para nenhum software livre. Então, assim pretendo começar a contribuir com código, além de criar uma estrutura que torne fácil para qualquer outra pessoa contribuir também, independente do nível de proficiência em inglês.

Meu ZTD: como o Zen To Done está mudando minha vida

Era uma vez, uma pessoa muito desorganizada. Esta pessoa tinha a caixa de e-mail lotada e bagunçada, tentava tocar vários projetos ao mesmo tempo, deixava papéis jogados em todos os lugares e, pior de tudo, dependia de sua memória para se lembrar de quase tudo! O resultado desta bagunça não era todos os projetos realizados com sucesso (apesar de alguns, milagrosamente, serem), mas sim estresse.

Foi então que, no Flisol 2011, do meu amigo Oscar Marques que fez a mudança na minha vida. Sua dica: ZTD.

Eu já havia tentado a metodologia GTD, mas não tive fôlego suficiente e fracassei. Mas o ZTD, com seu foco em mudanças graduais, caiu como uma luva para mim. O resultado final é parecido com o GTD, mas é muito mais fácil de se implementar!

Implementando os hábitos

O primeiro hábito do ZTD é “capture”. Ele diz que você deve escrever tudo e tirar tudo da cabeça. Assim eu fiz. A sensação de alívio por acabar com a “bagunça mental” que vinha sentindo não tem preço. Meu estresse diminuiu, no mínimo, pela metade. Hoje fico pensando por que não fazia antes esta coisa tão simples?

Atualmente estou implementando o segundo hábito: “processe”. Nele você deve manter sempre suas caixas de entrada sempre vazias e processá-las em períodos fixos do dia, até a última mensagem. Implementá-la foi bem mais difícil, pois o meu e-mail era uma zona e cheguei a cogitar pular este hábito e deixando-o para depois. Mas, com ajuda do ActiveInbox, consegui retomar o controle do meu e-mail novamente!

Mudanças na minha vida

Ainda estou no meio da implementação do segundo hábito e já consigo sentir as mudanças.

  1. Não esqueço de mais nada importante, porque está tudo escrito;
  2. minha cabeça está mais leve e livre para pensar em coisas mais importantes do que “tenho que lembrar de ir na farmácia hoje”;
  3. minha caixa de e-mail está trabalhando ao meu favor e me deixa mais confiante para tocar os meus projetos, como o Hack’n Rio.

Mensagem para quem não se interessa pelo assunto

Sei que este artigo foi totalmente diferente do que eu costumo escrever no blog e podem ter pessoas querem ler sobre isto. Se você é uma delas, não precisa descadastrar o RSS do seu leitor ou remover a inscrição por e-mail! Vou continuar escrevendo sobre os assuntos de sempre, mas certamente haverão mais artigos sobre a minha implementação do ZTD. Nestes artigos, vou manter um padrão do título sempre começar com ”Meu ZTD:”. Sendo assim, se você não se interessar, pode simplesmente descartar o post de cara e minha tentativa de ficar mais produtivo não vai atrapalhar a produtividade de ninguém :)

Links interessantes