Archive for October, 2008

[Falando em Agile 2008] Liderando Equipes Ágeis

Thursday, October 30th, 2008

Algumas pessoas me pediram os slides da minha apresentação no Falando em Agile 2008 sobre liderança de equipes ágeis, então decidi disponibilizá-los no SlideShare.

Liderando Equipes Ágeis
View SlideShare presentation or Upload your own. (tags: agile falandoemagile)

Enjoy! :)

[Falando em Agile 2008] Retrospectiva do evento

Monday, October 27th, 2008

O Falando em Agile foi ótimo!

Gostei muito de praticamente todas as apresentações que assisti. Para mim os destaques foram:

1) David Anderson fez uma apresentação de abertura que foi legal – apesar de não concordar com algumas coisas que ele fala. Mas isso é assunto para outro post, pretendo discutir alguns assuntos em maior profundidade nos próximos dias (ou meses, do jeito que a coisa está complicada).

2) Danilo Sato e Frank Trindade mostraram erros comuns na adoção de metodologias ágeis e veio a calhar para as pessoas que estão começado. Aliás o nível do pessoal estava bem variado: tinham desde gurus até gente que nem começou ainda.

3) Danilo Bardusco falou um pouco do que aconteceu no início da adoção de Scrum na Globo.com, assunto que desperta interesse e curiosidade nas pessoas. No início da apresentação ele teve problemas técnicos com dois notebooks Linux e acabou tendo que usar o meu MacBook. Só essa foto já valeu todo o evento! Pra quem não sabe o Danilo diz que é anti-Apple mas a verdade é que ele é um Macmaníaco enrustido, além de amar o seu iPhone…

4) Antonio Carlos Silveira falou sobre o papel do Product Owner no Scrum e fez uma apresentação muito bem humorada! Além do conteúdo relevante ele acabou revelando o quanto eu e Azambuja somos bons no Guitar Hero.

5) Phillip Calçado mostrou dois cases e apresentou alguns problemas que têm sido muito comuns em equipes ágeis. Todo mundo estava achando que ele falar mal da apresentação do David mas foi bem longe disso.

A minha apresentação sobre liderança de equipes ágeis felizmente foi bem aceita. Eu estava preocupado porque além de ser um tema bem difícil de se falar, é difícil de encontrar material e foi a primeira vez que fiz a apresentação. No final acabou dando certo e fiquei feliz pela quantidade de feedbacks positivos. Já tive várias idéias novas e colhí vários feedacks para melhorar a apresentação, então da próxima vez será bem mais legal. Se alguém tiver alguma coisa a acrescentar ou criticar, por favor sinta-se a vontade para me mandar um e-mail.

Sei que já deve estar ficando repetitivo, mas não dá pra não falar. “Pra variar”, o melhor do evento sem dúvida foram as conversas, o chopp ágil e as novas amizades. Tive a oportunidade de conhecer pessoas muito legais de todos os lugares do Brasil, além de reencontrar o pessoal já conhecido! Veja as fotos no meu Flickr. Assim como na Rails Summit o Twitter foi bastante usado como divulgador de notícias e opiniões durante o evento e só aí eu já conhecí pelo menos umas 3 pessoas também.

Parabéns mais uma vez para a Caelum e o Alexandre Magno pela organização do evento! Espero ver todos no Falando em Agile 2009!

Zen of Agile Management Workshop + Falando em Agile 2008, aí vou eu!

Monday, October 20th, 2008

Daqui a pouco estou indo mais uma vez para São Paulo para participar de dois eventos bem legais!

O primeiro deles é o workshop “Zen of Agile Management” que está sendo organizado pelo Adail Retamal da Heptagon e será ministrado pelo David Anderson. O David tem algumas opiniões um pouco controversas sobre integração de Agile com CMMI mas mesmo assim ele é um profissional experiente e com certeza tem muito para acrescentar. Acho que as discussões serão muito interessantes e enriquecedoras.

Falando em Agile 2008O segundo é o “Falando em Agile 2008″, que está sendo organizado pela Caelum e será o primeiro grande evento de metodologias ágeis do Brasil. Neste evento vou fazer uma apresentação entitulada “Liderando equipes ágeis”, que é um apanhado de várias apresentações que assistí, livros que lí e experiências que tive liderando equipes ágeis. Estou bastante ansioso pra falar sobre o assunto… espero que todos gostem! Além disso o Danilo Bardusco vai falar sobre a implantação do Scrum na Globo.com e ainda teremos vários outros palestrantes como o Danilo Sato, Phillip Calçado, Antonio Carlos Silveira, David Anderson (sim, ele estará nos dois eventos), a galera da Caelum e muitos outros!

Essa semana ágil promete! Até lá! :D

Java é ruim?

Sunday, October 19th, 2008

Em tempos de Ruby on Rails parece que está na moda falar mal de Java. Na Rails Summit então meus ouvidos chegaram a doer de tanto ouvir falar que Java é ruim, Java é burocrático, bla bla bla e que Ruby on Rails é fantástico, produtivo e sexy. Calma, essa não é mais uma daquelas comparações ridículas de Java versus Ruby on Rails.

Mas ainda ficou a pergunta que não quer calar: Java é ruim mesmo? A resposta, como sempre, é que depende do caso…

Em um projeto de desenvolvimento de software, mesmo antes de começar o desenvolvimento você já tem algumas restrições para escolher tecnologias. A finalidade do software por si só pode já restrigir muito a tecnologia que terá que ser usada.

Por exemplo, se você estiver fazendo um website, provavelmente você não escapará de fazer uma interface em HTML, Flash ou qualquer outra coisa específica para desenvolver uma camada de apresentação web. Provavelmente você não vai querer usar Assembly para fazer a parte server-side, já que não seria muito produtivo (apesar de não ser impossível). Eventualmente esse site pode ser um portal como a Globo.com que têm milhões de acessos por dia e você terá que escolher uma plataforma/linguagem/arquitetura que priorizem performance e favoreçam escalabilidade. Ou então pode ser um site com pouquíssimos acessos e você nem precisará se preocupar com isso…

Ou então você pode precisar fazer um pequeno script para fazer backup automatizado de um banco de dados MySQL. Seria totalmente incoerente usar Delphi, Fortran ou Piet. Provavelmente você vai querer usar algo como Shell script e resolver o problema em meia dúzia de linhas. Alguns bancos como o SQL Server têm mecanismos de agendamento de backup automático que são super fáceis de configurar e usar, portanto nesse caso usar Shell script seria trabalho desnecessário.

Meu ponto aqui é que não dá para dizer que Java (ou qualquer outra coisa) é ruim por sí só. Java pode ser ruim ou bom dentro de um contexto. Por exemplo, em 2005 eu trabalhei num projeto de Call Center à distância via Internet onde precisei desenvolver um softphone e a melhor opção foi usar Java Applets. Além de existirem bibliotecas Java para trabalhar com IAX (que é um protocolo como o SIP, só que proprietário do Asterisk), o usuário não precisava instalar nenhum programa para falar com o Call Center, bastava acessar o site. Eu odeio Applets com todas as minhas forças, mas foi ótimo para esse projeto (eu diria até que foi relativamente fácil). Seria correto então dizer que Ruby on Rails é ruim só porque seria impossível de fazer esse projeto com tanta facilidade? É óbvio que não!!!

Jamais existirá uma única linguagem ou plataforma para resolver todos os problemas. O desenvolvedor de software precisa conhecer vários tipos de ferramenta e saber escolher a melhor delas para resolver cada problema. Que fique claro que eu não sou defensor de Java, Ruby ou de qualquer outra coisa. O caso é que é incoerente dizer que X ou Y é bom ou ruim por sí só; é preciso analisar as opções dentro de um contexto.

[Rails Summit Latin America] Retrospectiva do evento

Sunday, October 19th, 2008

Excelente! Eu estava com boas expectativas sobre o evento mas não imaginava que seria tão legal como foi. Os três destaques para mim foram:

1) Chad Fowler deu um show na abertura do evento. A palestra entitulada “Being Remarkable” foi um resumão do livro dele “My Job Went to India”, que já é velho conhecido e leitura altamente recomendada. Apesar do conteúdo não ser novo ele é um excelente apresentador e fez com que valesse a pena ouvir tudo denovo.

2) Hongli Lai e Ninh Bui da Phusion falaram um pouco sobre o Passenger, mas o mais legal mesmo foi o que eles falaram sobre escalabilidade. Apesar de não terem falado nenhuma novidade, é legal reforçar sempre que não existe aquele papinho de “Rails não escala” – o que faz uma aplicação escalar é a sua arquitetura. Em termos de conteúdo acho que essa foi uma das melhores apresentações. Fora isso o interpretador de Brainfuck em Ruby que eles fizeram ficou o máximo!

3) Dr. Nic é um tremendo fanfarrão! Apesar do conteúdo da apresentação não ter sido tão interessante a palestra foi uma das melhores por todas as piadas que ele fez e gargalhadas que ele arrancou da galera.

Fora essas três assistí às duas apresentações do David Chelimsky sobre BDD com RSpec e Cucumber, a do Jay Fields sobre testes, a do Charles Nutter e Thomas Enebo sobre JRuby e todas as outras dos palestrantes internacionais. Só fiquei um pouco decepcionado com o DHH, porque acabaram fazendo um painel de perguntas e respostas e as perguntas que foram feitas não foram tão interessantes assim (com exceção de uma ou duas), mas não deixou de ser legal.

Uma pena que não pude assistir à última palestra do Obie Fernandez sobre a Hashrocket porque senão perderia meu vôo de volta para o Rio. O pior foi ver as mensagens no Twitter dizendo que ela foi muito boa… Minha sorte é que já assistí apresentações dele em eventos anteriores, então nem fiquei tão triste.

Mesmo com isso tudo, o melhor desses eventos são sempre as pessoas. Foi ótimo conversar com tanta gente legal e ainda conhecer pessoas novas da comunidade Ruby e Rails. Dessa vez devo ter falado com umas 100 pessoas diferentes entre pessoas que já conhecia e que não conhecia! Não vou citar nomes para não arriscar esquecer alguém mas foi ótimo conhecer e conversar com todos.

Antes de terminar, andei ouvindo uns burburinhos por aí de algumas pessoas reclamado sobre o preço da entrada (R$ 300). Galera, esse evento foi de graça! Sério, esse valor é absurdamente ridículo para dois dias de evento num local excelente, com comida boa e palestrantes de alto nível. Mesmo contabilizando as passagens e hospedagem em São Paulo não há dúvidas de que esse tipo de investimento vale muito a pena.

Parabéns mais uma vez para o Akita e a Locaweb por terem conseguido reunir todos esses grandes nomes num grande evento!

Esperamos ansiosos por um Rails Summit melhor ainda em 2009! :)

Wanted!

Wednesday, October 15th, 2008

Mais uma vez estamos contratando na Globo.com!

A Globo.com vem se transformando ao longo do último ano. Antes eram apenas duas ou três equipes ágeis mas agora estamos com mais de uma dezena de equipes funcionando a todo vapor, por isso dessa vez estamos com mais sabores de vagas e estamos contratando para várias equipes.

As últimas contratações provaram que não adianta contratar pessoas que sejam apenas “boas”. Precisamos contratar os melhores, não importa onde estejam, porque queremos montar equipes de “rockstars”!

Basicamente temos dois tipos de vagas:

Desenvolvedor Júnior/Pleno/Sênior

Os desenvolvedores de software são responsáveis não só por programar novas funcionalidades mas também por planejar, arquitetar, documentar, testar e trabalhar com novas tecnologias o tempo todo. Aqui não separamos o papel de programador do analista de sistemas ou seja lá o que for. Mais do que nunca não queremos desenvolvedores Java, C ou Brainfuck, queremos desenvolvedores multidisciplinares com experiência em websites e aplicativos web, e isso quer dizer que são desenvolvedores capazes de trabalhar com coisas desde HTML, CSS, Javascript e AJAX até programar backends em Java, Ruby on Rails, PHP, Python com Django, Perl ou o que for mais adequado para resolver cada problema. Algumas vezes já precisamos fazer coisas específicas com linguagens como C, C++ ou Erlang, então desenvolver também em linguagens não-web é um diferencial. Além disso, conhecimentos em arquiteturas de serviços (REST especialmente) e sistemas distribuídos são muito desejáveis.

Nossas equipes trabalham de forma ágil usando Scrum e várias práticas de Extreme Programming, então, desenvolvedores que já tenham trabalhado em times ágeis ou que conheçam práticas ágeis de desenvolvimento são altamente desejados. Além disso é essencial conhecer boas práticas de programação, orientação a objetos e design patterns (e quando não usá-los).

Os desenvolvedores também precisam ter algum conhecimento de infraestrutura/redes, Linux ou Solaris e deployment de aplicações em Apache, app servers Java diversos (JBoss, Weblogic, etc) ou app servers Ruby On Rails diversos (mod_rails, Mongrel, etc).

Por último, não damos a mínima se você têm trezentas certificações ou oitocentas faculdades – isso não é um diferencial. O que difere um desenvolvedor júnior de um pleno ou sênior é a experiência dele em outras empresas e projetos.

Líder de equipe

Os líderes de equipe são os responsáveis técnicos pelos projetos e produtos desenvolvidos pelos times. Queremos líderes com bons conhecimentos de arquitetura de software para poder decidir com o time as melhores soluções. É desejável que o líder de equipe entenda de escalabilidade, performance, sistemas distribuídos, sistemas de filas, sistemas de cache, arquitetura de serviços e o que mais vier pela frente. Apesar disso ele não precisa ser o mais experiente ou o mais especialista em todos os assuntos – em alguns times os líderes são mais técnicos e em outros times eles são menos técnicos dependendo das responsabilidades e área de atuação do time. No geral o que se espera é que o líder tenha tantos conhecimentos quanto qualquer desenvolvedor, afinal de contas eles também devem arregaçar as mangas e trabalhar como qualquer um no time quando for necessário (obviamente cuidando para não “podar” ou atrapalhar o time ao invés de ajudar). Resumidamente falando, nenhum dos requisitos para a vaga de desenvolvedor podem “soar como grego” para o líder.

Além disso eles são responsáveis por facilitar o trabalho dos times de desenvolvimento. Como trabalhamos com Scrum, os líderes exercem o papel de Scrum Master e por isso precisam entender muito bem como funciona o Scrum e as metodologias ágeis em geral. Os líderes precisam ajudar os gerentes de produto e o time a trabalharem sem violar os princípios ágeis, respeitando timeboxes, respeitando o desenvolvimento iterativo, ajudando para que o planejamento seja feito de forma ágil e facilitando retrospectivas para ajudar o time a evoluir ao longo do tempo. Eles também precisam ser “coaches” dos seus times, treinando-os para fazerem TDD, estimulando-os a refatorarem código para manter os sistemas manuteníveis e testáveis e garantindo eles têm todo o conhecimento que precisam para desempenhar o seu trabalho. Ainda, apesar de todos os membros do time serem responsaveis por manter a qualidade dos produtos, os líderes de equipe precisam garantir que os times não sejam afogados com novas funcionalidades e acabem introduzindo débito técnico. Qualidade aqui não é negociável e os líderes precisam cuidar para que isso seja sempre verdade.

Os líderes de equipe também são responsáveis por manter as pessoas do seu time, contratar novas pessoas quando for necessário e cuidar para que todos estejam felizes no trabalho. Ah, e para esta função falar inglês não é um diferencial, é obrigatório.

Concluindo…

Sejam líderes de equipe ou desenvolvedores, estamos procurando nerds, geeks, apaixonados por tecnologia e pessoas super atualizadas com as últimas novidades da Internet e do mercado. Nossa empresa é jovem, irreverente e descontraída, e são pessoas exatamente assim que estamos procurando.

A empresa oferece contratação apenas por CLT, com salário de mercado e plano de benefícios. Estamos localizados na Barra da Tijuca (Rio de Janeiro). Damos suporte a pessoas de outros estados que queiram mudar para o Rio.

Se você se enquadra num desses perfis, mande um e-mail para mim (gc at corp.globo.com), com o seu currículo e os nomes dos três últimos livros técnicos que leu. Como temos vários sabores de vagas, me diga qual função você gostaria de exercer, o que você espera dessa oportunidade e com o que você gostaria de trabalhar aqui na Globo.com. Se você já enviou seu currículo para alguma das oportunidades anteriores mas também ficou interessado nessa, por favor envie novamente!

Se você não tem exatamente todas essas características mas se interessou pelas oportunidades e pelo que nós fazemos, não deixe de falar com a gente também.

Rails Summit Latin America, aí vou eu!

Tuesday, October 14th, 2008

Rails Summit Latin AmericaDaqui a pouco estou partindo para São Paulo para participar do Rails Summit Latin America!

Esse vai ser o primeiro grande evento de Ruby on Rails do Brasil (já tivemos outros menores como a RejectConf, o Minas on Rails e o Rio on Rails). Teremos a presença de vários palestrantes internacionais famosos como o David Heinemeier Hansson (por vídeo conferência), Chad Fowler, Dr. Nic Williams, Ninh Bui e Hongli Lai (criadores do Passenger), Jay Fields, Obie Fernandez e muitos outros, além de vários participantes nacionais como o meu amigo fanfarrão Vinícius Teles, o grande Fabio Kung, Danilo Sato e mais um monte de gente! Esse evento promete… É sempre legal encontrar toda essa galera reunida e rever os amigos!

O Fabio Akita e a Locaweb já estão de parabéns pela organização do evento e por conseguirem mobilizar todas essas pessoas. Nos vemos lá!