Archive for the ‘thoughtworks’ Category

Já Temos Tecnologia o Suficiente

Monday, December 3rd, 2007

Estava pensando sobre o texto que escrevi ontem sobre modelos de negócio afetados por escolhas tecnológicas e acho que posso ter confundido alguém. Minha idéia não é dizer que modelo de negócio não é importante, pelo contrário este é a coisa mais importante numa empresa, apenas atentei para o fato de que as escolhas tecnológicas afetam o modelo de negócios. O caso de exemplo era sobre uma empresa com ótimo modelo e tecnologia não adequada.

Na verdade, provavelmente a tecnologia existente há alguns anos é mais que suficiente para modelar de excelente maneira qualquer domínio. O problema é que ainda somos (como indústria) amadores no desenvolvimento de software.

Veja por exemplo meu primeiro dia no projeto novo. Uma das maiores empresas da Austrália precisa migrar milhões de dados sobre seus clientes do sistema legado para o novo. Eu cheguei no meio do projeto e minha primeira tarefa é atuar no sistema que faz uma checagem ara ver se os dados foram mirados corretamente. Moleza.

Até a hora do almoço meu par e eu tínhamos escrito todo o script Ruby que conecta com o servidor do sistema legado, obtém o resultado da consulta desejada como HTML, faz parsing dele com o hpricot, armazena num banco de dados utilizando ActiveRecord, chaa os scrits e comparação, faz caching em disco e retorna um resultado em XML. Tudo isso rodando numa task do rake e testado com RSpec. Moleza.

O difícil foi fazer os scripts de comparação. A tecnologia já oferece mais que suficiente para criar este mecanismo, já fizemos uma arquitetura baseada no padrão Chain of Responsibility que vai validar todos os casos mas e entender as regras do negócio?

Sempre vai ter aquele que diz “ora, tá tudo documentado em caso de uso, diagrama de domínio e etc.’. Já tive o desprazer de trabalhar em diversos projetos que acreditavam que isso é verdade e invariavelmente o resultado era que o novato só ficava produtivo depois de um mês e pouco.

Hoje, no meu primeiro dia no projeto novo, já consegui ser produtivo e implementar boa parte de uma história. A mágica não está no Ruby, não está no Mac, não está no Java nem no SOA. Está em uma palavrinha que eu coloquei no texto lá no início e talvez tenha assado despercebida:

Até a hora do almoço meu par e eu tínhamos escrito todo o script[...]

Na chegada eu fui recebido com uma visão geral do sistema, seus objetivos e arquitetura. Em uma hora eu estava programando uma parte importante e para me mantêr dentro do domínio havia ma pessoa com anos de experiência na casa pareando comigo. Acredito que amanhã pela manhã tenhamos completado a user story que estávamos implementando.

A tecnologia vai continuar evoluindo e nos levando para luares fantásticos mas o que a maioria das empresas precisa é de uma faxina no modo de pensar das pessoas, tanto do alto quanto do baixo escalão.

Saindo da Praia

Friday, November 30th, 2007

Desde que cheguei aqui na ThoughtWorks as coisas têm sido bem calmas. O primeiro dia eu fui recebido pelas pessoas e recebi meu infame MacBook Pro (eu pude escolher entre um Mac ou PC antes de vr pra Austrália, BAs pegam um MacBook comum, Devs pegam um MacBook Pro 2.2Ghz/2GB). Depois de ser resresentado ao Lotus Notes (essa porcaria que eu não usava desde 2005) eu fui para a beach.

main desk

Na ThoughtWorks, ‘beach’é quando você não está alocado em nenhum projeto. Você vai ao escritório todo dia com seu notebook e senta na “main desk”, uma graaaaaande mesa sem lugares marcados. O escritório possui tudo que você iria querer: coca-cola, sucos, frutas frescas, cereais, chocolates e doces em geral, água, café grátis (a TW tem um contrato com uma empresa tipo Starbucks), wii e… cerveja.

Na beach você faz basicamete o que quiser. A maioria das pessoas está sempre procurando sistemas para fazer e testar novos conhecimentos, a dupla Alex & Alex que costumam sentar próximos a mim arrumaram uns requisitos com a menina do RH para criar um sistema e treinar Rails. Um outro que é desenvolvedor .Net está fazendo um feed reader em GWT. Todo mundo conversa bastante e socializa, tem uma galera que, como eu, não era usuário de Mac e ficamos batendo a cabeça e chorando as pitangas juntos.

Durante meu tempo na beach eu aproveitei para brincar com o Antlr. No Fragmental.tw eu já falei uma vez que estou implementando um esquema de conectar DSLs via um barramento, eu tenho uma linguagem pronta e preciso das outras para continuar. Ainda não consigo fazer minha linguagem ser aceita pela gramática mas tá indo bem…

Outra coisa legal no escritório é que temos almoços corporativos. Serve para trazer pro escritório o pessoal que está alocado nos clientes pela cidade, ao contrário de consultorias que conheço por aí não é porque você está alocado que você não se relaciona mais com a TW, você simplesmnte é um TWer alocado. Esses almoços são dentro do escritório, aqui em Melbourne são terças e sextas. Hoje tivemos sushi.

E ontem houve também um dos eventos típicos: pelo menos uma vez por mês a TW fecha um bar ou pub e reúne todo mundo da empresa e alguns “clientes selecionados”(pessoas que trabalham nos clientes e possuem o espírito “cool”da TW).

Hoje foi meu último dia na beach, vou ser alocado em um projeto a partir de segunda. O legal é que o prédio do cliente é vizinho ao apartamento onde estou morando, literalmente à cinco minutos andando de casa.

Noticias de Down Under

Tuesday, November 27th, 2007

Apos trinta horas de cansativa viagem cheguei a Melbourne sexta-feira passada. A cidade eh linda, o povo amigavel.

Estou no finzinho do meu segundo dia na ThoughtWorks, no escritorio de Melbourne por enquanto. Ontem eu ganhei meu MacBook Pro (e isso explica porque este post nao tem acentos, nao sei usar isso direito) e ainda estou matando o backlog de uma semana sem computador decente. Mais em breve.

Packin’

Saturday, November 3rd, 2007

Acho que vocês devam imaginar como estão as coisas: A casa cheia de caixas, a agenda lotada, formulários da receita federal, procurações, certidões, quebras de contrato, exame demissional… Previsão de embarque é, se tudo correr bem, dia 20/11 e temos muito pouco tempo para resolver tudo.

Meu perfil do LinkedIn já foi atualizado e acabo de saber que meu primeiro projeto será em Melbourne. Estávamos preparados para ficar direto em Sydney mas só vamos para lá depois de pelo menos 6 meses, que é o tempo estimado deste projeto.

Tudo Novo de Novo

Tuesday, October 30th, 2007

Alguns já sabem, outros fingem não saber, outros entenderam errado, outros não entenderam e tem os dois ou três que de fato não sabem, mas o fato é que estamos, minha esposa e eu, deixando o país. FAQ abaixo.

Mas por quê?

Mudar de país é uma decisão complicada mas é algo que sempre quisemos. Não sei se vou de vez, se volto, se vou ficar na Austrália, se vou para outro país depois… é uma experiência nova e enriquecedora e não quero ter planos para tão longo prazo. Meu objetivo imediato é abrir meus horizontes tanto culturais, morando na Oceania, quanto profissionais, trabalhando na ThoughtWorks.

Quando vocês vão?

Espero ir logo após o ConexãoJava.

Mas por que a ThoughtWorks? Que houve na Globo.com?

A Globo.com é certamente o lugar mais interessante onde já trabalhei até hoje. É uma empresa onde existe um ambiente exatamente igual ao de qualquer grande empresa conservadora mas é um lugar onde tem gente querendo resultados, e estas pessoas estão geralmente em posições de decisão e isso permite aos interessados realizar um bom trabalho. Tive sorte de estar numa equipe onde não há escolha: ou se é eficiente ou não se é nada; e desta forma conseguimos introduzir muita coisa legal. Em breve deve estar visível para o público nosso primeiro projeto feito com técnicas de Scrum e devo blogar mais sobre a experiência.

Tenho certeza que o Guilherme Chapiewski, que assume minha posição, vai conseguir ainda mais resultados e continuar com o trabalho de mostrar que desenvolver software não é construir prédio.

Basicamente é uma empresa de onde dificilmente eu sairia se não fosse mudar de país, e onde minha saída foi completamente apoiada -basicamente fico na Globo.com até o dia da minha viagem ou quase.

A ThoughtWorks é também certamente uma empresa peculiar. A quantidade de pessoas interessantes, o foco em qualidade e métodos eficientes para gerenciar projetos são um fator que dificilmente se encontra em uma empresa tão grande. No mais a empresa vem investindo muito no meu mais novo interessa, Language-Oriented Programming e Domain-Specific Languages.

Mas por que Austrália?

Inicialmente eu havia sido chamado para aplicar para uma vaga em Londres mas desisti. Surgiu então a oportunidade de ir para Sydney, lugar com clima e cultura mais semelhantes aos nossos e com as típicas vantagens de primeiro mundo. Além disso a ThoughtWorks Australia é sede de iniciativas importantes como a ThoughtWorks Studios.

E o que você vai fazer lá?

Minha posição é como consultor, na ThoughtWorks não existem muitos níveis -mesmo numa empresa com mais de mil funcionários entre você e o dono da empresa ficam menos de cinco pessoas.

Como foi a seleção?

Não há porque mentir: Longa, cansativa e trabalhosa. A ThoughtWorks se orgulha de fazer todos os seus consultores passar pelo mesmo processo, que é bem rígido. Fowler já falou sobre isso e a maioria das lendas é verdade. No entanto não é difícil. Basta você ter uma base razoável sobre desenvolvimento de software.

Como fica o blog? E o RioJUG? E a IASA? E o GUJ? E os artigos? E as listas?

Minhas atividades no Brasil continuam as mesmas, feitas remotamente é claro.

No mais eu queria agradecer à todo o apoio dado por tantos amigos que nem teria como listar. Vocês sabem que são. Obrigado!