Tornar-se um desenvolvedor "poliglota" é requisito básico hoje em dia

agosto 20th, 2010

Um grande desenvolvedor com o qual convivo me comentou que só trabalha com Java. Eu particularmente gosto muito de PHP. Já outro puxa para o lado do .NET. E nós três estamos trabalhando na mesma empresa.

Ora, se o software é um produto (e como tal precisa atender as pessoas que o usam) precisamos tentar abstrair ao máximo o bairrismo de uma ou outra plataforma, em busca de uma coexistência pacífica. Cada qual com sua soberania, e todos por um ideal maior. Não querendo ser sensacionalista, acredito que a busca pela integração sistêmica, reflete a necessidade primordial do mercado de sistemas de informação.

Existem tecnologias e abordagens muito boas para integrar sistemas, dentre as quais podemos citar webservices, SOA, SOAP. O que tenho visto que falta é um senso de universalização. Algo que permita ao mais ferrenho desenvolvedor .NET conversar com o seu parceiro Java e vice-versa.

O que importa é informação. A informação deve ser de boa qualidade e válida para o contexto onde está inserida. A comunicação entre sistemas já não é item de luxo. É necessidade de infra-estrutura básica.

É necessário ter mente aberta. Quem trabalha em T.I. precisa ser também vanguarda filosófica. Não se pode vender o peixe se não se acredita nos benefícios da carne branca, por exemplo.

Hoje em dia as empresas precisam de profissionais multi-plataforma. Não digo com isso que o especialista Java precisa também ser especialista .NET, ou vice-versa. O que sim precisa acontecer é que um profissional que prefira certa tecnologia possa naturalmente trabalhar em outra tecnologia, caso a ocasião o requeira.

Que legal essa tal de Comunicação

abril 28th, 2010

É interessante como nós, os seres humanos, tentamos complicar as coisas as vezes. Em desenvolvimento de software não é diferente. Especialmente quando estamos precisando que o cliente nos abasteça de problemas para resolver em seu negócio. É muito comum não conseguir entender o que o cliente expõe, para depois estabelecer um consenso daquilo que o software precisa resolver.

Apenas com base em uma comunicação eficaz é possível dimensionar o problema do negócio e estabelecer os requisitos condizentes com a realidade. Se os envolvidos no processo não compartilham uma mesma visão sobre o assunto, é muito provável que as soluções propostas não sejam adequadas.

Conversando com um antigo amigo tempos atrás, percebi que a imagem que fazem de nós (profissionais de T.I.) é de que somos inalcançáveis, intangíveis pessoas com as quais ninguém consegue conversar. Não entendemos e não nos interessa entender o problema dos outros. Fazemos software para nossa própria diversão, para nosso deleite e os usuários devem adaptar-se ao software, e não o software aos usuários. É uma imagem caricaturizada lógico, mas acredito que se fossemos mais comunicativos, muita coisa mudaria. Em alguns anos não haverá mais espaço para pessoas que não se comunicam. Tudo está ficando mais competitivo, a informação adquire importância crucial para qualquer negócio. Com desenvolvimento de software não é diferente.

Hoje em dia se discute muito sobre os prejuízos causados pela falta de comunicação e erros de interpretação (entre o que o cliente precisa e o que a equipe achou que ele precisava). Prejuízos esses que afetam o cliente, mas também afetam a equipe de desenvolvimento. Profissionais de T.I. que realmente gostam do que fazem, sentem-se mal quando as expectativas do cliente não foram alcançadas. Por outro lado, existe uma motivação generalizada quando essas expectativas são conquistadas e transformadas em software de valor.

Outro dia, ao final de um sprint de desenvolvimento, a minha equipe (participo como analista de sistemas) foi coroada com um dia de premiação. Entregamos uma nova versão de software, foi organizada uma apresentação, o cliente elogiou muito e todos sairam edificados da reunião.

Houve uma satisfação geral: uma meta importante tinha sido conquistada. Esse dia foi apenas o feliz desfecho de todo um trabalho, baseada em comunicação constante. Comunicação entre os integrantes da equipe sim, mas também comunicação direta com o cliente.

Assiduamente o cliente era convidado a participar, acompanhar o processo de desenvolvimento. Decisões foram tomadas no intuito de priorizar aquilo que agregaria mais valor para o negócio do cliente. Nesse intuito, foram incluídas funcionalidades antes não planejadas e retiradas outras que não eram tão importantes para o momento.

O melhor de tudo: o cliente sempre estava participando das decisões, lado a lado com a equipe, como em uma parceria mesmo.

Não houve surpresas desagradáveis. Como tanto a equipe quanto o cliente sabiam de tudo e tinham corroborado sobre tudo antecipadamente, não houve desapontamentos. O que houve sim foram priorizações acertadas, mais qualidade e mais valor produzido, tudo isso traduzido em software funcional, entregue para o cliente.

Que legal essa tal de comunicação. Pode parecer básico, mas tem gente que ainda não pratica.

Que legal esse tal de Kanban

março 26th, 2010

Faz umas semanas atrás reencontrei um velho amigo meu, ex-colega em um projeto em que participei. Como sempre, puxamos assunto falando sobre nossos trabalhos atuais. Foi aí que começamos a conversar sobre o dia-a-dia no desenvolvimento de software em nossas equipes. Ele me contou entusiasmado que eles começaram a utilizar Kanban para uma visibilidade das entregas de software. Foi então que resolvi falar um pouco sobre o assunto.

Kanban tem origem no Japão e significa “registro ou placa visível”. Trata-se de um quadro visível no ambiente de trabalho, onde a equipe consegue consultar o andamento da produção. Em se tratando de desenvolvimento de software, a equipe consegue visualizar no Kanban todos os componentes, as funcionalidades que fazem parte da entrega de um release de software.

O conceito por trás do Kanban é extremamente simples. No quadro, são delineadas algumas colunas, correspondendo às fases de entrega de uma funcionalidade. Por exemplo, colunas com os itens Especificação, Desenvolvimento, Testes, Entrega. Cada funcionalidade é um post-fix pendurado no quadro. A medida que a funcionalidade avança de fase, o post-fix é mudado de coluna no Kanban. Modo simples e eficaz para dar visibilidade a toda a equipe daquilo que está sendo feito e o que falta fazer.

Kanban foi idealizado pelos altos-executivos da Toyota há décadas, como um recurso para dar visibilidade na linha de produção. É uma ferramenta integrante da metodologia denominada just-in-time. Apesar de sua aplicação inicial ter sido idealizada para a indústria automobilística, a aplicação de just-in-time na indústria de software mostrou-se extremamente eficaz.

Tudo o que está fixado no Kanban deve ser movimentado. Uma funcionalidade de software nunca é empurrada para a próxima fase no Kanban. Pelo contrário, o time responsável pela fase seguinte é quem puxa a funcionalidade para si. Por exemplo, quando é concluída a fase de especificação de uma funcionalidade, ela permanece na coluna “Especificação” até que um desenvolvedor esteja livre para iniciar a fase de desenvolvimento. Somente aí é que a funcionalidade move-se no Kanban, passando para a fase “Desenvolvimento”.

De acordo com o just-in-time, nada deve empurrado na linha de produção. Não se deve formar estoques. Para software o mesmo: não devemos sobrecarregar os times, mas sim prover um fluxo organizado e estável de produção de software. É um caminho certo para a qualidade de software, tão almejada.

Além da conversa com meu amigo, outro motivo que me levou a escrever sobre Kanban foi uma boa notícia recebida esta semana no trabalho: começaremos a utilizar Kanban também lá na empresa. Eu conheço minha gerente de projetos há pouco tempo, mas já percebi sua inclinação para metodologias ágeis. Sinto que boas mudanças virão pela frente. O uso de Kanban lá na equipe vai proporcionar o domínio do problema para todos. Estaremos aptos a acompanhar em tempo real o andamento do projeto, das entregas de software em cada sprint e por fim cultivar a empatia pelo trabalho dos diferentes times que compõem nossa linha de produção de software.

Da próxima vez que eu encontrar esse meu amigo vou poder falar sobre a aplicação de Kanban em minha equipe de desenvolvimento também. Realmente, Kanban é muito legal.

Lutando por uma recolocação? Mantenha a calma, sacuda a poeira e mãos à obra

janeiro 30th, 2010

Trabalhar no mundo da T.I. é muito bom. Mas às vezes, podemos ser pegos de surpresa e ficar desempregados de uma hora para a outra. Principalmente se você trabalha em projetos de alto risco. Aconteceu comigo no final de 2009. Passei 16 meses trabalhando em um projeto espetacular, onde a cada dia surgiam novos desafios e a equipe era muito coesa e talentosa. Era um excelente ambiente de trabalho, com uma organização hierárquica muito objetiva e moderna.

Mas o projeto era uma inovação tecnológica e precisava de aceitação dos investidores. Pois é, não houve investimentos para a continuidade dos trabalhos e o resultado foi sua suspensão do projeto. O aviso prévio coletivo veio em novembro, em dezembro a empresa fecharia as portas. E agora, o que fazer? Eu, como todos ali, trabalhava para atender necessidades de sustento minha e da minha família e para minha realização profissional. Não podia me dar ao luxo de ficar sem essas duas coisas. Já pensou natal e ano novo…

O negócio foi manter a calma e seguir em frente. Foi difícil, porque final de ano não é exatamente um período onde o mercado está abrindo vagas na área de T.I. Minha meta inicialmente era participar de processos seletivos interessantes ainda em dezembro e quem sabe estar recolocado em janeiro, no máximo. Para essa finalidade, segui as seguintes diretrizes:

1. Organizar, atualizar e divulgar o Curriculum Vitae
Atualizei meu Curriculum com base nas atividades que havia desempenhado da primeira até a última empresa onde estive. Inclui para cada empresa onde estive o motivo de saída e as conquistas pessoais/profissionais obtidas em cada passagem pelas empresas. As pessoas gostam de transparência profissional, então fiz do meu Curriculum um histórico detalhando pontos fortes, como cheguei até aqui e quais as minhas expectativas para o futuro profissional.

É interessante essa visão de conquistas profissionais para um CV. As vezes tratamos nosso CV como uma mera lista de passagens por empresas, trabalhos e estudos realizados. O CV deve ser austero e sincero, ao mesmo tempo em que tem que ser interessante de ler.

2. Acionar os Contatos (o famoso networking)
Falei para todos os amigos, conhecidos, colegas de faculdade e ex-colegas de outros trabalhos que estava em busca de uma “nova colocação no mercado”.

Aí vai uma sugestão: tente ser oportuno ao falar. Não se recomenda procurar uma pessoa com que você nunca conversou para pedir emprego. Pode ser muito estranho. Eu particularmente tenho uma rede de contatos pequena, mas mesmo assim consegui 3 entrevistas em dezembro.

É normal acontecer esse tipo de coisa: um colega meu da faculdade tinha um ex-colega de trabalho cuja nova empresa precisava de gente pra trabalhar. Resultado: consegui participar de um processo seletivo muito interessante.

3. Focalizar esforços nas vagas interessantes
Enviar CV para tudo e todos não é produtivo. Você perde seu foco e não consegue separar o joio do trigo. Só porque você se vê em uma posição de desemprego não quer dizer que “qualquer coisa serve”. Mantenha a calma, respire uma, duas, três vezes e separe as vagas que te interessam.

Envie CV para as vagas onde você se sentiria bem trabalhando. Sugiro procurar sites especializados, como o www.netcarreiras.com, por exemplo. Ali você consegue separar as vagas que tem a sua cara. Meu trabalho anterior (aquele do projeto que foi cancelado) eu consegui nesse portal de vagas. O pessoal de RH da empresa onde estou agora, encontrou meu CV no mesmo portal e acabaram me contatando. Vale a pena cadastrar-se em sites de RH especializado em T.I. e em sites de empresas que possuem boas referências.

Sim, acredite, as empresas também tem que ter boas referências entre os profissionais, então sugiro procurar boas empresas para trabalhar. Geralmente aí estão as melhores vagas.

4. Ser franco e aberto nas entrevistas

Vá tranqüilo para a entrevista. Nunca se atrase, nunca chegue em cima da hora. Chegue tranqüilo. Se você fizer um percurso conturbado para chegar ao local da entrevista, você já chega nervoso para conversar. Eu prefiro fazer meu planejamento para chegar 15 minutos antes. Dá tempo para organizar minhas idéias antes de me chamarem para conversar.

Não mostre ansiedade ou insegurança. Nunca. A verdade é sua força. Durante a entrevista, sempre perguntam sobre suas aptidões. Se perguntarem sobre algo que você não domina, não finja que sabe. Quando perguntarem sobre conhecimentos ou práticas, fale a verdade. Se sabe, sabe. Se não sabe, pode vir a aprender, por que não?

No caso de ter sido dispensado no emprego anterior, como aconteceu comigo, não importa. Não tente mascarar o que aconteceu. As empresas valorizam a veracidade das informações. Se você se apresenta confiante depois de ter participado de um projeto que acabou suspenso, cancelado, ou se os seus serviços simplesmente não eram mais necessários, não importa!!!! Não tenha medo de falar sobre as tuas conquistas ali, o que você está levando de bom e o que você aprendeu enquanto esteve lá. Vai ser muito bom.

Nunca fale mal de ninguém. É proibido! Pega mal só para você e mais ninguém. Em palavras nuas e cruas: isso só vai “queimar o seu filme” e mais nada.

Sintetizando o que tentei passar nesses quatro pontos, segue uma lista de passos que eu acabei seguindo e deram certo:

  1. Atualizar o CV;
  2. Tornar o CV um documento interessante de ler;
  3. Não dar “tiros para todos os lados”, mantendo o foco nas vagas interessantes;
  4. Planejar com antecedência a chegada ao local da entrevista;
  5. Ser franco na entrevista;
  6. Falar sobre o lado positivo das passagens sobre as empresas;
  7. Nunca falar mal de ninguém e de nenhuma empresa;
  8. Destacar pontos positivos e conhecimentos adquiridos das suas experiências anteriores.

Espero que vocês tenham gostado deste artigo. A pretensão não é fornecer uma receita mágica de sucesso nem tampouco prometer uma recolocação no mercado, mas sim mostrar o que eu pude fazer para me recolocar no início do ano.

Em um momento oportuno pretendo falar sobre posturas para uma boa convivência na empresa e atualização profissional.

Conferência Nacional da Comunicação

janeiro 7th, 2010

Nas últimas semanas de 2009 foi realizada a 1ª Conferência Nacional da Comunicação, em Brasília. O evento reuniu importantes segmentos da comunicação no Brasil, desde grandes empresas da televisão até representantes de rádios comunitárias.

No evento de abertura da conferência, houve o discurso do presidente Lula, explicando a principal motivação da conferência: atualizar a legislação referente às comunicações no Brasil, de modo a ajustar-se às novas realidades e novos desafios elos quais o segmento está passando. As leis que regem às comunicações no Brasil foram formalizadas na década de 60. Nessa ocasião nem sequer existiam a Internet e a televisão digital.

É um bom momento para refletir sobre as questões que envolvem as comunicações no nosso país, principalmente no que tange à liberdade de expressão (sem libertinagem) e a imparcialidade da informação. De tempos em tempos a mídia de massa coloca-se em uma posição parcial e tendenciosa, como se fosse um poder paralelo onde as leis e a responsabilidade social não alcançam. Muito disso ocorre porque temos uma legislação incoerente com a realidade tecnológica e social no Brasil. Essa legislação não regulamenta nem sequer algumas questões muito primárias. Por exemplo, o Brasil é um país onde um mesmo grupo econômico pode produzir a informação e distribui-lo sem concorrência. Estou falando da televisão por assinatura, um terreno onde não é permitida a entrada de fontes alternativas de informação (novos canais de jornalismo por exemplo) sem uma intervenção direta do governo. Ora, se é necessário intervenção para que os consumidores possam obter notícias sob pontos de vista variados, o meio de distribuição não é o ideal para um país democrático.

O poder econômico é útil e necessário, mas como tudo na vida, se usado indiscriminadamente causa dependência e atraso.

Falando em comunicações e informação, aproveito para manifestar meu apoio à medida que está tramitando no Congresso brasileiro para regulamentar o conteúdo da televisão por assinatura. De acordo com o projeto de lei que estará entrando em votação, todo e qualquer canal da televisão por assinatura deve reservar um espaço diário para veiculação de programas produzidos no Brasil. Na minha opinião esta iniciativa vai ser muito benéfica porque limita um pouco a invasão cultural de valores importados. Os que são contra dizem que se esse projeto de lei for aprovado, os consumidores vão perder sua liberdade de escolha. O problema básico e fundamental é que já não há diversidade cultural na televisão por assinatura. Temos cerca de 90% do conteúdo produzido em um único país estrangeiro (não vou mencioná-lo aqui). Outros 5% são de países variados e os últimos 5% são de origem nacional. Não vejo muita diversidade cultural nisso. Se tivéssemos conteúdo mais representativo do que passa no mundo seria muito melhor. A miopia é o que está sendo conquistada com o conteúdo do jeito que está.

Vamos torcer para que o Congresso faça sua parte e amadureça a questão das comunicações no nosso país.

Extensões para Google Chrome

dezembro 11th, 2009

Olá pessoal,

Assim como o Firefox, o Google Chrome possibilita a instalação de plugins ou extensões de variadas utilidades. Para acessar a lista completa desses plugins para o navegador, vá para o link de extensões do Chrome. Para fans do Firefox, algumas extensões disponíveis no navegador da raposa também estão disponíveis para o Chrome.

Eu instalei a extensão ForecastFox Weather no meu Chrome 4.0.2. Esse plugin permite uma previsão extendida do clima em diversas cidades do mundo. Configurei para Porto Alegre e a partir daí pude ter uma previsão dos próximos 5 dias na cidade.

Baixar e instalar extensões do Google Chrome é muito fácil. Basta acessar o site das extensões, escolher a sua e clicar em Instalar. O download e a instalação são realizados imediatamente.

Nos próximos posts vou incluir mais detalhes e sugestões de plugins para o Chrome.