RSS .92| RSS 2.0| ATOM 0.3
  • Home
  • Artigos
  • Publicações
  • Apresentações
  • Interviews
  • Livros
  • Contact
  • About
  • Dicas de estudo para se tornar um desenvolvedor web produtivo

    April 27th, 2009

    Um amigo meu me pediu umas dicas de estudo para se tornar um desenvolvedor web produtivo e com boa empregabilidade. O ideal para ele é ter como base a plataforma Java, mas sem ficar restrito a Java. Talvez isso possa ser útil para outras pessoas também, então colocarei as dicas a seguir.

    Framework web Java

    Considerando o critério empregabilidade, é fundamental conhecer razoavelmente Struts 1.x. Eu creio que poucos projetos hoje em dia sejam iniciados usando o Struts 1.x, mas a quantidade de aplicações em produção com esse framework é enorme, e durante um bom tempo essa realidade ainda se manterá.

    Depois do Struts 1.x, nenhum outro framework web Java conseguiu adoção semelhante, então é difícil recomendar uma opção mais moderna que garanta alguma coisa. É provável que a melhor opção “moderna” em termos de empregabilidade seja Java Server Faces, mas não me sinto bem em recomendar que ninguém estude JSF. Se alguém quer seguir na linha do JSF, eu recomendaria o JBoss Seam, do qual ouvi boas avaliações, mas nunca usei.

    Dos frameworks web Java mais recentes, o meu preferido é o Spring MVC 2.5.x. O importante da versão 2.5 em diante é que os controllers suportam anotações para configuração, em vez dos XMLs monstros que eram a opção anterior. A maioria dos frameworks web está seguindo numa abordagem RESTful de arquitetura, o que me agrada também. O Spring MVC é um dos que está fazendo isso, e com uma abordagem legal.

    Além disso, todos os componentes do Spring acabam te “seduzindo” a usar outros componentes dele, pela conveniência e pela qualidade dos mesmos. Então se você usar o Spring MVC, é muito provável que use a injeção de dependências, o controle transacional, talvez o web flow, entre outras coisas.

    Frameworks web da “nova geração”

    Qualquer desenvolvedor web hoje em dia TEM OBRIGAÇÃO de olhar pelo menos um entre Django, Grails e Ruby on Rails. O ideal mesmo é avaliar os três e ter um deles como opção principal. Eu já conheço legal o Grails e estou evoluindo rápido com o Django. Em algum momento esse ano eu dedicarei um bom tempo avaliando e fazendo algo relevante com Ruby on Rails também.

    Pode parecer que leva um tempo enorme para conhecer os 3, mas isso não é verdade. Os 3 são extremamente produtivos e têm muitas características semelhantes. Quando você começa a utilizar um deles já tendo experiência com outro, a curva de aprendizado fica muito rápida.

    Um aspecto muito legal do aprendizado desses frameworks da “nova geração” é que você tem contato com outras formas de fazer software (para quem tem um background Java), outras comunidades, e várias idéias interessantes que te farão um programador melhor em qualquer linguagem ou plataforma. Se você ainda não conhece nenhum dos 3, não perca mais tempo e escolha um para começar. E de preferência conheça os outros em seguida também :)

    HTML, CSS, Web Standards

    Estamos em 2009. Embora ainda vejamos muitos sites bisonhos que só funcionam com o IE, se você é um desenvolvedor que se preza você precisa conhecer bem HTML, CSS e os web standards. Na verdade, fazer o site funcionar no IE 6 por exemplo é secundário. Você precisa aprender primeiro a gerar HTML e CSS válido de acordo com as normas da W3C, que garantem padrões de qualidade e interoperabilidade entre browsers. Leia de cabo a rabo todos os tutoriais referentes a essas coisas no W3Schools. É muito rápido estudar por lá, e é uma ótima referência depois.

    Depois que você conhecer isso, um pouco de prática na escola norueguesa de software fará suas aplicações rodarem no IE 6 também :)

    Javascript

    Ainda há pessoas que escrevem javascript na unha, mas acho que elas são cada vez mais raras. Temos hoje uma oferta enorme de bibliotecas javascript para resolver todos os problemas comuns dos desenvolvedores web. Eu era um fiasco em javascript antes de conhecer o jQuery, mas há um bom tempo eu gosto MUITO de javascript, e minha produtividade no client-side melhorou absurdamente.

    O jQuery tem uma abordagem que eu acho excepcional. Temos 3 aspectos claramente distintos para tratar em uma página web: Estrutura (HTML), Estilo/Visual (CSS) e Comportamento (Javascript). Se você fizer tudo direitinho e usar o jQuery, essas 3 coisas ficam totalmente desamarradas.

    Você não precisará colocar nenhuma declaração de estilo na estrutura (leia-se: sem CSS inline). A definição do comportamento fica totalmente por fora da estrutura. A beleza do jQuery está em aplicar todo o comportamento da página de uma maneira não-intrusiva, e com uma abordagem muito limpa. Ah, e o javascript funcionará em todos os browsers sem você ter que tratar disso explicitamente. Um sonho, não é mesmo? :)

    Há várias outras opções, e não estou defendendo a idéia de que se use apenas uma. Eu uso o jQuery para tudo que posso, e até hoje não precisei de outra biblioteca, mas vá em frente e experimente algumas opções até encontrar o que lhe atender melhor.

    Plugins legais do Firefox

    Firebug

    Além do jQuery, outra descoberta que mudou minha opinião e gosto por client-side foi o Firebug. Ele ajuda MUUUUUITO na criação do HTML/CSS das páginas, pois você consegue inspecionar de forma fácil o conteúdo e o estilo, e aplicar mudanças imediatas sobre o que está vendo. Depois de acertar as coisas pelo Firebug, você simplesmente aplica as mudanças no HTML/CSS originais e continua implementando sua página. Além disso, ele te permite debugar javascript e analisar as requisições HTTP detalhadamente. Eu já o utilizo há pouco mais de 1 ano, e ele contribuiu muito para meu amadurecimento no client-side, e me dá muito mais produtividade.

    Web Developer

    Um companheiro freqüente do Firebug é o Web Developer. Ele te permite inspecionar detalhadamente uma porção de coisas na sua página, como informações de todas as imagens, todos os formulários, estilos, entre outras coisas. Além disso, permite a manipulação de cookies, valida HTML/CSS/Javascript, e tem muitas outras funcionalidades úteis. É indispensável para trabalhar com web, assim como o Firebug.

    Screengrab

    É muito comum termos que mostrar uma página para outras pessoas, e nem sempre elas têm acesso à nossa máquina. Para facilitar isso, podemos usar o Screengrab, que é semelhante a um Print Screen, mas salva o conteúdo completo da página como uma imagem. Isso é bem melhor do que o Print Screen, pois pega apenas a área útil da página (sem pegar barras do Firefox e barra de tarefas) e pega toda a área útil. As regiões da página que precisam ser “roladas” para visualização também são incluídas na imagem, o que é certamente o desejado.

    NoScript

    O NoScript é um plugin bem incômodo para uso em geral. Ele bloqueia a maioria dos javascripts e você precisa ficar liberando a execução de scripts toda hora. Quando não estou desenvolvendo eu sempre deixo ele desligado.

    Entretanto, para desenvolver ele ajuda em algumas situações. Por exemplo, você pode precisar desabilitar alguns scripts específicos da sua página para testar alguma coisa, ou testar se a página funciona sem scripts. Ou então você pode ter uma situação como uma recente minha.

    Eu tive que customizar um plugin do jQuery que faz algumas animações, e aí o HTML da página ficava mudando o tempo todo. Eu precisava customizar o HTML/CSS de vários “instantes” da animação, mas era impossível fazer isso com a animação rodando. Para resolver isso, eu usei o NoScript para interromper os scripts exatamente no trecho da animação que eu precisava mudar o HTML/CSS. Com isso, eu conseguia um HTML estático que eu podia mexer pelo Firebug, e consegui trabalhar tranqüilamente nas customizações que eu precisava fazer.

    Conclusão

    Deixei algumas opiniões e dicas sobre algumas coisas de desenvolvimento web, mas é óbvio que eu também tenho muita coisa a aprender. Se alguém discordar de alguma opinião minha ou quiser acrescentar sugestões, estejam convidados a participar :)  Além disso, se alguém tiver mais dicas de extensões do Firefox para desenvolvimento web, eu sempre estou interessado.


    Várias vagas na Concrete

    April 16th, 2009

    Pessoal, a Concrete fechou mais projetos, e estamos com várias vagas, para todos os níveis de experiência. Os principais projetos que temos feito envolvem desenvolvimento de portais colaborativos de internet/intranet, integração de aplicações e soluções móveis.

    No momento atual, temos de 8 a 10 vagas, todas para início imediato e horizonte de longo prazo. Queremos profissionais que tenham paixão por software e auto-motivados, buscando evolução contínua. Profissionais deste perfil encontrarão um ambiente ótimo para seu crescimento dentro da Concrete. A descrição técnica dos perfis pode ser vista a seguir.

    Os níveis de experiência são variados, então entre em contato se você se julgar dentro do perfil de profissional que buscamos. Quem quiser mais informações, não deixe de entrar em contato.

    Desenvolvedor Java (preferencialmente com experiência em Web e/ou Mobile)

    Java SE 5 e/ou 6. Java EE 1.4 e/ou 5.

    JPA e/ou Hibernate são bastante desejáveis. Importante conhecer banco de dados relacionais e mapeamento objeto-relacional.

    Experiência de uso com alguns dos seguintes application servers: BEA Weblogic 9 ou 10, Jboss AS, Jetty, Apache Tomcat  e Geronimo.

    Struts, Spring MVC ou outro framework para web em Java. Boa experiência com Grails, Ruby on Rails ou Django também são válidos, e podem nos interessar mesmo se você não conhecer um framework web Java.

    Inglês para leitura e estudo de material técnico.

    Desejável

    Graduação em Ciência da Computação, Engenharia da Computacão ou Informática

    Conhecimento e interesse em outras linguagens de programação é bastante apreciado: Python, Scala, Ruby, Rhino, Javascript, Perl, OCAML, Common Lisp.

    Bons conhecimentos de client-side (HTML, CSS, Javascript) são muito positivos.

    Conhecimento de plataforma Linux é desejável, mas não obrigatório.

    Conhecimento em shellscripting para Unix/ Linux é muito bem-vindo.

    Os interessados devem enviar um e-mail com currículo para marcia.cataldi@concretesolutions.com.br com cópia para bruno.pereira@concretesolutions.com.br


    O mito da caverna e o brain lock-in

    April 13th, 2009

    Tirado da Wikipedia: “O mito da caverna, também chamada de Alegoria da caverna, é uma parábola escrita pelo filósofo Platão, e encontra-se na obra intitulada A República (livro VII). Trata-se da exemplificação de como podemos nos libertar da condição de escuridão que nos aprisiona através da luz da verdade.“. Referência completa aqui.

    Não vou comentar sobre a essência das idéias de Platão, para este fim eu recomendo demais a leitura do texto na Wikipedia. Mas vou traçar um paralelo para situações corriqueiras atuais que nos mostram que a natureza humana não mudou muito nesses mais de 2300 anos que nos separam de Platão :)

    Desenvolvimento com Produtos x Desenvolvimento Customizado

    Ao longo da minha carreira, já estive focado no desenvolvimento com produtos e no desenvolvimento customizado de software. Tive contato com uma variedade razoável de produtos e tecnologias, com diferentes visões para o mesmo problema, e abordagens diversas de construção de software. Hoje em dia fico muito feliz por ter traçado esse caminho, pois nunca ficarei aprisionado na caverna.

    O desenvolvimento com produtos às vezes tem um efeito colateral sobre a maneira das pessoas lidarem com problemas de software. Os produtos são concebidos de acordo com a visão de algumas pessoas sobre uma determinada classe de problemas. A concepção envolve a análise e o raciocínio de alguns profissionais sobre o problema, e o ferramental para prover soluções ao mesmo.

    Isto quer dizer que ao utilizar um produto você está “ganhando” o tempo de raciocinar sobre o problema, e também na construção da solução. É como diz o mantra: “Não reinventar a roda”. Eu concordo plenamente! Porém, quem lê meus textos ou me conhece sabe que eu tenho mais algumas coisas a dizer :)

    Arquiteturas de Referência, Blueprints, Catálogos de Padrões

    Em muitas ocasiões eu vi profissionais experientes que viviam do seu expertise em algum produto. Às vezes o cara já fazia aquilo há anos, e com muita competência. Entretanto, na maioria dos casos em que lidei com profissionais assim, eles tinham a forma de raciocinar “engaiolada” pelos produtos. A “arquitetura de referência“, o “blueprint do produto” ou o “catálogo de padrões” do mesmo. A abordagem do produto é o que geralmente orienta o raciocínio do indivíduo, e ele reluta bastante em fugir dessa zona de conforto.

    Acontece, meus amigos, que o amadurecimento das pessoas tem tudo a ver com sair da zona de conforto. Para dar mais significado às minhas ponderações, eu vou destacar 2 domínios que eu conheço bem e tenho boa experiência: Portais corporativos e SOA (eu sei que o termo está meio condenado, mas permitam-me a liberdade de usá-lo de forma ilustrativa)

    “O que você QUER” x “O que você PRECISA”

    Sobre SOA, o principal objetivo de negócio é facilitar a integração de várias aplicações/serviços heterogêneos. Este objetivo pode ser atendido de várias formas, e há muitos produtos focados em prover o “ferramental necessário”. A questão começa a ficar sinuosa quando se discute “O que você QUER” x “O que você PRECISA“. Se você fica “engaiolado” em um produto, vai tender a achar que PRECISA dos recursos oferecidos pelo mesmo, e que a abordagem dele é necessariamente correta.

    Normalmente os problemas técnicos de SOA caem em uma combinação de topologias dos Enterprise Integration Patterns. Um profissional maduro neste ramo precisa ter familiaridade com estas topologias de integração propostas. As idéias se aplicam em praticamente qualquer problema de SOA, e te dão uma visão de arquitetura desvinculada de uma implementação específica. Não se prenda à visão do produto, conheça a natureza do problema.

    Polyglot Programming

    Neal Ford escreveu sobre esta questão um tempo atrás, e essa idéia também está presente no Pragmatic Programmer. Conhecer diferentes linguagens de programação, outros paradigmas de desenvolvimento e outros produtos é sempre importante.

    Além de raciocinar sob diferentes pontos de vista, você consegue absorver muitas idéias legais fazendo isso. Inúmeras vezes eu adquiri novas idéias ao conhecer diferentes produtos. Isso se soma às suas ferramentas de raciocínio e amadurece sua visão sobre o problema.

    Um programador poliglota consegue aprender novas linguagens, produtos e formas de pensar com muito mais facilidade. Pensar fora da caixa é importantíssimo. Para evoluir essa habilidade é fundamental experimentar diferentes pontos de vista, e ganhar massa crítica.

    Bons produtos ajudam a te dar massa crítica

    Eu converso bastante com alguns amigos sobre software em geral, e um tema recorrente é a análise de projetos que deram certo e projetos que fracassaram.

    Para ter sucesso em um projeto de software, é fundamental que pelo menos um dos membros do time tenha massa crítica avançada sobre o domínio do problema em questão. Se nenhum dos membros tiver, a melhor coisa a se fazer é avaliar um produto bom para o problema que se quer resolver.

    Isso não quer dizer que o produto será a solução final adotada, ele pode servir apenas para te dar massa crítica antes de escolher o caminho.

    Tendo massa crítica, utilize as facilidades dos produtos a seu favor

    Quando você já conhece o domínio e consegue pensar fora da caixa, dá para ter ótimos ganhos de produtividade usando bons produtos. Por exemplo, eu tenho trabalhado muito com portais corporativos, com variadas implementações. Quando analiso um produto de portal, eu verifico, entre outras coisas:

    • Plataformas/tecnologias que ele exige/permite usar
    • Disponibilidade de wiki, fórum, blog, calendário, etc
    • Personalização de estilos/layouts (o cliente quer um portal com a cara dele, não com cara de produto)
    • Facilidade de extensão
    • Repositório de conteúdo
    • Integração de aplicações

    Já conhecendo bem os requisitos na construção de um portal, eu consigo em alguns dias analisar um produto ou implementação customizada de portal e avaliar estes critérios acima. O mundo ideal é trabalhar com um portal que te dê resultados rápidos, mas sem dificultar muito que você o ajuste da forma que o cliente deseja.

    Não caia no mito da caverna, explore sua criatividade

    Fuja dos dogmas, questione os hypes. Não limite a sua visão aos recursos de um produto. Enxergue o que é a complexidade natural do problema e o que é a complexidade introduzida por humanos ou produtos. Não permita que os produtos engessem a sua criatividade. Esteja sempre no controle, e saia da caverna!


    Qual é a sua motivação?

    March 30th, 2009

    “It was post-boom time. By that, Imean the DotCom bubble had burst. The IT sector’s lifestyle had gone from rock ’n’ roll to Holiday Inn lounge act, and it was showing in India as well.

    In fact, what I found was not an army of people, plotting to steal our comforts for themselves. Unlike their counterparts in the West, these people weren’t angry that they had to get a small television set or even that they might not be able to afford this month’s cable TV bill.

    These were sons and daughters who were scraping by, trying to raise money to support their parents and their spouses’ parents. These were mothers and fathers whose IT jobs meant the difference between really educating their children or sending them to a school from which the further educational options have a hard limit. They weren’t trying to steal the American dream. They were trying to squeeze a once-dry economy for a few drops of life-giving cash flow.

    A vibrant society of highly motivated and intelligent people existed here. And they weren’t playing for amenities; they were competing for the survival of their families. You can’t underestimate—or blame—someone with that kind of motivation.”

    Para quem não conhece, este trecho está no começo do excelente livro “My Job Went to India“, do Chad Fowler. O livro é muito interessante, e eu recomendo a todos, mas não é o tópico principal do que quero falar.

    Neste trecho, o autor fala da enorme motivação de profissionais indianos na luta por um emprego que teria pouca expressão nos Estados Unidos, mas é uma forma de trazer esperanças a uma família inteira na Índia. Um profissional nos Estados Unidos procuraria esse emprego como um quebra-galho até encontrar um melhor. O profissional indiano lutaria com todas as suas forças - como se fosse sua última chance no mundo - para sustentar e trazer esperanças a toda uma família, que vive com tanta dificuldade. Realmente complicado subestimar ou criticar alguém com esse tipo de motivação.

    A realidade é que o mercado de software é extremamente competitivo, e para chegar e se manter no topo não basta uma boa formação, não basta talento, e não basta só motivação. Claro que alguém forte nos 3 aspectos terá uma chance bem maior que a média de ter sucesso. Mas mesmo alguém que tenha uma boa base, talento e motivação terá que encontrar o caminho e as circunstâncias adequadas para se destacar.

    A principal característica que eu vejo nos indivíduos realmente bem-sucedidos é a ambição. A ambição fomenta a motivação, e te dá forças adicionais para continuar perseguindo seus objetivos mesmo quando você está cansado e as coisas não parecem muito bem.

    Um bom profissional com pouca ambição irá fazer o seu trabalho com capricho e cumprir com suas obrigações. Um bom profissional ambicioso sabe que “Poder não se dá, Poder se toma”. Se você fica esperando alguém te mandar fazer alguma coisa e esperando as decisões superiores se refletirem nas suas tarefas, provavelmente você está ou ficará estagnado em breve, e saia da frente, pois você será atropelado.

    Se um empreendedor não for ambicioso e não tiver visão de negócio, ele fracassará, e rápido. Um empregado fracassará também, mas lentamente. Ele pode se manter naquele emprego/cargo sem emoções durante anos. Talvez sem riscos, mas também sem grandes perspectivas de melhorar.

    Os caras que geram mais valor para as empresas não são os bons executores de ordens. O mercado tem espaço para eles também, mas premia de forma diferenciada os que agem como donos do negócio, mesmo que estejam em níveis hierárquicos muito abaixo dos donos.

    Já faz pelo menos 2 anos que eu não estudo e me preparo para ter empregabilidade. Eu entrego meu melhor esforço dia após dia porque eu sou MUITO ambicioso. Eu não quero ter um bom emprego. Eu quero gerar um enorme retorno para os clientes e para minha empresa, e ser premiado por isso.

    Eu não quero parecer um cara legal para meus chefes e conseguir um aumento porque eu cumpro com as minhas obrigações. Eu quero trazer tantos resultados positivos que o poder e o reconhecimento serão automáticos e rápidos. Eu não quero pedir para ser promovido ou reconhecido, eu quero deixar óbvio que o meu valor é grande demais para me sub-utilizarem.

    Além disso, não quero me restringir a satisfazer o sonho dos outros. Quero enxergar e explorar oportunidades de negócio próprias. Eu já tive um perfil “pesquisador e estudioso”, e aprendi e amadureci muito com essa postura. Mas hoje me vejo muito mais como um “realizador e empreendedor”, usando tecnologias para buscar resultados.

    Essa é a minha motivação, e eu estou com a faca nos dentes atrás dos meus objetivos. Quais são as suas motivações?


    As diferentes facetas de vendor lock-in

    March 26th, 2009

    Durante muito tempo trabalhei com desenvolvimento de software customizado, principalmente utilizando componentes open source. Nos últimos meses venho tendo uma experiência intensa com produtos comerciais, de código fechado.

    Uma questão muito importante no mercado de software é o lock-in de fornecedores, no qual os clientes às vezes se vêem obrigados a manter um fornecedor de software mesmo sem estarem satisfeitos com o serviço/produto oferecido. Discussões em torno disso são muito freqüentes quando comparamos o modelo de desenvolvimento customizado com o trabalho em torno de produtos.

    Além destas duas opções já antigas, há uma terceira na moda: Cloud Computing.

    Embora eu tenha certas preferências pessoais em alguns cenários, não aponto nenhum desses modelos como o mais indicado de uma maneira geral.

    Quando você compra serviços de software customizado, teoricamente o seu investimento inicial será mais baixo do que comprando um produto, mas deve-se avaliar o quão produtivo é o produto, o quanto de esforço você terá para desenvolver de forma customizada, qual é o “time-to-market” desejado, ROI, entre outros fatores. Isso varia demais de um tipo de projeto para o outro, e depende do grau de commoditização dos produtos e do conhecimento do domínio.

    Além destes fatores, o lock-in é uma característica importantíssima que deve estar sempre na cabeça das pessoas. Existe uma tendência a achar que o fato de você comprar software proprietário vai necessariamente te prender a um fornecedor. Dependendo do cenário realmente existe uma dificuldade enorme em trocar, mas em outros casos isso é bem mais tranqüilo.

    A questão é que com software customizado isso também ocorre muito. Software customizado pode amarrar o cliente até mais do que um produto comercial, dependendo de como for construído, e da participação do cliente no processo.

    Sobre Cloud Computing, existe uma enorme febre nesse momento. Todo mundo falando em colocar aplicações “na nuvem”, nos ganhos de custo-benefício, na escalabilidade, e muitas outras “ilidades”. A proposta realmente é tentadora. Você rodar suas aplicações numa infra-estrutura gerenciada por experts do Google, da Amazon ou da Sun parece um sonho realizado. Se você pensar que eles compram hardware muito mais barato que a gente e já têm enormes parques tecnológicos com capacidade ociosa, praticamente fica impossível argumentar contra isso.

    Para muitas empresas isso pode realmente fazer sentido. Colocar “na nuvem” serviços que não sejam muito críticos, para empresas de porte limitado. Agora, vamos pensar em empresas que já têm uma enorme gama de aplicações em produção, em datacenters existentes, com políticas de segurança, privacidade, etc.

    Será que seria fácil e conveniente ligar a sua empresa “na nuvem”, expondo vários dados críticos e sigilosos, e trazendo riscos de segurança para seu ambiente? Pensem num cliente que já tem um site, uma intranet, ERP, e várias outras aplicações em produção atendendo a fins distintos.

    Será que um diretor de tecnologia se sente seguro em abrir sua infra-estrutura para se integrar com redes, computadores e pessoas que ninguém sabe afirmar ao certo onde estão? Você teria certeza de que aqueles dcumentos valiosíssimos da sua proposta comercial não estariam acessíveis pelos concorrentes? Pense em quantas VPNs e configurações complexas de segurança seriam necessárias para adequação a esta nova topologia. Já não é tão sexy, não é mesmo?

    Além deste aspecto, o hype em torno de Cloud Computing é tão grande que já estão sendo discutidas possibilidades de interoperabilidades entre Clouds. O mercado ainda está longe de amadurecer, e já vemos discussões comuns em mercados consolidados. Do meu ponto de vista, Cloud Computing pode ser muito interessante, mas é necessário um grau de confiança no fornecedor em níveis que eu raras vezes vi entre pessoas, e muito menos entre empresas.

    Depois de tantos anos, comprar software continua muito difícil, e exige um conhecimento cada vez mais sofisticado. O segredo dos projetos melhor sucedidos que eu já vi é a parceria verdadeira entre os fornecedores e os clientes. Projetos de software que dão certo são os que têm pessoas competentes, bem intencionadas e ambiciosas em ambos os lados.

    Os melhores fornecedores de software aproveitam cada projeto para trazer o máximo ROI para o cliente, e então conquistar sua confiança e parceria para mais projetos no futuro. E os melhores clientes são os que agem como donos do negócio de suas empresas. Eles buscam todas as oportunidades de melhorar os resultados das empresas, e com isso alavancar suas próprias carreiras.

    A Concrete, modéstia à parte, é um baita fornecedor de software. E eu estou tendo a chance de atuar em projetos diferenciados e não há nada mais contagiante para um profissional de software. Estou tendo a chance e a responsabilidade de trazer resultados expressivos para a empresa, e se eu for realmente competente isso trará muitas vitórias para a empresa e para mim (bom, pelo menos eu espero.. :) ).

    Faca nos dentes, sempre em frente ;)


    O povo que sonha com cargos públicos

    February 4th, 2009

    Para evitar ser mal interpretado, antes de tudo um disclaimer: eu já conheci e tive contato profissional com vários profissionais de órgãos públicos que realmente gostam do que fazem, buscam resultados e progresso na carreira. Eu gostaria muito que todos ingressassem nos órgãos públicos com esses objetivos, mas infelizmente isto está longe de ser verdade.

    Recentemente tive algumas conversas sobre a situação do Brasil, do Rio de Janeiro, e diversos aspectos inerentes aos conhecidos problemas que temos. Não vou falar sobre nossos problemas em geral, mas um sintoma em particular me chama muita atenção.

    É óbvio que não possuo nenhuma estatística sobre isso, mas é impressionante a quantidade de pessoas no Brasil que sonha, almeja intensamente um cargo público. É uma febre tão grande que já podemos considerar estabelecida a profissão de “Estudante para concurso”. Além de existir a profissão, existe todo um mercado em torno disso, com cursos, livros, sites, etc. No metrô do Rio é sempre possível ver placas publicitárias de enorme destaque fazendo propaganda de cursos para concursos.

    Por que eu acho que esse sintoma é negativo? Porque no Brasil notoriamente conhecemos a baixíssima eficiência de órgãos públicos. A prestação de serviços por parte da máquina estatal é precária comparada com os níveis necessários para sobrevivência na maioria dos setores da iniciativa privada. A máquina estatal gigantesca onera pesadamente a sociedade brasileira, que paga cada vez mais impostos para receber péssimos serviços em troca.

    Que a máquina estatal está cheia de “companheiros” pendurados, todos sabemos. O que me preocupa bastante é a quantidade enorme de pessoas que almeja “ter a vida mansa de um cargo público”. As regalias de receber o mesmo salário desempenhando bem ou mal as suas funções. A certeza de poder faltar ao trabalho e fazer greves sem receber nenhuma punição. Resumindo, muitas pessoas querem impôr custos à sociedade oferecendo muito pouco em troca.

    Não sei dizer quantas milhares de vezes alguém me perguntou:

    - “Vai ter o concurso X, você vai fazer?”

    - “Não”, respondo eu

    - “Você é maluco, vai perder a chance de uma mamata dessas??”

    - “Sim, eu não quero fazer nenhum concurso”, finalizo minha resposta pela enésima vez.

    Eu estudei 7 anos no Colégio Militar (federal), e depois fiz Engenharia na UFRJ (também federal), e pude ter nesse tempo bastante contato com funcionários públicos. A última coisa que eu gostaria para a minha carreira é depender de politicagens para ter sucesso. Nestes meios existe tanta sujeira, corrupção e falta de ética que eu prefiro definitivamente ficar alheio a isso. (OBS: sei que isso não envolve todos, e prefiro crer que não seja nem a maioria, mas o nível de contaminação que eu percebo já me enoja)

    Por felicidade eu trabalho em um ambiente no qual predomina a meritocracia de fato. A Concrete é uma empresa (como muitas outras) que precisa se sustentar. Não existe “patrocinador”, “investidor” ou “controlador” que coloque dinheiro na empresa. Com isso, as decisões precisam ter discernimento para que a empresa caminhe na direção certa e traga bons resultados financeiros e conforto aos sócios e aos funcionários. Este é o cerne da questão. Onde há necessidade de compromisso com resultados diretos, há muito menos espaço para politicagens, e naturalmente a dedicação, esforço e talento são premiados. Em locais onde os resultados implicam em pouca ou nenhuma diferença para o profissional, temos o comodismo e a postura que todos conhecemos bem.

    Eu vou começar a apostar no Brasil quando eu começar a ver menos gente sonhando com a “vida mansa de um cargo público”. Quando eu souber que os governos estão enxugando a máquina pública e deixando-a mais barata e mais eficiente. Quando nossa legislação der os mesmos direitos e deveres à iniciativa privada e aos funcionários públicos. Quando eu perceber que as pessoas estão buscando competitividade profissional, em vez de se livrar da competição.

    Enquanto isso não acontecer, eu não aposto no Brasil. Mas já vou ficar contente se as pessoas não me olharem espantadas quando souberem que eu não quero fazer concurso público.


    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.


  • rheumatoid arthritis medications
  • medicine for pets
  • natural treatments for insomnia
  • sleep disorder treatment
  • anti vomiting
  • blood sugars
  • generic reglan
  • pharmacy no prescription
  • drugs for sale
  • muscles human body
  • anabolic creatine
  • online diet meds
  • acne cure pills
  • cialis benefits
  • metronidazole dose
  • women body building
  • otc claritin
  • cetirizine drug
  • cialis 5mg
  • baby acne
  • lipitor use
  • throat gonorrhea
  • cheap phentermine without a prescription
  • how does viagra work?
  • valium high
  • chest pain symptoms
  • prescription drug store online
  • cheap pain meds
  • acne face medication
  • pet health websites
  • anxiety order
  • what is premature ejaculation
  • dog skin
  • hair loss drug
  • online paxil
  • coupon zantac
  • effects of folic acid
  • buy canada drugs
  • curing premature ejaculation
  • carisoprodol cheapest
  • side effects of cancer treatments
  • women heart attack
  • lowest price generic viagra
  • pet supplies plus
  • vitamin supplement ratings
  • diabetes treatment
  • zoloft discount
  • coupon claritin
  • women insomnia
  • buy aciphex
  • cialis on line
  • treatment for hepatitis b
  • order metformin online
  • cialis cheap cialis online
  • claritin allergies
  • mexico pharmacies
  • how to lower blood pressure
  • diclofenac tablet
  • ordering medications online
  • cancer drugs
  • diflucan purchase
  • how to get birth control
  • dog skin infection
  • lowering blood pressure naturally
  • clonazepam pharma
  • health products women
  • buy cialis
  • soma or valium
  • pre diabetes
  • side effects blood pressure tablets
  • discount pain relief
  • dog med
  • osteoporosis calcium drug
  • tramadol without a prescription
  • zoloft drug
  • treatment high blood pressure
  • sildenafil 100mg
  • discount herbals and vitamins
  • aricept generic
  • asthma information
  • bupropion anxiety
  • free acai
  • top hair loss
  • yeast diflucan
  • health care for dogs
  • green tea products
  • cheapest place to buy phentermine
  • canada pharmacy drug perscription
  • high cholesterol treatment
  • viagra free trial
  • cancer cure
  • treatment to stop smoking
  • arthritis pain medicine
  • buy vardenafil online
  • generic viagra generic
  • vitamin list
  • discount soma online
  • facial skin care products
  • buy vitamin supplement
  • cialis alternative
  • viagra for cheap
  • sildenafil
  • online diet drugs
  • online drug
  • benicar tablets
  • purchase medicine on line
  • what is ambien
  • online prescription drug
  • hair loss disease
  • medicine that prevents blood clots
  • antifungal drug
  • medicine for vomiting
  • how to take a beta-blocker
  • san diego soma
  • vascular edema
  • acne skin care treatment products
  • how does viagra work?
  • reduce blood pressure
  • phentermine with no prescription
  • chlamydia treatment online
  • buy levitra on-line
  • beta blocker uses
  • viagra fedex
  • giving cats pills
  • menopause natural treatment
  • oral fluconazole
  • stop smoking today
  • prescription pain medicines
  • menopause natural treatment
  • fda avandia
  • actonel dosage
  • haldol medication
  • how to burn fat
  • all natural antibiotics
  • healthy dog food recipe
  • reduce swelling methods
  • prescription drugs on line
  • drugs use in arthritis
  • weight loss meds on line
  • cheap weight loss
  • pain in chest
  • chlamydia treatment
  • acai cleanse
  • online pharmacies with no prescription needed
  • cancer medications
  • clomid dosage
  • generic pravachol
  • what pills look like phentermine
  • dosage of viagra
  • how to prevent pregnancy
  • treatment for cancer
  • buy generic cialis
  • when is viagra needed
  • no hangover
  • water pills
  • what is generic viagra
  • antianxiety
  • buy asthma meds
  • acyclovir information
  • bronchitis pregnancy
  • treatment for alzheimer's disease
  • medicine chlamydia
  • mail order medicine
  • new treatments for lung diseases
  • cheap pain pills
  • constipation large stool
  • hand pain
  • stopping hair loss
  • antibiotics diarrhea
  • medication without prescription
  • help for infertility
  • weight loss diet
  • body building diets
  • atenolol interaction
  • medical heart failure
  • small dog products
  • stress pills
  • singulair generic
  • what is heart failure
  • new diet pills
  • discount viagra generic
  • order alli
  • treatment for infant diarrhea
  • buy prescription medication online
  • insomnia disorders
  • medical treatments for acne
  • skin disorders in cats
  • zantac medication
  • antibiotics bactrim
  • high blood calcium levels
  • vitamin supplement store
  • jelly kamagra
  • stress drug
  • health products for men
  • health supplement woman
  • us online pharmacy
  • energy saving products
  • about zocor
  • high amount of acid in blood
  • malaria medicines
  • Bruno Pereira is Digg proof thanks to caching by WP Super Cache!