Archive for the ‘Etc.’ Category

Que ferramentas você vai usar na hora de programar?

Tuesday, June 29th, 2010

Há uns dois meses estava eu numa madrugada típica brincado de escrever códigos aleatórios, dessa vez usando o Google App Engine. Num determinado momento (acho que eu estava testando o versionamento de deploys – que é lindo demais) fiquei tão empolgado que soltei um daqueles posts meio aleatórios no Twitter dizendo: Google App Engine kicks serious ass!. Muita gente estranhou, incluindo o meu amigo Rodrigo Kumpera que prontamente respondeu: @gchapiewski I thought you used to work for yahoo!.

O mesmo “fenômeno” aconteceu no Yahoo! Open Hack Day que fizemos em São Paulo em março. Muitas pessoas acharam estranho e ficaram abismadas pelo fato do Yahoo! e seus funcionários mostrarem hacks que faziam uso de Google Maps, Twitter, Facebook e outros produtos que não são do Yahoo!.

Vamos lá, qual o problema? Sério mesmo, qual o problema? :) Agora que eu trabalho no Yahoo! tenho que usar Y! Mail ao invés de Gmail? Ou então tenho que programar usando apenas YUI ao invés de jQuery? A política do Yahoo! é muito simples e na minha opinião bem coerente: a Internet está cheia de serviços excelentes e nós também temos alguns ótimos serviços. Porque não combinar o que há de melhor e fazer uma coisa melhor ainda?

Sempre falo isso e já até me falaram que parece meio “piegas”, mas é a pura verdade (e nunca é demais repetir): use a melhor ferramenta para resolver cada problema!

Esse modo de pensar é bem difícil nesse mercado. Muita gente acha que linguagens e tecnologias são como religiões, mas não é o que eu acredito. Não me importo de usar Java se for a melhor opção para resolver meus problemas – apesar de adorar programar em Ruby. Ou de aprender uma nova linguagem/ferramenta se ela se mostrar melhor para resolver alguma coisa (como quando eu precisei aprender ActionScript para fazer coisas legais para o Globo Vídeos – apesar de eu nunca ter tido simpatia por Flash).

Para pessoas da nossa área, acredito em um posicionamento profissional baseado em fatos e dados, não em preferências, traumas ou qualquer outro argumento sem lógica. No caso que comecei a contar no início desse post, eu estava programando um webservice REST em Python e o Google App Engine é o melhor lugar para ele estar hospedado. Aliás, eu usei Python já pensando em fazer o deploy lá, porque é super simples de usar, funciona muito bem e vai me liberar mais rápido para fazer outras coisas interessantes. É óbvio que todos temos nossas preferências de linguagens e tecnologias, mas o papel de um profissional é ser pragmático é fazer o que for mais adequado para cada situação.

Sempre que você está programando você precisa atingir um objetivo. Como eu ouvi falar esses dias, você “não senta e começa a programar igual a um cavalo”, você está desenvolvendo um produto ou alguma coisa maior e precisa ter isso em mente o tempo inteiro. Seu objetivo é entregar um software de qualidade, performático, bem testado, manutenível e que atenda ao seu cliente/objetivo. O seu objetivo não é usar as ferramentas da sua empresa ou as tecnologias que você gosta. Pense nisso.

Até a próxima, Globo.com!

Saturday, December 5th, 2009

Não imaginava que isso fosse acontecer tão cedo, mas 2009 é o meu último ano na Globo.com.

Meu sonho aqui era ajudar a construir uma coisa maior do que eu e ter uma história para contar. Tenho muito orgulho de ter contribuido para mudar uma empresa tão tradicional como a Globo e de ter trabalhado diretamente num dos maiores exemplos de mudança organizacional e adoção de metodologias ágeis do Brasil. Trabalhei nos produtos de maior audiência da Internet brasileira, entreguei dezenas de projetos bem sucedidos, quebrei diversas barreiras e ganhei o respeito de dezenas de pessoas. Foi incrível! Me sinto feliz por ter cumprido uma grande parte dos meus objetivos e sei que meus amigos que vão me substituir vão continuar a fazer mais conquistas e vão fazer um trabalho muito melhor que o meu, levando a Globo.com para o caminho do sucesso. E como eu já aprendi, o mundo dá voltas. Quem sabe um dia eu sinto saudades do Rio de Janeiro… :)

É muito difícil saber as palavras certas pra usar numa hora dessas. A Globo.com é uma empresa incrível para trabalhar e, até onde eu consigo enxergar, a melhor do Brasil. Disparada. Ela foi inspiração para dezenas de posts desse blog e eu não tenho palavras pra dizer o quanto sou grato por ter tido a oportunidade de trabalhar com pessoas tão talentosas nesses anos todos aqui. Eu adoro essa empresa, dei meu sangue por ela, aprendi mais do que em qualquer outro lugar que trabalhei e conheci alguns dos melhores profissionais desse mercado. Queria citar os nomes de todos vocês e agradecê-los por terem me ensinado tanto, mas não quero correr o risco de esquecer nenhuma sequer das dezenas de pessoas que me apoiaram ao longo desse caminho. Em todas as minhas temporadas e equipes na Globo.com fiz amigos que vou levar para a vida toda e que vou sentir muita falta. É muito triste e muito difícil deixar tantas conquistas e realizações para trás, mas o tempo não pára e eu preciso seguir em frente para conquistar todos os meus sonhos.

Em Janeiro de 2010 estou me mudando para São Paulo e partindo para vôos mais altos e novos desafios no Yahoo!, assumindo a posição de Software Development Manager. Aliás, aproveitando a oportunidade, temos várias vagas em aberto, mas isso é assunto para um outro post. :)

Muitos desafios me aguardam e eu espero ter bastante história pra contar. Estou muito empolgado para trabalhar em produtos novos e criar novas maneiras de facilitar e divertir a vida das pessoas. Vou trabalhar também para tornar o Yahoo! um lugar ainda mais incrível para trabalhar, com ainda mais software e produtos de qualidade e mais uma referência em desenvolvimento ágil no Brasil e – sendo um pouco mais ambicioso (no sentido positivo da palavra) – no mundo!

Mais uma vez, obrigado Globo.com. Yahoo!, aí vou eu!

Dev in Rio 2009: eu vou!

Thursday, August 20th, 2009

É com muito orgulho que apresentamos o Dev in Rio 2009, uma conferência inédita sobre desenvolvimento de software que acontecerá no próximo dia 14 de setembro no Centro de Convenções SulAmérica, no Rio de Janeiro!

O evento está sendo organizado por mim (Guilherme Chapiewski) em parceria com o meu amigo Henrique Bastos e a realização está sendo coordenada pelas nossas experientes amigas da Arteccom (e tê-las ao nosso lado já garante que este será um evento para marcar o circuito carioca).

Nossa programação conta com três palestrantes nacionais e três internacionais falando sobre Open Source, Java, Ruby on Rails, Django e desenvolvimento ágil de software:

“O molho secreto”: como as comunidades do Joomla! e Open Source estão melhorando o cenário de tecnologia… e mudando o mundo!

Ryan OzimekRyan Ozimek é atual membro do Steering Committee da Open Source Initiative, membro da diretoria da Open Source Matters e co-fundador e CEO da PICnet Inc. Com enfoque em tecnologias open source, Ozimek está constantemente a procura de formas em que a Internet possa servir melhor o “bem maior” e, mais especificamente, as entidades sem fins lucrativos.

O Java está morto?

Guilherme SilveiraGuilherme Silveira é especialista em Java para a web e graduando em matemática computacional na USP, ministrou diversas palestras relacionadas ao tema em eventos e empresas pelo Brasil. Atualmente é commiter do CodeHaus pelos projetos XStream e Waffle, além de um dos responsáveis pelo desenvolvimento do VRaptor.

Nico SteppatNico Steppat é Engenheiro da Computação Aplicada na Fachhochschule Brandenburg na Alemanha, é instrutor, consultor e desenvolve há cinco anos com Java no Brasil e Alemanha, atuando agora na Caelum com enfoque especial em EJB. É o responsável técnico no Rio de janeiro. Escreve para a revista MundoJava e possui as certificações SCJP, SCWCD, SCBCD e SCEA.

Ecossistema Ruby on Rails

Fabio AkitaFabio Akita é Gerente de Produtos de Hospedagem na Locaweb e ajudou a implantar Ruby on Rails pela primeira vez num grande hosting no Brazil. Ano passado também organizou o Rails Summit Latin America, o primeiro grande evento de Rails na América do Sul. Trabalhou na consultoria americana Surgeworks LLC, prestando serviços relacionados a projetos Ruby on Rails, com o cargo de Brazil Rails Practice Manager.

Django: o framework web para perfeccionistas com prazos

Jacob Kaplan-MossJacob Kaplan-Moss é um dos líderes de desenvolvimento e co-criador do Django. Jacob é um desenvolvedor de software experiente com foco em desenvolvimento de aplicações web e arquitetura de gerenciadores de conteúdo. Em 2005, Jacob ingressou no Lawrence Journal-World, um jornal local em Lawrence, Kansas, e ajudou a desenvolver e tornar open source o projeto Django. É também co-autor do livro “The Definitive Guide to Django” (Apress, 2007).

Desenvolvimento ágil e iterativo de produtos

Jeff PattonJeff Patton cria e desenvolve software nos últimos 15 anos desde sistemas de pedidos de peças de aeronaves até fichas médicas eletrônicas. Jeff se focou em metodologias ágeis desde que trabalhou com um time de Extreme Programming em 2000. Em particular, Jeff se especializou na aplicação de práticas de user experience design (UX) para melhorar requisitos ágeis, planejamentos e produtos. Desde 2007, Jeff tem aplicado Lean thinking e práticas de desenvolvimento com Kanban e Scrum para ajudar times a focarem na entrega de valor.

Vinicius TelesPara fechar com chave de ouro, no encerramento do evento faremos um bate-papo com os palestrantes, alguns membros das comunidades de desenvolvimento e a participação especial do meu amigo Vinicius Teles!

Como se isso tudo já não fosse suficiente, enquanto todas essas apresentações estão acontecendo teremos sessões de Coding Dojo rolando do lado de fora com participação especial dos nossos palestrantes (caso eles consigam ficar por lá)! Estamos planejando fazer um Dojo de Python, um de Ruby e um de Java!

Será simplesmente incrível, ninguém pode ficar de fora dessa!

As inscrições podem ser feitas no site do evento (http://www.devinrio.com.br) e custam apenas R$ 65,00. Todos os inscritos terão direito a participar de todas as sessões, incluindo o Dojo.

Nosso encontro será numa segunda-feira, ou seja, se você não for do Rio de Janeiro já tem uma ótima desculpa para passar o fim de semana aqui, assistir uma ótima conferência na segunda-feira e voltar para o trabalho cheio de idéias na terça!!! Ainda estamos tentando fechar uma parceria com algum hotel para oferecer desconto para participantes do evento. Fiquem ligados nas novidades por aqui ou pelo Twitter!

Gostaria de deixar registrados meus sinceros agradecimentos para os nossos patrocinadores Locaweb e Caelum, além de outras organizações que nos apoiaram de alguma forma: Associação Python Brasil, Fábrica Livre, Open Source Matters e Myfreecomm. E por último, meu mais sincero agradecimento para a Globo.com pois ela é a principal responsável por viabilizar essa idéia! Obrigado por mais uma vez acreditarem nesse louco aqui tarado por desenvolvimento de software! Não tenho palavras pra dizer o quanto é gratificante fazer parte dessa equipe!

Então nos vemos no Dev in Rio 2009! Faça agora sua inscrição no nosso site! Fique ligado também no Twitter do @devinrio para concorrer a inscrições gratuitas!

Ah, e uma última coisa. Por favor, nos ajudem a divulgar o evento! Falem com seus amigos, postem nos seus blogs, Twitters, coloquem nossos banners nos sites de vocês, enfim, por favor nos ajudem a divulgar esse evento! Vamos fazer barulho no Rio de Janeiro!

Top 200 blogs para desenvolvedores

Wednesday, July 15th, 2009

Um post bem rapidinho. Essa notícia está um pouco atrasada mas continua boa. :)

Se você (assim como eu) gosta muito de ler blogs de desenvolvedores, provavelmente vai adorar isso: uma lista com os top 200 blogs para desenvolvedores selecionados por Jurgen Appelo.

A lista contém ótimos blogs de gente conhecida no mercado como Martin Fowler, James Shore, Jeff Sutherland, Joel Spolsky e por aí vai, além de blogs que eu ainda não conhecia e que são bem legais também. Para completar ainda tem o Twitter de uma boa parte dessas pessoas.

Mesmo que você não concorde com a lista e ache que tem coisa faltando ou sobrando, com certeza irá encontrar um monte de blogs interessantes para incrementar o seu leitor de RSS. Boa leitura!

Pessoas não são recursos!

Sunday, July 12th, 2009

Esses dias vi uma mensagem no Twitter que me fez lembrar de algo que eu já queria ter falado aqui há algum tempo:

Referring to people as “resources” leads to thinking that individuals are interchangeable code producing units.

Toda vez que alguém chama uma pessoa de “recurso” dói meu ouvido. Chega até a ser chato, mas quando alguém faz um comentário sobre “recursos” do meu lado dificilmente consigo resistir a corrigir para “pessoas”. Como a Esther Derby disse na sua mensagem, tratar pessoas como “recursos” dá a impressão que as pessoas são “commodities“, que são meros “parafusos”, sem importância individual e substituíveis por qualquer outro.

Como que alguém pode se sentir bem sabendo que é totalmente descartável e que pode ser a qualquer momento trocado por qualquer outra pessoa? Como alguém pode estar comprometido com um projeto sabendo que é totalmente substituível e que não faz diferença se quem estiver ali for ela ou qualquer outra pessoa? Como alguém pode se sentir motivado assim?

E por fim a pergunta que eu queria chegar: Que tipo de código e que tipo de produto as pessoas vão conseguir produzir nessas condições?

Desenvolvedores de software são trabalhadores do conhecimento. Ao contrário de trabalhadores “Fordistas”, que são extremamente especializados numa linha de produção e desempenham atividades repetitivas e “robóticas”, os trabalhadores do conhecimento trabalham intensivamente com o seu cérebro, analisando e interpretando informações, descobrindo novas e melhores soluções para resolver problemas e tomando decisões o tempo todo.

Por esse motivo, é essencial que essas pessoas estejam motivadas, pois isso as deixa num estado mental que estimula sua produtividade, aumentando a quantidade de trabalho que podem realizar e potencializando o uso da sua criatividade para resolver problemas.

Um projeto de software bem sucedido é construido por pessoas motivadas, que tem visão do que estão fazendo e que acreditam nessa visão.

Para saber mais:

Mais um blog (agora em inglês)

Thursday, April 2nd, 2009

Há muito tempo tenho pensado em criar um blog em inglês. Muito tempo mesmo. Pra ser mais exato tenho essa idéia desde o fim de 2007. Nessa época num evento internacional fiz um amigo falando sobre um artigo que eu escrevi no meu blog, mas como era em portugês ele teve que ler usando o Google Translate… Teria sido bem melhor se eu sempre tivesse blogado em inglês.

Como eu sou um protelador profissional, fiquei durante todo esse tempo enrolando e inventando várias coisas mais prioritárias que sempre me impediram de colocar essa idéia em prática. Mas agora finalmente foi e o endereço é “http://guilherme.pro“!

Fiquei numa baita dúvida se ia usar esse mesmo blog ou fazer um novo. Por enquanto decidi fazer um novo, mas no futuro posso mudar. Ainda não sei como vou fazer para decidir o que vai entrar nesse blog ou no outro, mas com certeza não vou parar de blogar aqui e nem pretendo diminuir a frequência!

Atualizem seus leitores de RSS com mais esse feed!

Plano de cargos e salários…

Sunday, February 15th, 2009

Me incomoda muito o fato de que desenvolvedores precisam virar gerentes ou coordenadores para ganhar mais.

<história>
Era uma vez um desenvolvedor muito bom e muito eficiente. Ao longo da sua carreira ele foi aprimorando suas habilidades e técnicas e se tornou um super desenvolvedor com um conhecimento técnico absurdo, uma vasta experiência em arquiteturas de software e poliglota em linguagens de programação. Nesse momento ele repara que já é um desenvolvedor sênior ++ na empresa que ele trabalha e por isso não tem como ganhar mais do que ele já ganha a não ser que ele vire gerente. Então, querendo ganhar mais, o excelente técnico que programava e resolvia problemas técnicos com eficiência é obrigado a virar um gerente, porque a empresa não dá para ele outra forma de evoluir financeiramente. O detalhe é que ele não tem nenhuma habilidade para gerir pessoas ou projetos, além de que ele odeia fazer isso. O que ele gostava mesmo era de programar, mas ele não teve escolha. Resumindo: a empresa trocou um excelente técnico por um péssimo gerente e ainda está pagando mais por isso!
<história/>

Já repararam como esse padrão se repete nas empresas brasileiras?

Se você nunca parou pra pensar nisso, pense agora: é muito difícil um programador ganhar mais do que um gerente e por sua vez é muito difícil um gerente ganhar mais que um diretor. A lógica do mercado é a velha lógica do plano de cargos e salários: quanto maior for o seu nível hierárquico, mais você ganha.

O problema é que isso não faz sentido. O argumento preferido das pessoas normalmente é que “os gerentes ganham mais porque tem mais responsabilidades”. Eu discordo totalmente. Por exemplo, um amigo me contou ontem que um funcionário da empresa onde ele trabalhava tirou do ar o sistema de transações financeiras de uma grande empresa, causando com isso algumas centenas de milhares de dólares de prejuizo em poucos minutos. Neste caso, um erro de um desenvolvedor provocou uma catástrofe maior do que 10 anos de erros de uma dezena de gerentes juntos. E então, quem é que tem mais responsabilidade nas mãos?

Outra coisa que me incomoda nos planos de cargos e salários são aquelas regras do tipo “gerentes ganham na faixa de R$ X a R$ Y“: se o cara ganha menos que X não pode ser gerente e se ganhar aumento para mais que Y tem que ser promovido a diretor. Isso também não faz sentido. Em todas as empresas que eu trabalhei conheci gerentes excepcionais e gerentes absurdamente idiotas. Por incrível que pareça os excepcionais com toda sua genialidade sempre ganhavam (e ganham) o mesmo que os idiotas, por causa do maldito plano de cargos e salários. Isso pra mim soa como gado: independente das suas características individuais, uma cabeça de gado custa o mesmo que outra.

Eu trabalho e já trabalhei com vários desenvolvedores de valor altissimo. Não falo isso pelo que eles ganham ou ganhavam, mas sim porque em várias situações eles criaram soluções que melhoraram ou mudaram completamente (para melhor) a forma que as pessoas trabalhavam. Algumas dessas coisas foram tão geniais que eu diria que o valor foi inestimável. Eu também já tirei meus coelhos da cartola e sei que eles foram de grande valor para as empresas que eu trabalhei.

Não deveriam ser esses tipos de coisas que determinam o quanto as pessoas devem ganhar?

Em empresas de software, onde é comum encontrar esse tipo de pessoas, deveria ser normal ter desenvolvedores altamente especializados com remunerações maiores que as de gerentes ou diretores, mas isso é tão improvável que eu diria que é praticamente impossível – pelo menos no Brasil. Já em empresas como Google, Yahoo e cia., isso é possível e normal. Na Globo.com temos alguns casos desse tipo, mas são excessões. Isso está em fase embrionária e é muito muito muito longe do que deveria ser.

Naquela história que eu contei no início não consigo pensar em um motivo sequer para a empresa não manter o funcionário como desenvolvedor e dar o aumento que ele merece. Esqueça o plano de cargos e salários e veja como faz sentido: isso seria muito melhor para a empresa – porque o funcionário iria agregar muito mais valor sendo desenvolvedor e iria ajudá-la a lucrar muito mais – e seria melhor para o desenvolvedor – porque ele iria fazer o que gosta, o que é mais experiente e o que estudou sua vida toda para fazer.

Até quando as empresas vão continuar colocando as pessoas certas nos lugares errados?

2009: ano novo, vida nova

Wednesday, February 4th, 2009

O ano novo é sempre um momento de reflexão e mudanças na vida de muita gente. Comigo não foi diferente. :)

Em 2008, por conta do forte movimento para adoção de Scrum aqui na Globo.com, meu blog acabou virando quase que totalmente sobre metodologias ágeis e afins. Por um lado foi muito bom porque durante esse ano pude explorar vários aspectos dessas metodologias e entender profundamente vários motivos e princípios por trás de várias coisas. Por outro lado, acabei falando muito menos do que gostaria sobre minhas raizes… Minha maior especialidade e o que me dá mais prazer é explorar coisas novas, escrever código e desenvolver software. Em 2009 pretendo falar muito mais sobre isso do que qualquer outra coisa.

A segunda mudança é que estou em novos desafios na Globo.com (e por isso ando postando pouco). Depois de dois anos, muitas vitórias e conquistas, no fim de dezembro deixei minha antiga equipe de WebMedia para atuar como evangelista e líder de desenvolvimento de software na Globo.com.

O desafio dessa nova equipe é grande: impregnar a empresa inteira com práticas de desenvolvimento ágil e qualidade de software. Não estamos montando um dos famosos “escritórios de arquitetura” e nem definindo padrões para as equipes trabalharem, mas sim vamos liderar, dar apoio e estimular inovações em desenvolvimento de software, implantar técnicas de desenvolvimento ágil e boas práticas de desenvolvimento e arquitetura de software. Ok, vamos ajudar com processos também, eu assumo – afinal ninguém é de ferro. Para isso tudo vamos fazer vários treinamentos, workshops, vamos trabalhar infiltrados nos times fazendo mentoring com todos os desenvolvedores e sujando a mão de graxa; dentre outras coisas. Traduzindo: diversão garantida e muita história pra contar por um bom tempo!

Já estamos fazendo muitas coisas legais e já começo a ver alguns resultados animadores. Aos poucos vou contando as iniciativas e as novidades!

Cara nova

Monday, July 28th, 2008

Depois de ser invadido 5 vezes de 5 maneiras diferentes, de vários dias de downtime e muita dor de cabeça com a DreamHost, finalmente tomei vergonha na cara e mudei tudo!

Migrei meu blog para um lugar que parece ser mais decente (eApps) e atualizei a versão do Wordpress para a 2.6, que é a mais nova disponível (era 2.1.3). Como meu tema antigo não funciona direito nessa nova versão fui obrigado também a mudar a fachada – dessa vez optando por um tema bem mais simples. :)

Obrigado à galera que me reportou os problemas por e-mail! Espero que agora o site funcione direito.

Não dá pra fazer só mais uma coisinha?

Monday, May 5th, 2008

Desde que o mundo é mundo sempre tentam fazer com que nós programadores façamos mais do que nós achamos que é possível. Não importa quanto tempo você leve para fazer uma determinada tarefa, sempre alguém vem com aquela pergunta: mas não dá pra fazer só mais essa coisinha aqui???

O problema é que nem sempre se tem a percepção exata do que essa “coisinha” significa. A cada “coisinha” a mais que se faz é mais uma coisinha para programar, errar, testar, integrar, testar denovo e dar bug em produção.

No último Sprint da minha equipe aconteceu uma coisa muito engraçada. Uma das tarefas era colocar uma imagem de uma determinada forma em um site. Basicamente tratava-se de uma linha simples de código, só que a história não foi priorizada e por isso não entrou no Sprint. De fato parecia ser uma coisa bem simples. Como era só uma linha de código e todo mundo sabia disso, fizeram uma força danada pra empurrar essa história para dentro do Sprint, mas eu fui o chato e repetí umas vinte vezes: é mais uma coisa para testar e dar bug.

Isso foi no início do Sprint. Casualmente, nos dois dias seguintes o time deu um salto e o trabalho ficou muito adiantado. Com isso foi necessário colocar mais umas histórias para o time não ficar sem o que fazer e entre essas histórias estava a tal da linha para colocar uma imagem numa tal posição.

Fim do Sprint, tudo estava testado e o pacote com a aplicação fechado. Quando colocamos o site em produção, das 17 (dezessete) histórias que fizemos adivinha qual foi a única que deu problema??? A maldita “coisinha”, que por causa de uma configuração que só existia no mod_rewrite do Apache de produção não funcionava nem por um milagre! Até descobrir esse problema e resolvê-lo levamos algumas horas, sem contar que manchamos nosso histórico de alguns Sprints sem colocar bugs em produção…

Essas “coisinhas” de última hora nunca são tão simples quanto parecem. No mínimo é mais uma coisa para testar e dar bug em produção. :)