RSS .92| RSS 2.0| ATOM 0.3
  • Home
  • Artigos
  • Publicações
  • Apresentações
  • Interviews
  • Livros
  • Contact
  • About
  • O importante é a caminhada

    December 23rd, 2008

    Discussões sobre processos e metodologias de software são um assunto recorrente hoje em dia. De 2 anos para cá, a situação vem mudando bastante, e muitas empresas estão adotando metodologias ágeis, destacadamente o Scrum.

    Eu gosto muito de várias das práticas do Scrum, como também gosto de práticas de XP. O que eu não gosto muito é da necessidade de algumas pessoas de serem “doutrinadas”.

    Quando aprendemos alguma ferramenta, metodologia, prática ou qualquer outra coisa, é normal ficarmos empolgados quando é algo bem feito. A ferramenta/metodologia/prática pode ser ótima para várias situações que encontramos com freqüência. É ótimo que seja assim, pois nosso estudo será recompensado com sucesso em problemas reais e melhores resultados nos nossos projetos.

    O que me incomoda é ver posturas xiitas, querendo adotar metodologias como Dogmas. “Você quer fazer o quê?? Isso é contra as práticas do Scrum! Você será punido dolorosamente!:)

    Por falar em Dogma, uma cena do filme homônimo me veio à cabeça, e é muito interessante. Nesta cena o Matt Damon (que é um anjo renegado no filme) fica conversando com uma freira, e renega várias das crenças às quais a freira vivia apegada há anos.

    Como ele era um anjo renegado, é claro que ele conhecia muito mais da doutrina católica do que a freira. Ele conhecia muitos detalhes que estavam por trás do que a freira havia estudado durante décadas, e então ele usa uma argumentação convincente e cheia de evidências para convencê-la de que ela havia sido enganada durante todo este tempo. No final ele comenta com o Ben Affleck (outro anjo renegado) que fazer isso é o seu hobby. Derrubar crenças e dogmas. Por favor ignorem qualquer conotação religiosa deste trecho, só tomei esse exemplo porque ele é semelhante ao que vemos no mercado de software.

    Isso não acontece só com metodologias. Outro tema polêmico são as certificações. Não sou favorável a nenhum dos extremos. Eu não acho que possuir certificações indique precisamente se um profissional é bom ou não. Conheço profissionais com várias certificações que eu não colocaria no meu time de forma algum. Conheço também profissionais excepcionais que não ligam para qualquer certificação, e não correm atrás de nenhuma delas.

    Um bom exemplo desse último caso é meu amigo e guru Bairos, que é um dos profissionais que eu mais respeito tecnicamente. Eu confiaria nele nos projetos mais críticos e difíceis, e já tive várias demonstrações de como ele se sai nessas situações. Talvez ele até tenha uma certificação de Programmer antiga, mas não sei nem se ele tem alguma. Entretanto, aposto todas as minhas fichas nele antes de procurar qualquer portador de múltiplas certificações.

    Agora, já vi argumentos do lado extremamente oposto, como “Você faz certificações?? Ah, você é fraco!”. Essa postura é extremamente imatura na minha opinião.

    Conhecimento e sabedoria são sempre valiosos. Embora as certificações não impliquem que um profissional é bom ou não, o estudo para obter as certificações com certeza pode ser muito válido. Eu tenho as certificações de Java Programmer, Java Associate, Web Component Developer e recentemente passei na 1a prova da certificação de arquiteto Java. Para as certificações de Associate e de arquiteto, eu praticamente não estudei, e não aprendi muitas coisas que me fossem úteis profissionalmente. Já os meus estudos para as provas de programmer e web component foram muito positivos. Aprendi muitas coisas úteis para mim profissionalmente e posso afirmar que me tornei um desenvolvedor mais produtivo e eficiente depois de estudar para essas provas.

    Quando vamos aprender que o importante é a caminhada?? Não é o fato de ter uma certificação ou não que importa mais. Se você evoluiu como profissional estudando para uma certificação, é isso que importa.

    Da mesma forma, ferramentas/metodologias/processos de software não podem ser dogmas que defendemos com unhas e dentes. O ativo mais valioso de um profissional são as suas idéias, seu conhecimento, sua sabedoria.

    Conhecer tecnologias, metodologias e idéias diferentes é sempre positivo. Mesmo que você descubra que na maioria dos casos aquilo que você acabou de conhecer não vai ter tanta aplicação prática, se você amadureceu e aprendeu na caminhada, isso é o mais importante. Não se prenda a dogmas, e continue caminhando e amadurecendo.


    Adeus Globo.com, foi um grande prazer

    November 28th, 2008

    Depois de mais de 2 anos e meio, hoje é o meu último dia alocado na Globo.com. A partir de segunda-feira (01/12) já estarei alocado em um novo projeto, também nas Organizações Globo, mas desta vez na Globosat.

    Eu levarei várias boas lembranças, de um período que foi muito positivo para mim. Comparando a minha experiência e maturidade agora com o momento em que entrei na Globo, a diferença é enorme. Tive a oportunidade de trabalhar com profissionais de altíssimo nível e em projetos de enorme importância técnica e de negócio. Tive também a sorte de atuar em áreas com as quais tenho muita afinidade e interesse, o que ajuda bastante no envolvimento de qualquer profissional.

    Quando cheguei à Globo pude vivenciar uma situação nova para mim. Passei a ter a satisfação de ir trabalhar feliz todos os dias. Atuando em um ótimo ambiente de trabalho no qual o software fica em primeiro plano. Com o benefício extra de saber que meu trabalho teria a visibilidade do maior portal de internet da América Latina.

    Além disso, posso dizer que vivi muitos progressos dentro da empresa. Acompanhei o surgimento de produtos como o G1, o 8P, o Futpedia e o Musas, além de um progresso fantástico na plataforma de Vídeos. Acompanhei de perto a produção interna para eventos como a Copa de 2006 e as Olimpíadas de Pequim. Poder vivenciar esse crescimento da empresa foi muito interessante.

    Também me deixou muito feliz a abordagem da Globo.com em relação a Open Source. Quando cheguei na empresa, todo mundo usava Windows, o servidor de aplicações mais usado era o Weblogic e embora já existisse o uso de muitos softwares open source, isso não fazia parte da cultura da empresa.

    Hoje em dia a relação da Globo com Open Source é excelente. Todos apostam no uso de Open Source, os desenvolvedores todos usam Linux, nossos servidores de aplicação são quase todos Open Source, já há vários projetos com banco de dados open source, e a maturidade dos profissionais em relação a Open Source aumentou muito. Pra mim isso foi muito gratificante. Durante mais de 1 ano e meio eu tive a satisfação de trabalhar full time com Linux, e acredito que consegui contribuir um pouco também para que outros utilizassem de forma produtiva.

    Ainda mais importante do que a relação com open source foi a adoção de metodologias ágeis. Quando cheguei na Globo.com a maioria dos projetos era no estilo Waterfall. Não é necessário explicar com detalhes aqui, mas era muito perceptível que os projetos não andavam na velocidade que poderiam.

    Aos poucos o Scrum começou a ser utilizado, e alguns meses depois isso desencadeou uma série de mudanças positivas na empresa. Este ano inteiro eu trabalhei em um time Scrum, e foi uma experiência excelente. Passamos a ter uma equipe multi-disciplinar, tendo contato diário com um designer, com um arquiteto de informação e um desenvolvedor client-side. Isso foi muito benéfico para mim. Acompanhar de perto o trabalho de profissionais de outra especialidade me ensinou muito sobre a atuação deles, e claro, aprendi muito sobre client-side e passei a gostar disso, o que é fundamental para qualquer desenvolvedor web.

    Ao longo do ano nós amadurecemos muito a nossa forma de trabalho, e a utilização de práticas ágeis foi fundamental nisso. Claro que ainda existem arestas a serem aparadas e pontos que precisamos melhorar, mas sem dúvida nosso time evoluiu muito esse ano.

    Tecnicamente o ano foi muito bom para mim também. Participei de projetos muito interessantes como a migração para o e-mail no Google, onde atuei diretamente na integração entre as empresas. Outros projetos muito bacanas foram o novo cadastro e a nova Central do Usuário.

    O projeto de integração com o Google foi o primeiro projeto crítico no qual utilizamos REST, e como tivemos muito sucesso, todas as nossas aplicações já estão usando REST, e falta mais um pouquinho só para que nossa arquitetura seja 100% migrada de comunicações via EJB para REST. Aprendi muuuuuuuito nesse processo, foi uma experiência excelente.

    Os projetos do Cadastro e da Central foram muito interessantes do ponto de vista de produto e do ponto de vista de desenvolvimento. As 2 aplicações foram desenhadas para terem módulos dinâmicos de cadastro. Isso permite que cada produto tenha o seu próprio template de cadastro, e as informações requisitadas dos usuários são configuradas por uma ferramenta de administração.

    O desenvolvimento destas aplicações exigiu um trabalho muito interessante de modelagem e desenvolvimento, com muitas refatorações até que chegássemos no modelo final. Aprendi muito também com esses dois projetos.

    Mas nem só de software vive uma pessoa :)  Nesse meu período na Globo.com eu conheci muitas pessoas fantásticas e fiz muitos amigos. O ambiente de trabalho e as pessoas da Globo.com são um dos maiores motivos para que tenha sido tão legal trabalhar na empresa, e com certeza vou sempre me lembrar disso.

    Meu time de desenvolvimento esse ano é muito bem entrosado e positivo. Tacaram na mesma mistura 2 cariocas, 1 capixaba, 1 prudentino e 1 paraense, e deu muito certo :) Gostei muito da experiência, e vou com certeza sentir falta desses picaretas :)

    Estou indo agora para um novo projeto na Concrete, atuando na Globosat. O pouco que sei do projeto até agora me pareceu muito interessante, e essa mudança de cliente é fundamental para as minhas perspectivas dentro da empresa. Torço muito para essa minha nova empreitada seja tão interessante e produtiva como meu período dentro da Globo.com, e claro, espero contribuir bastante para o sucesso da Concrete em um novo cliente e novo projeto.

    No final das contas, sinceramente espero que eu tenha contribuído tanto com a Globo.com quanto ela contribuiu para a minha carreira e o meu amadurecimento. Foram 2 anos e meio sensacionais e tenho certeza de que a empresa continuará no seu caminho de enorme sucesso, que pude acompanhar neste período.

    Chegou então o momento de dizer Adeus Globo.com, foi um grande prazer para mim!


    Marketing pessoal para desenvolvedores - dicas

    October 29th, 2008

    Mais cedo eu escrevi um post sobre marketing pessoal, mais focado na questão motivacional para prestar atenção nisso. Como falei, estou agora escrevendo um post bem mais objetivo, com algumas dicas sobre como melhorar no seu marketing pessoal e conquistar um pouco mais de visibilidade na carreira.

    A idéia deste post é colocar dicas sem uma ordem específica, e comentar porque elas podem ser importantes. Provavelmente este post será atualizado várias vezes ao longo do tempo para agregar idéias novas, e com certeza as opiniões de outras pessoas ajudam muito para melhorar o conteúdo aqui. Não hesite em deixar suas observações :)

    1. Escreva um blog: essa é a forma mais fácil e objetiva de expôr o seu trabalho para outras pessoas. Você não precisa ficar escrevendo com inúmeros detalhes tudo o que está fazendo. Mencione coisas relevantes que possam ser interessantes a outras pessoas, e naturalmente as pessoas começarão a ler o que você escreve. O Wordpress é uma excelente ferramenta de blogs, e permite que você mantenha gratuitamente um blog hospedado por eles, com ótimo nível de serviço.
    2. Participe de grupos profissionais da sua área: grupos profissionais como os Java User Groups e semelhantes são muito interessantes para você conhecer outras pessoas fazendo o mesmo que você. Após algum tempo você terá conhecido as pessoas mais relevantes e conseguirá saber o que tem sido usado com sucesso, e o nível geral das pessoas da área. Isto é ótimo para trazer novas idéias e ajudar em decisões estratégicas. Networking é tudo.
    3. Tente se manter atualizado sobre as novidades mais interessantes da área: isto é fundamental para que você se torne e se mantenha como um profissional de destaque por muito tempo. Se você ainda está programando sistemas client-server em Delphi, provavelmente não terá muitas coisas novas para discutir com outras pessoas, e acabará um pouco esquecido. Por outro lado, se você está trabalhando com novidades quentes em linguagens dinâmicas, Web 2.0, redes sociais e outras coisas que estão em destaque no momento, provavelmente terá muita gente interessada em conversar com você.
    4. Tente fazer apresentações de coisas interessantes no momento: se você fizer apresentações sobre assuntos que estão sendo muito debatidos no momento, provavelmente atrairá o interesse de várias pessoas. Fazendo boas apresentações, você ganhará mais credibilidade e as pessoas vão SABER que você conhece daquele assunto, e vão querer trocar idéias sobre o assunto contigo.
    5. Vá em eventos relevantes da sua área: em eventos normalmente são apresentados os conteúdos mais bacanas do momento, e você conhecerá mais sobre os caminhos que as coisas estão tomando. Além disso, é uma ótima oportunidade para conhecer pessoas e trocar idéias sobre temas que não há tanta gente qualificada para conversar.
    6. Procure saber o que outras pessoas estão estudando e utilizando nos projetos, e troque experiências: casos de sucesso são o principal fator para a sobrevivência de qualquer tecnologia, metodologia ou qualquer outra coisa relacionada a software. Conheça o que está sendo usado com sucesso, e comente o que está funcionando pra você e o que está te trazendo problemas. Assim você aprenderá bastante com as discussões e as pessoas saberão o que você está fazendo.
    7. Leia e interaja em outros blogs relevantes: mesma motivação que o item anterior, com o bônus de que você estará interagindo com a elite da sua área, e as discussões com essas pessoas podem te trazer muitas idéias legais, e te trarão ótimos contatos.
    8. Participação em projetos open source ajuda muito: projetos open source agregam ótimas mentes e fomentam a participação de várias pessoas diferentes. Mesmo que você não seja um committer, participar em listas de discussão dos projetos e ser um “early-adopter” podem te ajudar a ficar mais relevante, e a ser uma referência para outras pessoas.

    Bom, espero que essas dicas possam ser úteis para outras pessoas, e já deixo claro que este post é um trabalho em progresso. Certamente melhorarei o conteúdo aqui e tentarei colher mais idéias interessantes sobre o assunto. Se você estiver interessado no tema, pode alavancar mais um pouco o seu marketing pessoal contribuindo aqui :)


    Marketing pessoal para desenvolvedores - motivação para começar

    October 28th, 2008

    Recentemente tive umas conversas sobre marketing pessoal, e algumas pessoas me pediram para colocar algumas idéias aqui, então estou o fazendo :)

    Bom, primeiro um alerta. Eu estou longe de ser um guru de marketing pessoal, e ainda preciso e estou aprendendo bastante coisa. Caso você tenha idéias sobre este assunto que eu não tenha mencionado aqui, por favor compartilhe-as, pois eu também tenho todo o interesse em conhecer mais disso.

    A origem das discussões foi um post que saiu no Coding Horror, que cita alguns posts do Steve Yegge, um engenheiro do Google bastante famoso, que tem alguns dos melhores posts sobre carreira em software que eu já vi.

    Vou começar contextualizando um pouco com a motivação que eu tive para me ligar mais em marketing pessoal. Este não é um post muito curto, então se você não estiver com saco para ler, melhor parar por aqui mesmo :)

    Eu comecei a prestar atenção em marketing pessoal depois de algumas frustrações intensas, e claro, após observar que isso de fato faz muita diferença. Sobre frustrações, deixe-me explicar. Durante um certo tempo na minha carreira eu tinha a sensação de que eu estava quase sempre com azar, por estar em projetos com pouca visibilidade, naquelas situações em que não faria a menor diferença se você fizesse o melhor trabalho do mundo ou um trabalho picareta e sem-vergonha. Eu odiava essa sensação.

    Digo mais, eu odiava SABER que eu tinha muito mais capacidade que outros caras que estavam aparecendo muito mais que eu, e muitas vezes os caras não tavam fazendo NADA de diferente dos outros. Depois de algum tempo frustrado, eu percebi que nós mesmos temos que nos colocar nas situações que desejamos. Se você ficar esperando os seus chefes ou “a gerência”, ou “a direção” PROCURAR quem são os qualificados para colocá-los em destaque, tu tás ferrado meu amigo! Isso não existe.

    Eu passei por uma situação que me deixou puto demais um tanto irritado. Tinha uma aplicação legada na equipe que eu estava que era uma porcaria. A equipe estava meio acomodada, e apesar de ninguém gostar da aplicação, ninguém nunca movia uma palha pra mudar nada.

    Pois bem, no meu tempo vago eu peguei esta aplicação e comecei a migrá-la para usar uma versão mais recente do JDK refatorando as coisas que mais me incomodavam na arquitetura. Mas tentando manter a topologia, de forma que os outros desenvolvedores não tivessem dificuldade em trabalhar na nova implementação. Quando eu tinha migrado uns 40% da aplicação, eu mostrei para outras pessoas como estava indo a coisa. Todos gostaram e eu consegui alguma ajuda nesta migração.

    Poucas semanas depois, já tínhamos migrado a aplicação integralmente, com exceção de alguns requisitos secundários que precisariam ser validados oficialmente. Nessa época surgiu um daqueles projetos blockbuster que simplesmente mobilizam tudo e todos, aí fui forçado a abandonar esta migração temporariamente.

    Um pouco depois que esse projeto novo começou, eu fui descobrir que a migração que eu comecei estava sendo passada adiante, e outras equipes e alguns gerentes já estavam sabendo. Infelizmente para mim, foi “omitido” o fato de que eu havia começado originalmente esse projeto, e os louros estavam sendo passados a outras pessoas.

    É claro que isso me deixou muito puto desapontado, e desde esse momento eu disse para mim mesmo que não poderia ficar sujeito a isso nunca mais. Eu vi como era fundamental que as pessoas soubessem o que eu estou fazendo, pois senão eu continuaria frustrado por muito tempo.

    Deste episódio infeliz pra cá, passei a prestar muito mais atenção em marketing pessoal. Estudei muita coisa interessante, criei o blog, escrevi artigos, me apresentei algumas vezes, interagi muito mais com outras pessoas, outras equipes. Isso tem sido muito legal e positivo para mim, e sem dúvida hoje eu estou muito mais satisfeito profissionalmente do que antes.

    Este é um fato com que temos que conviver. Tão importante quanto matar a cobra é mostrar o pau (sem trocadilhos :) ).

    Eu conheço profissionais de tudo que é jeito. Tem os caras muito bons que ficam na sua, sem pensar muito em marketing. Tem também uns marketeiros de primeira que não fazem nada de importante, mas estão sempre dando um jeito de ficar bem na fita. E tem uns caras que são muito bons e também estão ligados na questão de marketing pessoal. De uma maneira geral, estes últimos são os que têm mais sucesso.

    Caras que sejam puramente marketeiros uma hora vão cair. Ninguém consegue se sustentar só com marketing. Caras que são muito bons, mas ficam na sua, vão ter que dar sorte de encontrar as pessoas certas e estarem nos lugares certos, pois caso contrário seu sucesso será limitado. E os caras muito bons que sabem se vender terão uma chance muito maior de sucesso, pois eles cavam as oportunidades. Eles procurarão os lugares certos, e a chance de serem lembrados quando surgirem as oportunidades é muito maior.

    É claro que fazer sempre um bom trabalho é a coisa mais importante para a sua imagem. Se você não tiver esse ponto a seu favor, esqueça de todo o resto. Porém, muitas vezes isto não é suficiente, e é nestes casos que o marketing pessoal pode te ajudar na carreira.

    Uma frase que ouvi de um grande líder e que eu não vou esquecer nunca é: “Poder não se pede, poder se toma!”. Páre de reclamar que seu chefe não tá dá espaço, conquiste seu espaço! ;)

    A propósito, eu estou me esforçando para me enquadrar na categoria dos caras bons que sabem se vender. Como a maioria dos desenvolvedores, eu sempre dedico mais tempo à parte técnica, mas venho aprendendo melhor sobre a questão do marketing também, e isso com certeza é de suma importância para qualquer profissional.

    Escreverei em seqüência um outro post sobre este assunto, mas com dicas objetivas sobre o tema, para facilitar a leitura dos impacientes :)


    A Concrete está contratando de novo

    September 10th, 2008

    Olá pessoal, mais uma vez está rolando um processo grande de contratação na Concrete e estou ajudando na divulgação das vagas.

    A Concrete é uma empresa muito legal para quem gosta de software, e dou minhas melhores recomendações sobre a empresa.

    Estou ajudando na divulgação de 4 vagas para 3 diferentes perfis, com a descrição abaixo. Se você se enquadrar neles ou conhecer alguém nesse perfil, por favor envie um e-mail com seu currículo para marcia.cataldi@concretesolutions.com.br. Quem quiser pode me copiar (blpsilva@gmail.com) no e-mail também, mas não é necessário.

    Analista de Sistemas Java Sênior (1 vaga)

    Fundamental:
    - Java EE 5 e/ou 6
    - JPA, Hibernate, Struts
    - Experiência de uso com pelo menos um dos seguintes application servers: BEA WebLogic 9 ou 10, Jboss AS, Apache Tomcat e Geronimo.
    - Conhecimento de SQL e modelo de entidade-relacionamento.
    - Inglês para leitura e estudo de material técnico. Inglês para conversação é um plus.

    Desejável:
    - Graduação em Ciência da Computação, Engenharia Eletrônica ou Computação, Informática e Matemática
    - Conhecimento e interesse em outras linguagens de programação é bastante apreciado
    - Familiaridade com web services e suas especificações WS-*

    Analista de Sistemas Java Pleno (1 vaga)

    Fundamental:
    - Java EE 5 e/ou 6
    - JPA, Hibernate, Struts
    - Experiência de uso com pelo menos um dos seguintes application servers: BEA WebLogic 9 ou 10, Jboss AS, Apache Tomcat e Geronimo.
    - Conhecimento de SQL e modelo de entidade-relacionamento.
    - Inglês para leitura e estudo de material técnico. Inglês para conversação é um plus.

    Consultor/Analista de Infra-Estrutura (2 vagas)

    - Atuar com suporte à área de produção de TI
    - Sólidos conhecimentos de ambientes Linux
    - Sólidos conhecimentos em SQL
    - Conhecimentos em Oracle e SQL Server para troubleshooting e análise de performance que cause impactos em aplicações
    - Desenvolvimento e manutenção de shell scripts
    - Sólidos conhecimentos em tópicos de redes TCP/IP, LAN, DNS
    - Inglês para leitura e estudo de material técnico.


    Generalistas ou especialistas em um time ágil?

    June 17th, 2008

    O InfoQ publicou uma discussão interessante sobre a escolha de perfis em um time ágil. Nesta discussão, alguns defendem que um time formado somente por especialistas seria mais performático do que um time formado somente por generalistas. Outros defendem a escolha de especialistas somente em último caso. Existem também os que defendem o meio termo.

    Eu tenho uma opinião semelhante à do Scott Ambler:

    One approach is to build a team with some people who are generalists and some who are specialists, the generalists provide the glue within the team and focus on the bigger picture whereas the specialists focus on the detailed complexities of your project. This works well because the strengths of generalists balance the weaknesses of specialists and vice versa, and it is often quite useful for a generalist to pair with a specialist because of this balance. A better approach would be to build a team comprised of people who are generalists with one or two specialties — generalizing specialists.

    Eu acho que é legal ter um time equilibrado, onde os especialistas aos poucos vão melhorando habilidades diferentes de sua área principal. Não acho que necessariamente começar um time com especialistas seja uma má decisão, contanto que se estimule a versatilidade. Depois de algum tempo, especialistas multi-disciplinares podem aprender bastante uns com os outros e formar um time de excelente nível, com todos melhorando seu nível geral.

    Eu particularmente estou numa fase em que estou tentando aprender bastante sobre áreas nas quais eu ainda não sou tão forte como gostaria (a área de client side por exemplo). Acredito que o mais importante é o sentimento de humildade quanto aos nossos conhecimentos e o desejo de sempre estar melhorando. A decisão de qual caminho traçar vai depender das estratégias e escolhas pessoais de cada um, mas a humildade e a busca pela melhora constante devem estar sempre presentes.


    Bruno Pereira is Digg proof thanks to caching by WP Super Cache!