sábado, 31 de março de 2007

Criando Um Curriculum de TI

Ocasionalmente preciso contratar profissionais de TI para a minha empresa. A rotina é praticamente a mesma: anunciar a vaga, receber currículos, selecionar os melhores, entrevistar previamente por e-mail os candidatos, procurar informações complementares sobre os escolhidos no Orkut/Google e convidar para uma entrevista pessoal os finalistas.

A parte de análise de currículos, para a grande maioria dos casos, chega a ser decepcionante. É incrível como a maioria das pessoas não sabe escrever um currículo. Apesar de vários sites e artigos já passarem inúmeras dicas sobre o assunto, gostaria de ressaltar algumas:

Dados Pessoais

Nessa sessão, que deve ser a inicial, coloque apenas seu nome completo, endereço, idade, telefone e e-mail para contato. Não coloque RG, CPF, Carteira de Trabalho ou outros documentos, exceto se forem pedidos no anúncio. Fotos, somente se solicitadas ou se está concorrendo para uma função onde a aparência realmente fará a diferença (o que é improvável na área de TI).

Um cuidado especial para o seu e-mail: caso você tenha um com nomes como "gostosinha@gmail", "ze_ruela@hotmail" ou algo parecido, usado normalmente para se corresponder com seus amigos, saiba que as empresas normalmente consideram isso como falta de profissionalismo. Crie um e-mail "sério", do tipo "nome.sobrenome@gmail.com" para usar nesses casos.

Perfil / Objetivo

Alguns recrutadores pedem que o candidato redija uma apresentação com o seu perfil e objetivos profissionais. Isso pode ser feito tanto em um documento separado como dentro currículo, em 2 seções especiais: Perfil e Objetivo.

Na parte do perfil, informe as tecnologias que você domina e que atendam os requisitos pedidos pela empresa. Se for uma vaga para programador, coloque as linguagens de programação com as quais já trabalhou e ferramentas que domina. Se for como analista, fale sobre a facilidade em levantar requisitos, interagir com usuários e quais as ferramentas Cases que tem experiência. Essa seção deve ser curta e objetiva, porém deve dar à pessoa que está selecionando uma idéia de quem é você.

Sobre os objetivos profissionais, tente mostrar que você está buscando uma posição que permita aplicar os conhecimentos adquiridos em sua carreira profissional e proporcione a oportunidade de aprender novas tecnologias e aprimorar suas habilidades. É importante lembrar que esses objetivos devem ser compatíveis com a vaga anunciada. Assim, crie várias versões de seu currículo, personalizando para cada empresa ou tipo de vaga.

Nessa seção o entrevistador irá verificar sua capacidade de síntese e "alfabetização". Use sempre um corretor ortográfico para garantir que erros de grafia e concordância sejam corrigidos.

Áreas de Conhecimento / Certificações

Muitas empresas gravam o seu currículo em um banco de dados e, quando precisam, fazem uma busca por palavras-chave. Uma uma lista de certificações que você possui e tecnologias que domina, além de facilitar a procura, irá ressaltar o seu "expertise".

Escolaridade

Nenhuma empresa quer saber onde você cursou o primário. Além disso, o segundo grau deve ser informado somente de você não tem curso superior ou se fez um curso técnico. No caso de pós-graduação, pode ser interessante ressaltar a sua tese, especialmente se ela tem alguma relação com o que o empregador procura. Coloque também o período de cada curso e não esqueça que devem estar em ordem decrescente de data.

Para os que não tem experiência profissional, liste também projetos relevantes nos quais participou, para que o entrevistador veja o seu potencial.

Experiência Profissional

Por incrível que pareça, é aqui que a maioria dos candidatos comete os maiores erros. E essa é a área que mais interessa a quem seleciona os pretendentes à vaga, pois ela mostrará se você já trabalhou em projetos equivalentes, por quanto tempo, em quais empresas e com quais tecnologias.

Ressalte os cargos ocupados, quais as tarefas que você realizou nessas empresas e, principalmente, as tecnologias empregadas. Não adianta colocar no tópico "Áreas de Conhecimento" que programa em Delphi e isso não aparecer em nenhuma empresa trabalhada.

Liste, se possível, algo que você fez em cada empresa que "fez a diferença": desenvolvimento em tempo recorde, construção de um framework para a empresa, elaboração de normas internas de segurança, participações em grupos de trabalho ou qualquer coisa que possa ressaltá-lo dos demais candidatos. Experiências internacionais devem ter destaque, pois isso é muito valorizado pelas empresas.

E, não esqueça: sempre liste em ordem decrescente de data, ou seja, seu último emprego no início. Para você ter uma idéia da importância disso, normalmente são analisados os 3 últimos locais trabalhados. Por isso, se atualmente você é um desenvolvedor-senior, não vai querer que seja ressaltada a posição de office-boy do início da sua carreira...

Outras Atividades

Nesse tópico, mostre outros projetos dos quais você já participou, como ministrar aulas, trabalhos voluntários e participação em "olimpíadas do conhecimento" (ou algo do gênero).

Cursos e Seminários

Se você participou de algumas dezenas de cursos e seminários durante sua vida profissional, procure listar apenas os mais relevantes, preferencialmente ligados à vaga. Informe que uma lista completa pode enviada posteriormente. E, como sempre, liste-os em ordem decrescente de data.

Idiomas

Informe os idiomas que você conhece e o grau de domínio. Exemplo: "Possuo um sólido inglês técnico e nível intermediário de conversação".

Cuidados Especiais

Se você for enviar o seu currículo como documento Word (prefira sempre o formato PDF), tenha certeza de que não está com nenhum vírus de macro ou algo do tipo, ou ele será bloqueado pelo anti-vírus da empresa destinatária.

Atualmente boa parte das empresas pesquisam no Google e em comunidades como o Orkut, Linkedin, entre outras, para obter mais informações sobre os candidatos. Faça uma pesquisa desse tipo você mesmo antes de enviar o seu CV e verifique se as informações que você vai encontrar não são desabonadoras.

Conclusão

Normalmente a empresa recebe dezenas de currículos para cada vaga aberta. Para que você tenha uma chance de ser chamado para uma entrevista, seu currículo deve chamar a atenção de quem está selecionando os candidatos.

Se você não sabe vender o seu produto, suas chances caem consideravelmente. Ressalte os seus pontos positivos (se você não tem experiência, porém possui uma boa trajetória acadêmica, deixe que vejam o seu potencial), cuide para que a diagramação do seu currículo seja bonita e procure se mostrar o mais profissional possível.

Veja um exemplo de currículo aqui.

Atualização:
A ComputerWorld publicou recentemente um artigo sobre como montar um currículo de TI, inclusive refutando algumas dicas que postei (não existe consenso entre profissionais de RH sobre como deve ser construído um CV).

Para os que querem se manter atualizados, acessem o site: http://computerworld.uol.com.br/carreira/2009/01/06/5-dicas-para-criar-um-bom-curriculo-para-a-area-de-ti/

sexta-feira, 2 de março de 2007

OnGuard: Proteção Contra Cópias

Atualmente a preocupação com a proteção da propriedade intelectual é grande entre as empresas que possuem produtos já consolidados no mercado ou que, mesmo iniciando, atuam em nichos muito específicos e onde as perdas por pirataria podem ser fatais para a empresa.

Mesmo a Microsoft, que durante muitos anos "incentivou" de forma velada a cópia de seus programas para crescer sua participação no mercado (usava seriais simples e fáceis de quebrar), passou agora a adotar métodos mais complexos de proteção, como ativação pela internet, entre outros.


No mercado existem várias opções pagas (a da
Aladdin é a mais conhecida) para proteção de aplicativos e algumas gratuitas. Para sistemas em Delphi ou C++ Buider, uma boa opção é o OnGuard, que é grátis e vem com fontes disponíveis no Source Forge. No caso do Delphi, onde a compatibilidade é somente até a versão 7, é necessário baixar um package complementar criado pela Active Delphi se utilizar versões posteriores.

O
OnGuard é um componente de propriedade intelectual da TurboPower Software, que encerrou suas atividades em janeiro de 2003 e disponibilizou o código-fonte no Source-Forge. Foi criado um projeto para portá-lo para Lázarus, mas que está em versão beta desde dezembro de 2003 (último post em 2004). Isso significa que deve-se realizar testes de compatibilidade antes de definir sua adoção.

O
OnGuard trabalha com o conceito de keys para restringir funcionalidades da aplicação e release codes para libera-las. As Keys são gravadas de forma criptografada dentro da própria aplicação e indicam quais são as funcionalidades que serão restringidas, enquanto que os Release Codes indicam o que será liberado. Alguns dos métodos de proteção previstos pelo OnGuard para a aplicação:
  • Validação de Datas: bloqueio para execução fora do período estipulado;
  • Número de Dias: controle do uso por uma quantidade específica de dias (não precisam ser contíguos);
  • Limitação de Rede: bloqueio para uso em um domínio específico ou limitação para um número máximo de usuários simultâneos na rede;
  • Registro Simples : é exigida uma string de texto para registro (exemplo: nome do usuário ou empresa);
  • Registro Especial: um conjunto de informações específicos libera a aplicação ;
  • Número de Série: o desbloqueio das restrições ocorre após a informação do serial;
  • Contador de Uso : limitação de funcionalidades após ser utilizado um número de vezes;
Os métodos acima podem ser combinados entre si para atender a estratégia da empresa ou necessidades de clientes. É gerado também um checksum do executável para garantir a integridade do mesmo contra modificações feitas por hackers.

As
releases code do OnGuard são uma estrutura do tipo record de 8 bytes. Os 2 primeiros bytes indicam o tipo de proteção. Os 6 seguintes são de uso específico para armazenar dados específicos para cada tipo de código. Os dados, entretanto, estão separados em 2 "campos": a primeira parte usa 2 bytes e a segunda os 4 restantes. Para prevenir que a release code não seja alterada por terceiros, ela é criptografada usando a key do OnGuard.

Existem também os
modifiers (modificadores), que fazem parte da key e são utilizados para alterá-la baseado em um informação que possa ser reproduzida. Por exemplo, se uma release code é gerada para uma máquina específica, o modificador é gerado somente para aquela máquina, através da função GenerateMachineModifier().

O produto vem com um manual de 125 páginas que apresenta, além da especificação das funções, exemplos didáticos e os conceitos de
shadowing. Existem também programas (simples) para gerenciar a geração/distribuição das keys e release codes.

As 53 funções existentes fazem todo o "trabalho braçal" para o programador, tais como gerar/validar cada uma das keys, modifiers e release codes, modificar o executável gerado, etc. Dentro da aplicação final o programador precisa apenas chamar as funções relacionadas ao tipo de proteção implementada.

Desvantagens/
Limitações Encontradas
  • Não existem funções prontas para acessar remotamente um computador e gravar a release code diretamente na aplicação ou enviar enviá-las por e-mail. Essas limitações, porém, podem ser contornadas facilmente usando código encontrado na internet;
  • Não existe suporte oficial para o produto e o fórum está praticamente sem discussões desde 2003. Encontrei relatos em outros lugares de programadores que utilizam o produto e não tem encontrado problemas;
  • A interface das ferramentas de gerenciamento de chaves são simples demais para uso por uma empresa que venda um volume razoável de aplicações e precisariam ser redesenhadas. Novamente, como os fontes estão disponíveis, essa tarefa não deve ser complicada;
  • Não ha suporte à segurança por hardware, o que deixa a proteção um pouco mais frágil. Se o seu produto for muito visado, talvez tenha que optar por proteção mais forte. Em um software que tenha atualizações constantes, entretanto, essa restrição pode ser inócua, já que o hacker teria que refazer seus cracks para cada nova versão;
  • Não há suporte pra DLL's, apenas para executáveis;
  • Foram reportados alguns problemas com o Windows XP no ano de 2003 e não encontrei soluções em mensagens posteriores;
Vantagens:
  • É grátis. Isso pode significar uma boa redução no preço final do seu produto;
  • Possui os fontes. Não depende de uma empresa, que pode quebrar e deixar você na mão;
Acredito que, mesmo com algumas desvantagens em relação aos produtos comerciais, vale a pena avaliá-lo...

Em tempo: É preciso realizar testes de compatibilidade com o Windows Vista.