quinta-feira, 15 de dezembro de 2011

Alguns pontos de vista acerca do Mercado de T.I

Motivado por alguns debates  que volta ou outra  reaparecem na comunidade de desenvolvimento brasileira resolvi escrever um  post  com dois dos principais assuntos discutidos para expressar minha opinião .
Então vamos aos pontos de discussão:
1- Muitos programadores sem qualificação nenhuma nas entrevistas de emprego:
Bem isso é verdade até certo ponto, realmente existem muitas pessoas desqualificadas  ou pior,  acomodadas que pararam no tempo e não procuraram evoluir. Evolução tem que ser algo constante para o profissional de T.I, mas existe também outro lado da moeda  que são algumas empresas que utilizam de uma política onde as exigências para as vagas são inversamente proporcionais aos salários oferecidos, logicamente  se você não oferece um bom salário e  uma boa condição para o profissional qualificado exercer bem sua função você não poderá exigir que bons profissionais participem do seu processo de seleção se quer ótimos profissionais ( e no mercado existe sim muitos) então pague salários equivalentes ao seu conhecimento, pois o profissional pra chegar aquele nível estudou bastante, perdeu varias horas pesquisando e gastou muito dinheiro com livros e cursos então merece um salário digno.
O que acontece é que muitas empresas não costumam olhar para ela mesma para assim conseguir enxergar onde está falhando  ficando muito mais cômodo acusar o mercado de não ter pessoas qualificadas, até por que ela por mais que tenha trabalho para preencher a vaga sempre encontrará profissionais se vendendo muitas vezes a preço de banana.

2-Apagão na Área de T.I:
Isso é um fato hoje  estima-se que o déficit de profissionais chega a 73mil  e que até 2013 chegará a 200 mil. Essa necessidade não deve ser suprida pelo menos nos próximos 20 anos pois por mais que surjam mais cursos para área o numero de profissionais nunca conseguirá chegar nem perto  do numero de vagas em aberto  já que demora-se um tempo para formar um profissional com o mínimo de requisitos  necessários para o mercado de trabalho, em contra partida a cada minuto surgem novas necessidades  e essas exigem mais profissionais provendo soluções. 

Conclusão  empresas que não querem correr o risco de perder um profissional qualificado ou que deseja contratações de tais profissionais, deve pagar um valor justo e  prover boas condições de trabalho, lembrando que nem sempre um maior salário prende o funcionário na empresa se a mesma não tem um ambiente descontraído  e agradável para trabalhar.
Na minha opinião tão importante quanto a contratação de uma mente “brilhante” é a contratação de pessoas engajadas e que tenham gana e força de vontade para aprender e evoluir, não adianta você  ter o bambam bam na sua empresa se o mesmo não é comprometido com os objetivos da mesma. Investir em profissionais ao contrario do que muitos empresários pensam não é perca de dinheiro pois mesmo  quando o funcionário sair você terá utilizado  o conhecimento enquanto ele foi seu empregado então ele agregou valor a sua empresa e produto.

segunda-feira, 24 de outubro de 2011

Trabalhe em equipe com o Trello

Nesse post vou falar um pouco de uma aplicação web muito bacana para quem trabalha em equipe e principalmente para quem tem equipe distribuída geograficamente, essa ferramenta chama-se Trello e como seus desenvolvedores a intitulam ela serve para "juntos organizar qualquer coisa ". Trello é uma ferramenta para gerenciamento de atividades que funciona como uma rede Social onde é possivel criar um Board (projeto) e adicionar os membros da equipe para que todos possam verificar o andamento das tarefas em tempo Real, a sua grande vantagem  é que ela tem uma interface bem limpa e ao mesmo tempo robusta, além de seguir o conceito dos "Kanbans" onde tem-se originalmente 3 estágios de tarefas (ToDo, Doing e Done) mas nada impede que seja criada um novo estágio como por exemplo Tests. 

A praticidade impera nessa ferramenta,  com o conceito de drag-and-drop o usuário pode facilmente modificar o status de uma tarefa, passando por exemplo de Doing para Done. Como quase todas ferramentas para gerenciamento de tarefas ela mantém um histórico de status das atividades, permite também anexar arquivos aos "Post-its" seja ele pdf, imagem ou até txt  (Até agora não vi nenhuma restrição quanto a extensão de arquivos). 

Como já mencionei anteriormente um diferencial  do Trello é que os membros das equipes conseguem  informações em tempo real do andamento das tarefas, uma vantagem também  para quem  trabalha com clientes que acompanham de perto o o curso do projeto.

Já estou utilizando a aplicação em dois projetos e só tenho referencias boas a dar sobre ela.
Para quem se interessou em saber mais sobre o Trello segue abaixo o vídeo demonstrativo e a  url de acesso da app :



domingo, 9 de outubro de 2011

Técnica de Pomodoro

Bom o intuito desse post é apresentar uma técnica não muito conhecida mas que pode proporcionar um ganho significativo na produtividade de um sistema,  principalmente para quem trabalha com pessoas ou equipes que costumam perder o foco com muita facilidade.

A definição da "The Pomodoro Technique" é que ela  é uma forma de tirar o máximo proveito do tempo de gestão. Foi criada em 1980 por Francesco Cirillo e basicamente a técnica  consiste em  dividir suas tarefas em períodos de 25 minutos chamados "pomodoros"  esse termo vem por conta da utilização de um timer de cozinha  que servia para registrar o tempo exato que era preciso para preparar um extrato de tomate.


Sua eficácia está em manter a pessoa ou equipe focada no objetivo por aquele período de tempo, no caso 25min,  passado  esse tempo a equipe tem um intervalo de 3 a 5 minutos para se distrair e relaxar um pouco, a cada  4 pomodoros o intervalo de descanso deve ser de 15 a 30 minutos.


As etapas de planejamentocontrole de tempogravação de registros e visualização são fundamentais para a técnica.
Na fase de planejamento de tarefas são priorizadas as mais urgentes, o objetivo da técnica é reduzir as interrupções que acabam ocorrendo quando não se tem o controle do tempo, consequentemente atrasando tarefas que tenham uma certa urgência.


Embora essa técnica seja bastante usada para trabalhos onde existem prazos apertados de entregas, ela não serve só para isso, pode ser usada em qualquer segmento que precise de concentração e foco, tanto que seu uso inicial foi para os estudos já que o criador da técnica não tinha concentração para ficar muito tempo na frente dos livros.
Hoje sabemos como as redes sociais contribuem cada vez mais para que as pessoa percam o foco facilmente na realização de tarefas do dia a dia.


Eu tenho um grande problema de concentração  e isso me fez ir em busca de técnicas que fizessem aumentar meu foco e concentração no trabalho, a pomodoro foi a que mais me fez ganhar produtividade. Comecei a usa-la  á 20 dias e posso afirmar que a produtividade aumentou 100%.
No começo os 25 minutos iniciais demoram a passar e você por não estar acostumado ao foco acaba sentindo, mas posso afirmar que com o passar do tempo a pessoa fica tão focada no trabalho que muitas vezes passa a nem utilizar mais o tempo de descanso e encaixar sprints atras sprints sem utilizar o intervalo de descanso (isso segundo alguns é errado).


A técnica é bastante interessante e eficaz, alguns relatos de amigos dão conta que suas  equipes precisavam entregar alguns itens que se não fosse pelo pomodoro levariam 2 dias para concluir o trabalho, e com o pomodoro levaram menos de um dia para realizar todas as tarefas.


A grande vantagem dessa técnica é que para ser aplicada basta uma folha de papel para listar os objetivos a serem cumpridos e um relógio para marcar o tempo dos pomodoros. Existem algumas ferramentas para quem usa smart phones  tanto iphone como androids, pcs e até onlines  que auxiliam a marcar o tempo e as tarefas  a serem realizadas.
Até hoje não consegui enxergar nenhuma desvantagem no uso dessa técnica e quem quizer saber mais a respeito ou até mesmo ser um "certified pomodoro master" basta acessar a página oficial:  http://www.pomodorotechnique.com/

terça-feira, 17 de maio de 2011

Java pede Respeito

Ultimamente tenho ouvindo muito desenvolvedor  “trolando” o Java  falando que não presta, que é ultrapassada,  até parece que agora a "coqueluche" (é o novo) do momento é falar mau do Java para parecer  “ O cara descolado”,  não entendo tal comportamento e pude presenciar  muita arrogância de certas pessoas que por estarem agora trabalhando com outras linguagens da moda tais como Ruby ou JavaScript, querem desmerecer a linguagem que na maioria dos casos foi o seu ganha pão por tempos e o iniciou no mercado de desenvolvimento de software, isso  quando não foi  pior (quando sua base e sua iniciação no mercado foi com PHP).
 Vi teorias de que essa má fama do Java deu-se por conta do JSF ou como preferem JSFAIL, me  admira pessoas que parecem tão esclarecidas não saberem distinguir um framework mau sucedido de uma linguagem que esta no mercado a anos com inumeros exemplos  de sistemas bem sucedidos e implantados em grandes empresas ao redor do mundo , esquecem que essa mesma linguagem tão mau falada possui ótimos frameworks como Spring, Hibernate?? 
Você que acha que Java não presta mais para nada deveria saber  que no desenvolvimento não existe silver bullet  e como não existe nenhuma linguagem milagrosa que resolve todos os problemas do mundo também não existe nenhuma linguagem  pereba, tudo depende do seu propósito,  Java não morreu e não morrera tão cedo, como muitos torcem ou fingem que torcem,  Java vive e pede respeito, abra sua mente não seja um radical e preconceituoso. 

segunda-feira, 11 de abril de 2011

Compilação de dicas Ireport

           Ultimamente venho trabalhando muito com relatórios feitos no Ireport (até mais do que eu gostaria) e como sei que é difícil conseguir boas dicas, resolvi fazer uma compilação de dicas aqui para quem passa por alguns “perrengues” com essa ferramenta.

  Passar uma lista como datasource de um subrelatorio

            Deve-se usar essa expressão no datasourceconection do subrelatorio new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{Lista}) 
           O field Lista é a lista de objetos que deseja que seja passado para o relatório.
           No subrelatorio se quizer pegar os atributos do objeto da lista é so declara-los como Field que o jasper vai fazer o papel de mapea-los para você.




         Na imagem acima tenho o meu field $F{servicos}  que é do tipo List

Não passar nenhum dado para o Subrelatorio e mesmo assim fazer com que ele abra


          Basta usar a seguinte expressão  new JREmptyDataSource(), com isso o relatório ira abrir sem precisar de  valor algum.


 Criar uma expressão para se verdadeira imprimir o relatório ou campo do relatório

          Se quiser que o relatório ou algum campo dele só imprima de acordo com alguma condição    basta colocar um teste booleano na propriedade print when expression                                                         
               Ex:  new Boolean($V{campoDouble}.doubleValue()>0) Nesse exemplo só sera impresso se o campo for maior que zero. A imagem abaixo ilustra esse exemplo:




  Passando um Mapa como parâmetro

         Declara-se um Field  do tipo Map 
         Ex: org.apache.commons.collections.map.HashedMap 
         Nesse exemplo usei HashedMap, mas poderia ter sido usado qualquer outro tipo de   mapa,no relatório que ira receber o Mapa como parâmetro será preciso declarar uma variável, seta-se o variable class com o caminho da classe que está sendo salva no mapa 
         Ex: com.meuprojeto.to.MinhaClasseTO 
         No variable expression coloca-se a chave que irá pegar o valor do mapa.
           
        Ex:$P{meuMap}.get($F{valorDaChaveMapa}), depois no Field do relatório é so pegar o valor assim: $V{minhaVariavel}.geMeuAtributo()


Passando uma lista de Strings para o subrelatorio


        Se quiser passar uma lista de Strings para um subrelatorio e recuperar os valores deverá declarar o field com a expressão $F{_THIS},  com isso conseguira recuperar os valores da lista.


 Criando um texto  que precise conter uma palavra em negrito no meio


         Se precisar inserir uma palavra em negrito no meio de um texto, como feito nessa frase, basta setar o Markup como styled e  usar a tag <style isBold="true"> No texto Negrito </style> como na imagem abaixo:

domingo, 20 de março de 2011

BrazilJs vai perder??


Vem ai um dos maiores eventos de JavaScript do Brasil, dias 13 e 14 de Maio e ai vai perder??
Link do site do evento para maiores informações e inscrições.  http://braziljs.com.br/2011/#!/home

terça-feira, 8 de março de 2011

Criando Jar com as fontes do Jasperreports

Vou ensinar nesse post como criar um jar que contenham  as Fonts do jasper, evitando que eles fiquem espalhados na aplicação, com esse jar além de ser um meio mais elegante de ter as fonts no projeto, diminui também o tamanho do mesmo. Originalmente os fonts ficavam dispostos da seguinte maneira:


No caso precisava da fonte arial narrow para impressão em formato PDF, então era necessária a sua instalação na aplicação para ser reconhecida pelo jasper.

Primeira coisa que se deve fazer é instalar as fontes no Ireport, para isso vá em Ferramentas, depois Opções, irá abrir uma janela, clique na opção Font. Clique em instalar fonts, e escolha as que deseja utilizar na aplicação:

Após a instalação iremos criar o JAR para ser usado na aplicação. Clique no nome da font que acabou de criar e depois Export as extension, escolha o diretório que deseja salvar e pronto, está criado seu jar com as fonts necessarias para sua aplicação:

Pronto depois é só colocar o jar criado no Build Path da sua aplicação, como mencionei anteriormente essa solução é mais elegante pois não deixa as fonts soltas na pasta do projeto ela economiza espaço no meu exemplo o tamanho do projeto caiu em quase 2 megas com essa solução.