Página Inicial > Ruby, TDD > Entrevista com Fabio Akita

Entrevista com Fabio Akita

Geralmente o entrevistado em questão é que faz as entrevistas, mas dessa vez ele fez o papel inverso.

O blogueiro, programador e evangelizador de Ruby e Ruby on Rails fala sobre:

  • Adoção de Ruby on Rails no Brasil
  • O futuro próximo do Ruby e do Rails
  • Ruby on Rails em grandes corporações
  • O melhor ambiente para um equipe de desenvolvimento
  • Sua rotina de estudo e absorção de conhecimento
  • Os atrativos do Ruby para programadores de outras linguagens
  • Dicas para quem está começando com Ruby

Fabio Akita é um conhecido blogueiro e evangelista da comunidade Ruby on Rails
e Agile. Foi Gerente de Projetos na Locaweb, onde também fez parceria na concepção da conferência anual Rails Summit. Já trabalhou como Brazil Rails Practice Manager para a consultoria americana Surgeworks LLC. Antes disso era consultor de integração e desenvolvimento no mundo SAP. Tem mais de 10 anos
de experiência nas áreas de desenvolvimento de software e gestão de projetos.

Atualmente ele mantém os seguintes blogs:

-

Prodis: Quando se engajou no caminho de evangelizar Ruby on Rails, você imaginava a adoção de Rails no Brasil como está hoje? Você se sente realizado com os resultados que conseguiu?

Fabio Akita: Não, não imaginava. Claro, gostaria que tivesse crescido muito mais, mas dadas as circunstâncias do nosso país, acho que a comunidade foi bastante resiliente e persistente, o que foi muito bom. Eu gosto muito da comunidade que se juntou ao redor de Rails e sim, estou bastante contente com o que conquistamos até agora.
-

Prodis: O que você acha que vem pela frente com as grandes mudanças e aprimoramentos do Ruby on Rails 3.0 + Ruby 1.9? O que você espera desse grande passo que o Rails está dando?

Fabio Akita: É um passo natural, tanto o Ruby 1.8 quanto o Rails 2.3 já estão mostrando sua “idade”. O lançamento do Ruby 1.9.2 e Rails 3.0 limpa o ambiente e força a comunidade e levar seus projetos um passo à frente. A comunidade Ruby não é de ficar parada, então em poucos meses a maior parte dos projetos mais importantes já deve se tornar compatível e até o ano que vem projetos novos já devem começar inteiramente nas novas plataformas. Isso trás mais performance de graça pra nós e oferece mais oportunidades de integração e extensão do framework. Será legal.
-

Prodis: Atualmente muitas grandes corporações no Brasil utilizam o modelo Waterfall de desenvolvimento de software. Você imagina que seja possível a adoção do Rails por essas grandes corporações sem utilizarem Metodologias Ágeis ou o desenvolvimento em Rails está intimamente ligado à cultura ágil?

Fabio Akita: A solução nunca é tecnologia e nem metodologia. Particularmente eu não consigo imaginar grandes corporações adotando agilidade nem se elas quisessem. Não se trata de implementar procedimentos e rituais, isso não é ser ágil. Um programador só é sênior se, independente de onde trabalha, ele já segue as disciplinas de engenharia ágil, como TDD, code review, integração contínua, etc, mas mais do que isso: ele entende “porque” elas são necessárias, quando devem ser usadas, e se importa com elas.

A mesma coisa com tecnologia: um programador sênior saberá tirar muita vantagem dela, mas um programador que apenas segue procedimentos, nunca vai entender quais são as vantagens. E por consequência uma grande corporação - que se importa mais com o preço da hora do que com a qualidade dos profissionais - nunca vai conseguir realmente tirar vantagem de quaisquer novas tecnologias e técnicas, incluindo Rails, incluindo Ágil.

Rails não exige ágil, mas software de qualidade exige as técnicas de engenharia do mundo Ágil, por consequência, projetos Rails de qualidade vão exigir as mesmas técnicas.
-

Prodis: Com sua experiência em desenvolvimento e liderança, qual o seria o ambiente ideal para execução de um projeto de curto/médio prazo? Equipe no mesmo local ou home office, pareamento ou não, programadores sêniors ou diversos níveis de conhecimento?

Fabio Akita: Não existe ambiente ideal. A somatória de todos os fatores que compõe qualquer projeto são tantas e tão granulares que não dá para reduzir a poucos elementos. Vai desde o objetivo final do projeto, até o objetivo pessoal de cada indivíduo do grupo, até se a cadeira é confortável.

Mas se me perguntarem minha preferência, com certeza, eu prefiro uma equipe toda de sêniores. Foi assim que entreguei os melhores projetos até agora. Não importa as metodologias, sêniores não precisam delas porque as técnicas já estão incorporadas. Sêniores não são os que “cospem código”, são os que se “importam com o código”. Não é preciso discutir com um sênior se precisa de um repositório de código. É como perguntar pra um motorista se precisa de cinto de segurança. Rituais não fazem sentido nessa etapa, pulamos as cerimônias e vamos direto ao ponto. Mas cuidado: ser um sênior não é nem de longe simplesmente ter “muitos anos de casa”, mas sim muitos “anos de prática real”, fazendo muitas coisas muito diferentes - quem fez 10 anos a mesma coisa não é um sênior, é um júnior de 10 anos.

Se o projeto permitir, é sempre bom colocar alguns júniores como “sombra” de alguns sêniores. Não adianta colocar a metodologia que for: o código de um júnior sempre será pior porque ele ainda não teve oportunidades para praticar. É como qualquer esporte: se o jogador pisou pela primeira vez num campo de futebol, não dá pra esperar que faça gol. Portanto se a empresa preza por seus funcionários ela precisa entender que júniores vão precisar de mais espaço por um período de 1, ou 2 anos de muita prática em diferentes tipos de projetos e sempre acompanhados por sêniores. Ou seja, é um investimento e nunca uma economia de custos. Se o fator for puramente econômico de curto prazo, não faz sentido ter júniores.
-

Prodis: Em um post do seu blog de 2007 “Off Topic: Seja Arrogante!” você fala, entre outras coisas, como aprendia as coisas sozinho sendo pró-ativo e aproveitando seu tempo livre. Conte-nos um pouco sobre sua rotina atual de estudo e absorção de conhecimento. Tem gente que até brinca dizendo que você não dorme, fica programando, lendo ou escrevendo movido a RedBull.

Fabio Akita: Não é brincadeira, eu não durmo mesmo :-) Mas pra esclarecer: não, pra estudar muito não precisa deixar de dormir, isso é excentricidade minha mesmo.

Por mais que se fale em organização pessoal, disciplina e tudo mais, ninguém é 100% disciplinado o tempo todo. Eu particularmente divago bastante, e mudo o foco o tempo todo de assunto pra assunto. Tudo vai depender do que eu acabei de ler ou com quem acabei de falar.

Minha fonte principal de informações diárias é meu Google Reader. De lá eu passo o olho em cerca de 1000 posts por dia. Desses eu devo selecionar para ler cerca de 1 dúzia de artigos. Finalmente 1 ou 2 realmente eu páro para destilar mais a sério. Isso não é uma regra, apenas uma constatação. Dependendo do artigo, ele vai me levar a outras leituras para aprofundar, daí vai desde outros sites, até wikipedia, até a Amazon pra comprar algum livro.

Por exemplo, escrevi recentemente no meu blog uma constatação de que o mercado de apps pra iPhone/iPad vai crescer muito. Logo em seguida comprei os livros de Objective C e Cocoa Programming da O’Reilly em formato eBook e já coloquei no meu iPad. Fui para Salvador dar palestra lendo metade de um deles.

E todo tempo em que não estou no computador é “perdido” pra mim, por exemplo, quando eu preciso sair de carro para ir ao trabalho ou coisa parecida. Meia hora de carro todos os dias pra ir e voltar é 1 hora por dia jogada fora. É o tempo ideal pra carregar meu iPhone com audiobooks e ler nesse período. “Li” (escutei) dezenas de livros dessa forma.

Além disso precisa existir tempo pra networking. Ir em eventos, participar de comunidades, grupos, nem que seja para um simples happy hour. Muitas idéias saem dali e que depois viram temas pra eu continuar estudando ou perseguindo de alguma forma. Sozinho só dá para ir até um certo ponto. Com outras pessoas dá para extrapolar isso, e é importante se acostumar a participar mais de grupos de pessoas.

Mas como falei, eu divago. Ainda estou começando nos estudos de Objective C, mas li um artigo sobre Scala que me deixou curioso pra ir mais a fundo em Scala, e lá vou eu começar outra coisa. A parte difícil é ir até o fim mesmo em algum dos assuntos, e isso eu também não sou perfeito. Muita coisa eu começo e vai ficando pra trás, meses depois eu retomo e vai indo. Não é uma receita de bolo, vai depender muito das circunstâncias, da vontade, das tendências, etc. O importante é começar, como vai acabar é consequência.
-

Prodis: Tenho notado que muitos programadores bons (eu disse bons) de Java e/ou .NET e que experimentam Ruby não querem mais voltar a programar na antiga linguagem. Na sua opinião, qual é o grande atrativo e diferencial do Ruby que faz com que programadores experientes dessas plataformas se interessem cada vez mais pelo Ruby?

Fabio Akita: Isso é uma hipérbole :-) Ruby é uma linguagem de mais alto nível que Java ou .NET. Por consequência, o nível de abstração é muito maior, o que diminui consideravelmente muitas burocracias e cerimônias. Mas isso é verdade para quaisquer outras linguagens de alto nível vs. as de baixo nível. Java era mais alto nível que C. C# é um pouco mais algo nível que Java (a linguagem). Python, Perl, Javascript são tão alto nível quanto Ruby - onde a discussão é mais em “estilos”. Alto nível sempre será mais agradável para alguns tipos de projetos do que os de baixo nível, é um fato da programação. Fazer aplicativos Web com Java é tão tedioso quanto se fosse usar C/C++. Por outro lado não dá para fazer drives de hardware com Ruby, daí preciso de C/C++.

Tipagem dinâmica, envio de mensagens para objetos, blocos de código encapsulados em objetos, só isso tornaria qualquer uma dessas linguagens mais “amigáveis”. Scala é algo parecido: a grosso modo, um Java menos burocrático. Mas ver somente as partes não é suficiente, o pacote todo do Ruby é muito simples e elegante, por isso é difícil largar. Mas ele não é perfeito, assim como nenhuma linguagem. É necessário - e obrigatório - aprender outras linguagens e inclusive não abandonar nem Java e nem C#. Algumas coisas só fazem sentido nessas linguagens.
-

Prodis: E para quem está começando agora com Ruby e Ruby on Rails, sejam vindos de outras linguagens ou como primeira linguagem, qual o conselho que você dá?

Fabio Akita: Entrem na comunidade, acompanhem as listas de discussão, leiam os blogs dos principais Rubistas, encontrem os projetos open source mais discutidos, baixe os códigos, comece a dissecá-los. Isso muito antes de você pensar em escrever seu primeiro programa do zero: vai demorar muito mais tempo se não fizer dessa forma. Livros, Cursos, Tutoriais, Screencasts, tudo ajuda, mas não são completos sem contexto e contexto você consegue só se inteirando e investindo seu tempo pessoal na comunidade. Novamente, não tem receita de bolo: algumas pessoas tem mais facilidade do que outras, e isso é um fato também.
-

Prodis: Para finalizar, fique à vontade para mandar algum recado, mensagem ou comentário para os leitores.

Fabio Akita: O mais importante é n?o se limitar. Eu sou um evangelizador de Ruby e Ruby on Rails, mas antes disso sou um programador que gosta de tecnologia. Nos últimos 20 anos já usei diversas plataformas, muitas delas já extintas, mas cada uma contribuiu para que eu ficasse cada vez melhor. Pouco antes de Ruby eu estava em Java, e .NET. 10 anos atrás estava em ASP e PHP, e assim por diante. Mesmo que você n?o pretenda usar Ruby, o simples fato de aprender contribuirá com sua formaç?o. Portanto o recado é: fique antenado e continue experimentando coisas novas. N?o lembro de quem foi essa frase, mas bons julgamentos vem com experiência, e experiência é formada também fazendo maus julgamentos.
-

Prodis: Obrigado pela entrevista.


Ruby, TDD , , , , , , ,

  1. Ronaldo C. Schork Júnior
    25, maio, 2010 em 14:50 | #1

    Ótima entrevista, parabéns.

    Então o Akita não dorme mesmo é? Caramba, seria ele um cyborg?
    ;-)

    Abraços.

  2. Ricardo Souza
    1, agosto, 2010 em 14:30 | #2

    É Akita, estou cada vez mais seu fã. :) RoR tem me dado muitas noites de sono.

  1. 5, junho, 2010 em 18:30 | #1