quinta-feira, 29 de agosto de 2013

Licença para inovar

Você trabalha com ou estuda Desenvolvimento de Software? Se sim, permita-me fazer-lhe algumas perguntas!
  • Quantas vezes na sua vida profissional você inventou uma nova licença de código aberto?
  • Quantos sistemas operacionais você já escreveu?
  • Quantos padrões de projeto você já inventou?
  • Quantas linguagens de programação você já quis criar?

Essas perguntas parecem estranhas ou um pouco exageradas? Vamos a outras, então:
  • Quantos projetos de código aberto você já usou? Quantos deles usavam alguma licença?
  • Quantos sistemas operacionais você já usou?
  • Quantos padrões de projeto você já adotou?
  • Em quantas linguagens você já programou?

Com certeza, usamos mais do que criamos. É o esperado, é assim que funciona... Só que, para a gente usar, alguém tem que criar, certo? Alguém com certeza criou tudo isso um dia, e foi aperfeiçoando, e outros ajudaram etc.

Se você achou aquelas perguntas iniciais exageradas, permita-me fazer mais algumas:
  • Quantos conceitos novos você já inventou que se tornaram padrão na internet? Exemplos: blog, wiki, rede social, fórum, microblog, podcast.

  • Quantos conceitos novos você já inventou que mudaram a maneira de a indústria desenvolver software? Exemplos: orientação a objetos, agilidade, arquiteturas de software, programação paralela, programação funcional.

  • Quantas questões filosóficas você já levantou que abalaram estruturas de pensamento aparentemente sólidas? Exemplos: abertura de código, liberdade para trocar de fornecedor, horário de trabalho flexível, tipagem dinâmica, portabilidade de código-objeto, programação em alto nível (sem ser em código de máquina).

Fiquei com vontade de escrever este post após ler este site que o GitHub fez: http://choosealicense.com/. Ele explica de forma muito fácil e rápida as principais licenças de código aberto existentes, para te ajudar a escolher a que for melhor para você e seu projeto.

Eu sempre quis entender melhor esse lance de licenças! Mas sempre tive preguiça de ler textos imensos para entender isso. Esse site resolveu esse problema de maneira perfeita!!


A publicação de uma informação tão útil dessas, no entanto, talvez não tenha rendido nada ao GitHub (pelo menos, não diretamente). A criação do Linux pelo Linus Torvalds talvez não lhe tenha rendido nada diretamente no dia em que ele fez isso. A invenção da Wikipédia talvez não tenha rendido nada diretamente ao Jimmy Wales no mês em que ele fez isso. E, no entanto, todas essas coisas são muito úteis para nós, direta ou indiretamente. E claro que o Linux e a Wikipédia, depois de um tempo, renderam oportunidades de negócio etc.


Muitas vezes, temos uma ânsia por resultados. Queremos trabalhar hoje e ver alguma coisa acontecendo amanhã. Procuramos nos dedicar àquilo que nos dê dinheiro, glória etc.

Você ouve um músico virtuoso tocando e acha aquilo fenomenal, glorioso... Pessoas piram em guitarristas fritando notas em suas guitarras. Mas, exceto se você realmente tiver um interesse grande no assunto, não vai achar nada de fenomenal em ouvi-los fazendo exercícios chatíssimos de dedilhado horas a fio por dia. Ver é chato, ouvir é mais chato (tem um som irritante) e fazer, então, é mais chato ainda!! (obs.: também vale para piano)

Voltando para nossa área, Desenvolvimento de Software. Você lê sobre um conceito novo mirabolante, que funciona muito bem na prática, e acha aquilo fenomenal. Você vê um código limpíssimo e acha aquilo fenomenal. Você vê um discurso ou palestra extremamente bem proferido(a) e acha aquilo fenomenal.

No entanto, não tem muito de fenomenal em gastar horas a fio estudando assuntos teóricos de Computação, consultando palavrinhas novas no dicionário, acertando cada um dos detalhes de uma palestra, corrigindo todos os detalhezinhos de um material de ensino, revisando um texto de trocentas páginas... Também não dá muito IBOPE ficar dias, semanas, meses ou anos refletindo sobre uma questão filosófica super pequena para, enfim, chegar a uma respostinha meia-boca.

Também não vai te tornar alguém mais popular sair dizendo alguma coisa que vá contra aquilo em que todo mundo acredita. Também não vão te subir de cargo porque você passou a madrugada dedicando-se a um projeto pessoal que não tinha a menor chance de virar algo comercial.


Grandes revoluções são feitas por pessoas apaixonadas pelo que fazem. Isso, todo mundo já sabe. Há até um certo culto a isso.

Uma coisa que nem todo mundo fala é o seguinte: só se sai do lugar saindo-se do lugar. Não é repetindo um monte de CRUD todo dia que você vai melhorar alguma coisa na sua área. Não é repetindo erros administrativos do passado que vamos ter organizações funcionando de maneira eficiente. Não é pregando uma coisa e fazendo o contrário na sua própria vida que vamos inspirar de verdade as pessoas.

Tudo está interligado. Enquanto programas horrorosos da TV tiverem altos índices de audiência, pode esperar desenvolvedores medíocres vindo fazer entrevista na sua empresa. Enquanto pessoas de suposto alto nível intelectual continuarem aceitando conteúdo lixo vindo da TV, do rádio, da internet ou de qualquer outra fonte, pode esperar violência no mundo. Enquanto pessoas mostrarem personalidades completamente diferentes dependendo de se estão com mãe, pai, irmãos, namorada(o) ou chefe, pode continuar esperando desavenças no mundo.

Espere coisas boas acontecendo no mundo quando você começar a rejeitar coisas ruins e passar a exigir coisas boas, vindas das pessoas, da TV, da internet, de você mesmo.


Ao visitar o http://choosealicense.com/, senti-me lisonjeado e grato por alguém ter gasto suas preciosas horas para fazer algo que resolveu meu problema. E, ao mesmo tempo, fico muito triste de pensar que pessoas que, neste exato momento, estão gastando preciosas horas para resolver outros importantes problemas do mundo não estão tendo reconhecimento dos colegas. Os colegas geralmente virão até esta listinha de clichês para selecionar alguns e proferir:
  • Meu, c tá loco?
  • Pra quê c tá fazendo isso?
  • Isso aí é só detalhe, foca no que realmente importa
  • Para de gastar tempo com bobagem
Isso é outra coisa manjada... Todo mundo já ouviu falar que quem provoca mudanças escuta essas coisas. E, mesmo assim, as pessoas continuam dizendo essas coisas! Calma aí... Se o cidadão já sabe que esse tipo de fala é um forte indício de que ele está sendo essa pessoa chata, por que continuar falando?


Outra coisa que as pessoas parecem não entender é que, para subir de nível, é preciso subir de nível. A primeira pergunta que eu fiz no post foi: "Quantas vezes na sua vida você já inventou uma nova licença para código aberto?". Inventar uma licença nova de código aberto, convenhamos, é uma coisa bem alto nível! São necessários muitos anos de estudo e trabalho para se chegar a um entendimento do mundo tal que te mova a fazer isso. Vou imaginar aqui uma possível trajetória de algum inventor de licença:
  1. Aprendeu a programar
  2. Aprendeu a trabalhar em um projeto, integrando programas, configurações, ferramentas etc. para criar uma aplicação
  3. Adquiriu experiência em diversos projetos
  4. Escreveu código reusável
  5. Consertou problemas que apareceram
  6. Reusou
  7. Consertou problemas que apareceram
  8. Abriu o código para os colegas
  9. Consertou problemas que apareceram
  10. Abriu o código para o mundo
  11. Consertou problemas que apareceram
  12. Sentiu necessidade de descrever o que podia e o que não podia ser feito com o código
  13. Inventou uma nova licença
  14. Consertou problemas que apareceram
Não é algo que se faz da noite para o dia. E, no entanto, alguém fez. Muitos fizeram. Antes, não existia nada. Com o tempo, muita gente foi trabalhando para que isso acontecesse. Hoje, é fácil olhar para o mundo e perceber que licenças são importantes. Na época, não era fácil perceber isso. Na época, deviam falar um monte para os primeiros que quiseram fazer isso.

E hoje? Em que pontos as pessoas de hoje estão tentando subir de nível e seus colegas estão olhando torto? Quais são os assuntos negligenciados de hoje que serão os pilares da construção do mundo de amanhã e depois?

E você, hoje? O que tem falado para os seus colegas? O que tem feito de realmente novo para mudar o mundo?
  • Está estudando métodos ágeis? Está atrasado: o Manifesto Ágil foi publicado em 2001. Está estudando e aplicando adoção de métodos ágeis na sua empresa? Aí já é mais interessante...

  • Está estudando programação funcional? Está atrasado: linguagens funcionais começaram nos anos 50. E Haskell, uma das mais moderninhas, existe desde 1990. Está estudando e aplicando adoção de programação funcional na sua empresa? Aí já é mais interessante...

  • Está estudando o que torna um programa fácil de entender, evoluir, modificar? Está atrasado: Uncle Bob fala nisso pelo menos desde o ano 2000. Errado! Estuda-se isso desde que o computador existe. Errado! Filósofos gregos estudam isso desde que o discurso existe. Errado! Humanos das cavernas reparam nisso desde que o diálogo existe.

Veja, não estou reduzindo a importância desses assuntos. Eles são muito importantes, e eu adoro todos eles! Só estou dizendo que considerá-los como inovação é algo a ser feito com cautela. Eu acho que a galera se perde um pouco no entendimento dessa palavra... A meu ver, as coisas REALMENTE inovadoras e revolucionárias nem se tem como dizer direito quais são, pois não as conhecemos. São aquelas coisas que ainda vão surgir, são coisas sobre as quais temos apenas vagas ideias e palpites.

Eu tenho os meus palpites... E tenho investido neles.

E você? Imagino que tenha os seus, também... Está investindo neles? Ou está gastando tempo da sua vida lendo blog dos outros :)? Se estiver, pare com isso e vá para o mundo descobrir e viver aquilo em que acredita!