Sobre jedis, ninjas e samurais

January 8th, 2011 § 14 comments § permalink

Geeks de todos os tipos adoram se colocarem como os equivalentes tecnológicos de alguma sociedade guerreira–real ou imaginada–que exiba uma quantidade excessiva de coolness no dia-a-dia. Eu não posso culpar ninguém que faz isso porque eu também já fiz a mesma coisa muitas vezes.

É claro, eu nunca gostei tanto de Star Wars. Sendo um fã de Star Trek, eu sempre considerei Star Wars como algo que você superava quando crescia–bom para crianças, mas não para muito além disso (por favor, sem ameaças de morte, estou brincando–bem, nem tanto assim). Star Wars é fantasia e Star Trek é ciência. Claro, os Jedi são muito mais legais e eu preferiria andar com um sabre de luz do que com um phaser mas me dê um torpedo quântico qualquer dia ao invés de qualquer arma do Império ou da República.

E há sempre os samurais–aquela velha escola, valorosa, sempre envolvida em negócios por conta de honra, muitas vezes sem qualquer esperança de sucesso. De Seven Samurai a The Last Samurai–e não dá para esquecer os livros do Eiji Yoshikawa–nós ocidentais sempre admiramos a forma como esses guerreiros japoneses se conduziam, considerando o seu Caminho do Guerreiro como algo a aspirar.

Finalmente, há também os ninjas ou shinobi. Não muito populares hoje em dia, mas houve um tempo em que eram a febre entre a população mais jovem. Como os samurais, a arte deles também era baseada em princípios de honra e dever–embora, no seu auge, eles fosse mais equivalentes a guerrilhas ou equipes Black Ops do que o modelo mais Special Forces dos samurais.

Mas uma coisa que todas ordens tem em comum é que elas eram bem monásticas, baseadas em códigos estritos sobre como proceder, treinamentos estritos ao longo dos anos e especialmente, disciplina–em muitos casos, com o peso da honra coibindo qualquer relação além da com os companheiros de armas.

Como geeks geralmente gostamos de nos comparar essas ordens porque elas são, bem, fascinantes, e sempre estavam fazendo coisas além no normal, com seus procedimentos arcanos para lidar com situações acima do que uma pessoa normal poderia encontrar.

Mas há algo que é sempre esquecido sobre essas ordens–como mencionado acima, elas eram primariamente e acima de tudo sobre disciplina; sobre um modo de vida ordenado que permitia com que a pessoa se concentrasse no que realmente importava. Tanto o treinamento histórico e real dos samurais e shinobi quanto o imaginado, inspirado pelos anteriores, dos Jedi exigia um compromisso com a disciplina que supera qualquer outra coisa que a pessoa precisaria fazer no curso de sua existência como membro dessas ordens. E, acima de tudo, requeria compromissos entre o possível e desejado e o necessário.

O que me traz ao meu ponto.

Nos últimos quatro ou cinco anos, eu fui parte de quase dez times diferentes. Já vi equipes sucederem a falharam, se recuperaram e continuarem, se unirem e se tornaram grandes, acabarem e seguir com suas vidas. Em resumo, fui parte de um número enorme de situações em que pude participar ou observar como times interagem e fazem as coisas acontecerem.

E em todos esses anos, uma das coisas mais importantes que separou os times ruins ou medianos dos grandes times foi a disciplina, que geralmente a parte mais desprezada nos exemplos que os fãs desses grupos tentam emular quando escolhem seus heróis.

É um tanto irônico que pessoas professem gostar tanto de metodologias ágeis porque estas criam ordem do caos através de times auto-gerenciáveis–times que não precisam de muita direção para fazer e acontecer, times que não precisam ser monitorados continuamente para garantir que estão indo na direção certa–esqueçam de que gerar ordem do caos exige disciplina.

A verdade é que agilidade em times só acontecem naqueles que são disciplinados e que entendem o que se ganha e o que se perde quando um projeto tem que ser cumprido. Sim, agilidade tem tudo a ver com encarar mudanças mas isso só significa que você tem que conseguir trabalhar muito bem com seus pares e com a organização como tudo–entendendo o que está mudando e quais são os meio-termos a serem alcançados–para realizar seus objetivos. Mudança sem contexto, sem disciplina, só gera caos. E isso é que muitos parecem esquecer quando se encantam com o Scrum e suas disciplinas irmãs.

Eu estava falando com um amigo outro dia e estávamos discutindo o fato de que muitos programadores usam a desculpa do ADD para procrastinarem ou para justificar distrações. Geeks, ele estava dizendo, são notórios pela sua baixa capacidade de atenção.

Eu acho–e disse para ele–que o contrário é o correto. Os verdadeiros geeks são disciplinados o suficiente para manter o seu foco e continuar no que estão fazendo a despeito das distrações. Você precisa ser muito focado se quer depurar aquele heisenbug que está mantendo você acordado nas últimas 40 horas, fazendo com que seu servidor capote a cada hora e meia. Você precisa de disciplina para continuar afundando na documentação, indo e voltando para encontrar aquela informação elusiva de permitirá que você otimize a sua rotina para que ela rode em massas de dados enormes. E você precisa de um senso forte de direção para participar de um time sem controle gerencial direto em um ambiente que está mudando continuamente.

Em resumo, disciplina é o que separa os diletantes dos artesãos. É que faz as coisas acontecerem e que realmente cria grandes times. Não quer dizer que você tenha que ser um mala sobre horários, procedimentos ou qualquer coisa assim. Não significa que você não possa se divertir ou que tenha que seguir passos ordenados toda vez que vai fazer alguma coisa. Mas significa que você tem que praticar e pensar e se focar até que isso se torna uma segunda natureza, até que você se torne um mestre no que está fazendo.

E isso é o que ninjas e samurais e Jedi fazem. Eles não param, não correm quando a proverbial situação fica preta. Eles–você sabe–simplesmente vão lá e fazem, e fazem bem.

Mirror

November 28th, 2009 § 1 comment § permalink

Hoje, sábado de sol, está acontecendo o Dev In Sampa, um evento de desenvolvedores para desenvolvedores. Se você não conseguiu participar por algum motivo, pode acompanhar um pouco pelo livestream do evento–as palestras estão excelentes. Mas não se preocupe, as palestras estão sendo filmadas também e serão disponibilizadas após o evento.

Eu participei falando sobre a criação de linguagens de programação e para os que já querem ver alguma coisa, segue abaixo a apresentação do SlideShare:

O repositório da toy language que eu criei para demonstração já está disponível também no GitHub. Só não espere muito do código já que ele foi produzido em pouco tempo em madrugadas disponíveis. :)

Para o resto, a caixa de comentários está aberta. :)

Joie de Vivre

June 4th, 2009 § 6 comments § permalink

Alguns anos atrás, trabalhei por alguns meses em uma empresa pequena–quatro funcionários na época–fazendo aplicações corporativas em PHP. Eu estava cansado de programar em ASP e queria espairecer um pouco em outras arenas.

Infelizmente, a alegria durou pouco. Por várias razões–falta de planejamento, dificuldade em conseguir recursos, falta de pessoal qualificado, etc–a empresa não vingou. Na época, meio do primeiro governo Lula, isso não era tão fora do comum mas faltou também uma pitada de sensatez de todo mundo para lidar com a situação. O meu tempo lá não foi de todo perdido. Rendeu boas estórias e duas amizades queridas que ainda preservo mesmo com a distância.

Por outro lado, foi a única vez em que pedi demissão em ira. Ira por planos que não chegavam a lugar nenhum. Ira por promessas não cumpridas. Ira por várias outras razões que na época pareciam bem válidas. Parti para outra, mas carregando aquele peso comigo de assunto não resolvido.

Demorou muito tempo para perceber que, na verdade, a minha ira não derivava dos problemas que eu percebia na empresa. Ao contrário, vinha de um sentimento de que faltava joie de vivre no ambiente de trabalho.

E joie de vivre –em uma tradução direta e meia-boca, alegria de viver–era algo que eu sentia mais falta no intercâmbio com meus pares de desenvolvimento do que em relação à própria empresa. Como em outras empresas que trabalhei desde então, a sensação de que os desenvolvedores ao meu lado não experimentavam isso era a parte mais terrível de qualquer situação. Eu, que sempre tive um pé no mundo livre, em projetos paralelos, conseguia derivar isso mesmo na ausência de outros fatores.

Não é de se estranhar, por exemplo, que o grande selling point do Rails tenha sido o fato de que ele devolvia ao programador a alegria de desenvolver. O Rails não se tornou um dos frameworks mais bem-sucedidos de todos os tempos por causa de suas proezas técnicas. Ruby mais Rails se tornaram um combinação imbatível em trazer joie de vivre aos desenvolvedores.

Não há nada que compre joie de vivre . É algo que só você pode conseguir e somente em certas circunstâncias. Não dá para construir nem criar, exceto por prover [condições apropriadas para que ele aconteça][1]. E como eu queria que outros pudessem experimentar isso também. Pena que quase nunca seja o caso nos ambientes que temos.

[1]: http://logbr.reflectivesurface.com/2009/04/22/a-pobreza-das-conexoes/

Reduzindo o excesso de informações

October 19th, 2008 § 7 comments § permalink

Durante o Rails Summit ’08, vários dos palestrantes tocaram em um ponto que me chamou bastante a atenção: o tempo perdido com as várias ferramentas online que usamos como RSS, Twitter, IM e outros.

Com a movimentação pesada aqui na WebCo, nos últimos meses, o Twitter era algo que eu tinha praticamente abandonado, carregando apenas ocasionalmente para ver uma coisa ou outra referenciada pelo pessoal durante o dia. IM é algo que, felizmente, nunca usei tanto e passo a maior parte do dia sem mais do que uma conversa ocasional.

Já o RSS, nem de longe. Olhando a parte de Trends no Google Reader, fiquei meio que abismado com os números: mais de 230 subscrições, 250 textos lidos por dia, em alguns dias superando até isso. Obviamente, para “ler” isso tudo eu apenas corro o olho sobre a maioria dos títulos.

Mesmo assim, como os palestrantes acima comentaram, isso acaba sendo uma enorme perda de tempo que poderia estar sendo dedicada a coisas mais interessantes. A mesma seção de Trends apontou que a maior parte da minha leitura é feita antes do começo do dia de trabalho propriamente dita e no período de dez da noite à uma da manhã. No mínimo, sono perdido que não dá para recuperar.

Depois de ficar meio encafifado com a coisa toda, resolvi fazer uma limpeza geral do Google. A primeira coisa foi limar mais de 130 feeds que não leio mais por um motivo ou outro. O segundo passo foi modificar a forma de categorização dos feeds: removi toda a categorização antiga e dividi o que sobrou em quatro novas categorias de prioridade: blogs para leitura diária, blogs para ler nos momentos vagos ao longo do dia se houverem, blogs para leitura semana, e o restante deixei em uma lista de leituras ocasionais.

Obviamente, isso tudo só vai funcionar se eu seguir a priorização. Caso não dê certo, há sempre a possibilidade de simplesmente deixar a leitura completa somente para os fins de semana. Mas considerado que apenas uns poucos blogs estão na leitura diária (e não são pessoas que postam diariamente) e que menos do que uma dúzia estão na próxima categoria, acho que dá para gerenciar.

Eventualmente, conto se deu resultado ou não.

A experiência NetMovies

September 24th, 2008 § 101 comments § permalink

Hoje congelei minha assinatura do NetMovies depois de quase três meses de uso. O serviço é tolerável, mas não estava valendo tanto a pena nem no modo mais básico.

No interesse da clareza, devo dizer que recebi um código de acesso para experimentar o serviço por dois meses gratuitamente como parte de uma iniciativa dirigida a blogueiros. Entretanto, por causa da minha mudança para São Paulo e subseqüente peregrinação pelo mundo dos flats até encontrar um local definitivo, acabei não usando o código. Portanto, paguei os três meses nos quais utilizei o serviço.

A NetMovies, salvo engano, é o único é um serviço brasileiro que aluga filmes por assinatura, permitindo que a pessoa faça a decisão de quando quer assistir o filme e quando quer devolver. Esse é um ponto extremamente positivo para o serviço, principalmente no mundo moderno das locadoras que dificilmente deixam que você fique com o mesmo filme por mais do que um ou dois dias–em alguns casos, não importando nem a quantidade de filmes que você leva. O serviço é modelado na NetFlix, obviamente, e chega perto do que o serviço americano fornece mas ainda falta muita coisa para chegar a um serviço completo.

Um segundo ponto positivo é a disponibilidade de títulos mais antigos, raros de se encontrar em locadoras de bairro. Isso, aliado a uma boa disponibilidade de séries de televisão, tornam o serviço bem atrativo a cinéfilos de carteirinha, que gostam de variar o que vêem.

Finalmente, um outro ponto positivo é a cobertura, que bate qualquer outro serviço parecido na área. Além de estar disponível em várias cidades, a cobertura dentro das próprias cidades é bem significativa.

Dito, isso, vários motivos me levaram a abandonar a NetMovies e voltar para a locadora do quarteirão ao lado.

O primeiro é que por sorte ou coincidência, eu sempre morei em locais onde a locadora era bem servida. Tanto em Belo Horizonte como aqui em São Paulo, a locadora mais perto de casa mantém um estoque consideravelmente maior do que as concorrentes, o que torna a decisão mais fácil. Apesar do que a NetMovies anuncia, o processo de selecionar e receber o próximo filme não é tão ágil quando parece. Como o próximo filme pode chegar em qualquer horário do dia e você precisa pedir a troca até quatro horas da tarde para que ele chegue no próximo dia disponível, o mais comum é que dois dias sejam perdidos mesmo se você viu o filme do mesmo dia.

Para dar um desconto, esse é um balanço delicado entre quem vê mais filmes e quem não precisa de tantos. Mas é algo que acaba frustrando quem acredita que o serviço pode realmente fornecer vinte dois filmes em um mês no plano básico. Pode até funcionar, mas isso geralmente implica pedir o próximo filme antes que você tenha visto o anterior.

O segundo ponto que me incomodou foi a falta de disponibilidade de filmes mais recentes. Qualquer filme lançado nos últimos três meses aparentemente possui tão poucas cópias que está sempre na espera longa. Eventualmente o filme aparece, mas demora tanto que a sensação de satisfação é diminuída consideravelmente.

Isso leva ao terceiro ponto que é a impossibilidade de visualizar a sua posição na fila de espera. O máximo que aparece é se a espera é curta, média ou longa. Os termos não são qualificados e é impossível saber quando você vai receber o filme. O ideal seria mostrar o seu posicionamento na fila e garantir que você nunca suba posições. Não sei como o algoritmo funciona–pode ser que isso já aconteça–mas a visualização seria fundamental para dar a sensação de avanço.

O quarto ponto foi a questão de mudanças abruptas nos filmes enviados. Algumas vezes, dois filmes com disponibilidade imediata estavam em uma certa ordem mas a mesma não foi cumprida. Isso entra no ponto anterior de falta de visualização adequada da fila: o provável é que para o primeiro filme eu estava em segundo lugar ou coisa assim e sem ver essa posição a impressão é que houve uma mudança.

Um quinto ponto é a inexistência de pró-rata na mudança de planos. Se você pede uma mudança, ela é efetuada imediatamente com cobrança completa do novo valor sem considerar o dia do mês em que se está. Isso é algo ridiculamente simples de resolver mas que desanima qualquer pessoa querendo experimentar um plano maior.

Finalmente, o site não funciona bem no Safari. Funciona, mas com alguns acidentes de percurso que dão a impressão de que algo está errado na manipulação Ajax, o que, conseqüentemente, gera uma experiência ruim de navegação.

No geral, a NetMovies é um serviço que eu gostaria de manter assinado. Mas a quantidade de problemas supera a quantidade de vantagens e prefiro esperar por eventuais mudanças. Na esperança que ocorram, eu congelei a minha assinatura. Espero ter oportunidade de revivê-la em algum ponto.

O peixe e o advogado

June 17th, 2008 § 1 comment § permalink

Receita para o sucesso:

  • Um ambiente agradável
  • Um peixe ruim
  • Um preço caro
  • Um texto bem escrito
  • Um advogado sem noção nenhuma
  • Cento e cinqüenta e dois comentários e contando

Misture tudo e sirva um tiro no pé de tamanho Pagerank 7. O filme queimado, é claro, não tem preço.

A bela, a fera, e o geek

June 1st, 2008 § 1 comment § permalink

Esse fim de semana, levamos o filhote para assistir uma montagem teatral do clássico A Bela e a Fera. Foi a primeira experiência dele com teatro e foi muito legal: o bichinho ficou grudado nos acontecimentos durante o espetáculo inteiro sem se distrair por um segundo sequer. Houve momentos em que ele quase pulou para o banco da frente de tão vidrado que ficou.

Eu também gostei muito do elenco. Os atores estavam bem confortáveis e se mantiveram fiéis ao clássico mas adicionando algumas coisas um pouco mais modernas que passam despercebidas para as crianças e que são legais para os pais. Aliás, nesse sentido, o ponto alto da peça foi quando o candelabro me solta um #prontofalei no meio de uma frase. O Netto–nossas famílias estavam juntas–e eu nos entreolhamos e soltamos uma gargalhada. Mais geek que isso não tinha como.

Gerundismos e outras “involuções”

May 25th, 2008 § 5 comments § permalink

Eu confesso que detesto o dito cujo do Gerundismo. “Eu vou estar” qualquer coisa soa feio aos ouvidos, não expressa claramente a idéia em questão e dá a aparência de um desleixo com o idioma falado.

Ainda assim, eu não tenho quase nenhuma dúvida de que em dez ou quinze anos o gerundismo estará tão formalizado em nossa gramática como a hoje quase esquecida transição do “Vossa mercê” para “Você”. Da mesma forma que o “tu” está mudando em várias regiões do país, o gerundismo é só mais um fenômeno lingüístico que se transformará pouco a pouco em algo aceito e que eventualmente ganhará suas próprias regras e aplicações.

Na linha do “você”, uma outra coisa que eu tenho notado é o uso de “agente” ao invés de “a gente”. Ainda não vi, é claro, em linguagem formal–e duvido que veja tão cedo–mas é algo que está aparecendo bastante.

Eu não me importo, mesmo sendo um fã confesso de Letras. Algo que eu acho fantástico em qualquer idioma é a capacidade de mudança que os mesmos possuem, sua adaptabilidade de refletir as necessidades de seus usuários primários. Quem acha que o idioma é feito pelos cultos e literatos não entende nada do assunto.

De qualquer forma, eu vou estar me preocupando bem pouco com isso nos próximos anos. :-)

Multidões

May 10th, 2008 § 8 comments § permalink

Eu me empolguei com computadores na primeira vez em que ouvir falar sobre eles. A possibilidade de comandar uma máquina, fazê-la executar o que eu queria e isso muito mais rápido do que qualquer coisa que eu poderia fazer manualmente era uma coisa saída das páginas de um livro de ficção científica–que, é claro, eu sempre li aos montes.

Minha primeira linguagem foi o Pascal. Eu tive a sorte de pular o Basic e partir direto para um linguagem mais poderosa, mais estruturada. Eu ainda me lembro da sensação de completar um programa particularmente complexo que implementava não só sua própria funcionalidade (um espécie de Paint que era requerido para o trabalho final de programação), como também toda uma família de objetos para interface gráfica com um loop de processamento de mensagens, controle de hardware. Esse era um código que ainda queria ter.

Poucos anos mais tarde eu estava programando na versão mais evoluída do Pascal, o Delphi. Eu já passara então por C, C++, Visual Basic (que me empolgou pela parte visual, é claro, mas cuja linguagem conseguia me irritar nos mínimos detalhes), e já tivera o meu primeiro contato com o mítico Lisp. Foram bons anos com Delphi, dos quais, ironicamente, só saíram três aplicações puramente desktop. Todos os demais anos que eu gastei com o Delphi foram em desenvolvimento Web. Eu perdi a conta de quantos ORM implementei, de quantos frameworks Web, bibliotecas e serviços construí. Foi uma época de aprendizado enorme.

Desde então eu já passei por dezenas de linguagens. Algumas profissionalmente, outras pelo mero prazer de descobrir uma sintaxe nova e ver o que há de interessante. Eu ainda não encontrei uma linguagem que não possui uma característica que a redimisse. Mesmo em linguagens que eu jamais usaria hoje para implementar um projeto a menos que fosse um requisito obrigatório passado pelo cliente, eu encontrei algo de interessante. Pode ser que o resto da linguagem tenha sido descartável, mas alguma coisa sempre era suficiente para justificar a existência da linguagem.

Smalltalk foi a linguagem que mais me fascinou. Foram anos antes que eu publicasse alguma coisa real na mesma, mas eu sempre experimentei com o que havia de interessante. Seaside, no mundo Web, ainda representa para mim o ideal de um framework Web atual.

Linguagens são arte. E arte é algo inteiramente subjetivo no aspecto de gosto e preferências. Mas linguagens também são ferramentas. E para isso, nada melhor do que pragmatismo. Mas a combinação dos dois pode produzir resultados fascinantes.

Eu sustento minhas próprias escolhas, entretanto. Eu não preciso de validação externa para entender o que é interessante e o que deixa de ser interessante. Eu acolho novos pontos de vista, e gosto de entender o que os outros vêem. E eu também tenho preferências. Elas mudarão e eu não me preocupo com isso. Há beleza em qualquer lugar–em última instância, programação também é religião.

O presente do presente

May 6th, 2008 § 4 comments § permalink

Há pouco mais de um mês e meio cheguei em São Paulo para o início de uma aventura. Foi uma mudança em todos os sentidos: de uma cidade grande para uma cidade enorme; de um mercado corporativo, fechado para um mercado genérico, aberto; de uma empresa pequena para uma empresa cujos alvos são muito maiores e mais amplos.

Ainda não concluí o processo de mudança, mas esse está sendo sem dúvida um dos períodos mais empolgantes da minha carreira. Trabalhar no Brasigo tem sido uma experiência fascinante em múltiplos níveis. Fazia tempo que a pergunta “e eu ainda sou pago para fazer isso?” não me ocorria.

Voltar a trabalhar em equipe foi uma das coisas que só percebi como tinha sentido falta até estar no meio da galera. Contribuir para um produto e aprender zilhões de coisas novas–não só profissionalmente, mas pessoalmente–é algo que só um ambiente muito bom pode proporcionar. Poder trabalhar e se divertir, em um local bacana de passar as horas de trabalho é algo que não tem preço. Tem o fato que a equipe não vê a hora em que vou soltar uma palavrão, mas isso é algo em que vai ter que rolar um desapontamento básico. :-)

Mas também, como não fica empolgado: Rails, Wii, Scrum, conversas cabeça no meio do trabalho, BDD, arquitetura de produtos legais, hard-core programming, experimentos malucos, chefe desencanado, e até mesmo a cidade que não para e onde sempre tem alguma coisa interessante para fazer.

Bem, deu para perceber que eu estou gostando da mudança, mesmo com as confusões de arrumar local para morar e trazer a família. E, para não perder a oportunidade, estamos procurando mais gente para a equipe. Gente boa é sempre bem-vinda. :-)

Where Am I?

You are currently browsing the Coisas de Geek category at Superfície Reflexiva.