A definição de profissional diz:
1. Adjetivo:
a) relativo a profissão
b) que é remunerado pela atividade exercida
2. Substantivo:
a) aquele que trabalha por profissão
b) quem tem conhecimentos da sua profissão, especialista.
Costumo dizer que o principal objetivo do trabalho é ganhar dinheiro. Algumas pessoas não gostam, não concordam, mas sim, todos estão em busca de um salário para poder levar a vida, alcançar seus objetivos materiais, etc.
É claro que acredito que no trabalho temos que alcançar realização pessoal, segurança, satisfação, felicidade. Mas no fim das contas, trabalha-se para receber no fim do mês, não tem outro objetivo maior.
Falando em salário, é claro que sempre queremos um salário maior, e parece que por mais que ganhemos bem, não estamos satisfeitos, é sempre necessário subir um nível a mais, pois, descer é muito difícil.
Algumas pessoas vivem para trabalhar, outras trabalham para viver. Alguns acham que devem trabalhar muito enquanto jovens, para depois aproveitar. E alguns, como eu, preferem trocar altos salários por uma qualidade de vida melhor.
Mas, o que é ser merecedor de um bom salário. O que justifica um bom salário para um profissional? Nesse mercado de TI, onde há muitas vagas e poucas pessoas (boas) para preenchê-las, os salários são os mais variados possíveis, e é possível conseguir um sonhado aumento trocando de emprego.
Recentemente recebi uma proposta de emprego, após uma indicação interna, por um funcionário conhecido de alguns anos. Fiz o processo seletivo, participei de entrevistas, pequenos testes, para no final, receber a notícia de que fui aprovado e posteriormente, receber a proposta oficial.
Há por acaso momento ruim como esse na vida do profissional? Avisar aos empregadores atuais que recebeu uma proposta e está saindo. Sim há, é avisar aos que estão fazendo a proposta que você não vai por ter recebido contra-proposta.
A situação só não é muito difícil quando estamos querendo sair, não queremos mais o atual emprego. Nesse caso, colocamos toda aquela insatisfação e aquele medo de anunciar a proposta para fora como raiva e descontamos naquele chefe de que não gostamos. Nesse caso nem damos ouvidos à contra-propostas.
Mas e quando não objetivamos sair, e quando as coisas estão num nível muito bom, em equlíbrio (apesar de não estar em perfeição, o que talvez não exista)? Não podemos receber uma proposta aparentemente boa (não somente salarial) como uma boa coisa e levarmos adiante?
Sim eu acredito que sim, afinal de contas, somos todos profissionais.
Mas e se recebermos contra-proposta, satisfatória no que diz respeito a salário, e pudermos manter tudo como está, um bom momento, em equilíbrio, e darmos continuidade ao nosso trabalho, não interromper e deixar pela metade. Não podemos continuar?
Sim eu acredito que sim, afinal de contas, somos todos profissionais.
Mas qual é a questão? Qual o problema então?
O problema é quando uma das partes envolvidas diz a você que espera que da próxima vez você não tenha que pedir demissão para ganhar um aumento de salário, para ser valorizado.
Nesse momento joga-se tudo o que foi dito fora. É como se você não valesse mais nada, fosse um grande de um traidor. Pelo simples fato de aceitar uma contra-proposta (afinal de contas é meu direito também).
Esse é meu questionamento. Porque isso não é aceito no Brasil? Afinal, de contas, somos todos profissionais. Somos mesmo?
Obs: não vamos confundir as coisas com ética, ok?
"Lamentação de um profissional de TI que recentemente recebeu proposta, achou que deveria ir, ficou muito dividido entre o local de trabalha e o local onde trabalharia. Comunicou ao chefe, recebeu contra-proposta. Analisou muito e muito, pesou todos os prós e contras e por fim decidiu ficar, afinal de contas, é um profissional."
terça-feira, 14 de outubro de 2008
quinta-feira, 10 de julho de 2008
Extreme Programming, desculpa para não fazer nada? Ou desculpa por não fazer nada?
No trabalho sou uma pessoa preocupada com a fase pré-programação, chego a ser chato como consideram alguns, mas prefiro dizer que é seriedade.
Acho necessário termos análise e projeto antes de escrever o código de um sistema, variando um nível de detalhamento naquilo que for necessário, nas coisas mais complexas.
Não sou nenhum purista, defensor de coisas que aprendi na faculdade, querendo que tudo seja feito de acordo com as regras. Aliás, que regras são essas? Não necessariamente um conjunto de regras que foi escrito por alguém de uma outra realidade funciona para nós. Além disso, conforme outro dia disse uma pessoa no GUJ quando se discutia metodologias de desenvolvimento, "não podemos usá-las como muleta intelectual".
Eu sempre soube que na vida real a coisa era diferente, que por questões de tempo, dinheiro, cliente e até política de empresa alguns passos no desenvolvimento de software, essa tal pré-programação, são pulados, feitos de qualquer maneira, etc. Mas não concordo!
O que eu não imaginava, era que encontraria muito por aí, gente fazendo software como se não existissem técnicas, boas práticas de desenvolvimento, metodologias de desenvolvimento, para resolver os problemas recorrentes, de anos atrás. É como disse meu professor do curso de Projeto de Software Orientado a Componentes "Levanta a mão quem usa patterns nos projetos em que trabalha ou trabalhou. Ninguém? Tô espantado. Padrão de projeto é algo que tem mais de 15 anos, é para solucionar problemas comuns de projeto, e tem gente que ainda não usa."
Atualmente se fala muito de metodologias de desenvolvimento ágil, apesar das tais metodologias já terem alguns anos de vida, atualmente isso está crescendo. Uma metodologia muito falada (as vezes é só falada mesmo, pois, existem alguns que falam que são adeptos dela mas não fazem nada de suas práticas) é o Extreme Programming, ou apenas XP.
Pelo nome, programação extrema, o que a gente pode concluir? Sair programando como louco para terminar o que tem pra fazer, certo? Errado, pelo menos eu vejo assim.
Fui buscar informação sobre XP, para tirar essa dúvida da cabeça, entender o que é, como é, e desmistificar o mal uso do XP por parte das pessoas.
Muitas pessoas por aí falam "sou adepto do XP" mas isso sempre me pareceu uma desculpa para não fazer nada da pré-programação, para justificar o fato de não ter uma documentação mínima, com casos de uso, alguns diagramas para descrever o uso da aplicação, para dar apoio ao desenvolvimento. Mas será que o XP diz isso? Justamente isso que eu queria desmistificar, fui atrás de leitura, fui direto a fonte, o site oficial da metodologia: http://www.extremeprogramming.org
Fiquei surpreso ao ler as informações do site. De certa forma até empolgado com a metodologia. Mas o que gostei mesmo, foi de ler a página onde são expostas as regras e práticas do Extreme Programming.
Gostei de saber, vendo nessa página, que existe uma divisão em quatro grandes áreas: Planejamento, Projeto, Codificação e Teste. Só de termos essa divisão, já morrem aqueles adeptos do XP, que assim se dizem, e que só querem saber de programar, não querem saber de caso de uso (no caso de XP seriam users stories) planejar o desenvolvimento, ou de avaliar o andamento do projeto, os riscos, comunicação entre equipe, etc. Esses caras, na minha opinião, não sabem o que é XP! Dizer que faz XP porque utiliza Pair Programming é bobagem!
Agora sei que realmente algumas pessoas fazem mal uso da mesma, na minha opinião elas querem mesmo é arrumar uma desculpa para não fazer nada, e o XP não é a melhor das desculpas.
Não vou entrar em maiores detalhes sobre a metodologia pois conheço pouco e isso pode ser encontrado no site oficial, além de outros lugares na internet, e livros principalmente. Há muito mais sobre o XP que não foi dito aqui.
Resumindo. Achei bem interessante o XP, não sou profundo conhecedor da metodologia, mas fico satisfeito em descobrir suas quatro grandes áreas e desmistificá-la para os tais "adeptos do XP". Nunca fiz uso do XP e na verdade eu gosto mesmo é de Scrum!
Fica registrado meu comentário sobre a metodologia, e minha crítica aos so called "adeptos do XP".
Acho necessário termos análise e projeto antes de escrever o código de um sistema, variando um nível de detalhamento naquilo que for necessário, nas coisas mais complexas.
Não sou nenhum purista, defensor de coisas que aprendi na faculdade, querendo que tudo seja feito de acordo com as regras. Aliás, que regras são essas? Não necessariamente um conjunto de regras que foi escrito por alguém de uma outra realidade funciona para nós. Além disso, conforme outro dia disse uma pessoa no GUJ quando se discutia metodologias de desenvolvimento, "não podemos usá-las como muleta intelectual".
Eu sempre soube que na vida real a coisa era diferente, que por questões de tempo, dinheiro, cliente e até política de empresa alguns passos no desenvolvimento de software, essa tal pré-programação, são pulados, feitos de qualquer maneira, etc. Mas não concordo!
O que eu não imaginava, era que encontraria muito por aí, gente fazendo software como se não existissem técnicas, boas práticas de desenvolvimento, metodologias de desenvolvimento, para resolver os problemas recorrentes, de anos atrás. É como disse meu professor do curso de Projeto de Software Orientado a Componentes "Levanta a mão quem usa patterns nos projetos em que trabalha ou trabalhou. Ninguém? Tô espantado. Padrão de projeto é algo que tem mais de 15 anos, é para solucionar problemas comuns de projeto, e tem gente que ainda não usa."
Atualmente se fala muito de metodologias de desenvolvimento ágil, apesar das tais metodologias já terem alguns anos de vida, atualmente isso está crescendo. Uma metodologia muito falada (as vezes é só falada mesmo, pois, existem alguns que falam que são adeptos dela mas não fazem nada de suas práticas) é o Extreme Programming, ou apenas XP.
Pelo nome, programação extrema, o que a gente pode concluir? Sair programando como louco para terminar o que tem pra fazer, certo? Errado, pelo menos eu vejo assim.
Fui buscar informação sobre XP, para tirar essa dúvida da cabeça, entender o que é, como é, e desmistificar o mal uso do XP por parte das pessoas.
Muitas pessoas por aí falam "sou adepto do XP" mas isso sempre me pareceu uma desculpa para não fazer nada da pré-programação, para justificar o fato de não ter uma documentação mínima, com casos de uso, alguns diagramas para descrever o uso da aplicação, para dar apoio ao desenvolvimento. Mas será que o XP diz isso? Justamente isso que eu queria desmistificar, fui atrás de leitura, fui direto a fonte, o site oficial da metodologia: http://www.extremeprogramming.org
Fiquei surpreso ao ler as informações do site. De certa forma até empolgado com a metodologia. Mas o que gostei mesmo, foi de ler a página onde são expostas as regras e práticas do Extreme Programming.
Gostei de saber, vendo nessa página, que existe uma divisão em quatro grandes áreas: Planejamento, Projeto, Codificação e Teste. Só de termos essa divisão, já morrem aqueles adeptos do XP, que assim se dizem, e que só querem saber de programar, não querem saber de caso de uso (no caso de XP seriam users stories) planejar o desenvolvimento, ou de avaliar o andamento do projeto, os riscos, comunicação entre equipe, etc. Esses caras, na minha opinião, não sabem o que é XP! Dizer que faz XP porque utiliza Pair Programming é bobagem!
Agora sei que realmente algumas pessoas fazem mal uso da mesma, na minha opinião elas querem mesmo é arrumar uma desculpa para não fazer nada, e o XP não é a melhor das desculpas.
Não vou entrar em maiores detalhes sobre a metodologia pois conheço pouco e isso pode ser encontrado no site oficial, além de outros lugares na internet, e livros principalmente. Há muito mais sobre o XP que não foi dito aqui.
Resumindo. Achei bem interessante o XP, não sou profundo conhecedor da metodologia, mas fico satisfeito em descobrir suas quatro grandes áreas e desmistificá-la para os tais "adeptos do XP". Nunca fiz uso do XP e na verdade eu gosto mesmo é de Scrum!
Fica registrado meu comentário sobre a metodologia, e minha crítica aos so called "adeptos do XP".
quarta-feira, 2 de julho de 2008
Firebug - Ferramenta para o desenvolvedor WEB
Uma ótima ferramenta para o desenvolvedor WEB utilizar ao navegar em sua aplicação é o Firebug. O Firebug é um add on para o Firefox, consiste em um conjunto de ferramentas para editar, debugar e monitorar CSS, HTML e JavaScript.
É praticamente uma IDE, onde você pode visualizar os cabeçalhos de request e responde, visualizar os erros de JavaScript (inclusive em que linha de código), criar watch expressions no JavaScript para testar alterações na hora, realizar inspect no código HTML gerado visualizando ao mesmo tempo o CSS do elemento.
Excelente para resolver aqueles problemas chatos de CSS resultantes de incompatibilidade entre Firefox e IE. Você identifica onde está o problema e pode testar uma correção na hora. Eliminando re-deploys de sistema, economizando tempo.
Funciona para qualquer site, mas pode deixar alguns um pouco lentos, por isso não deixe ele sempre ligado.
Mais informações em: http://getfirebug.com/
É praticamente uma IDE, onde você pode visualizar os cabeçalhos de request e responde, visualizar os erros de JavaScript (inclusive em que linha de código), criar watch expressions no JavaScript para testar alterações na hora, realizar inspect no código HTML gerado visualizando ao mesmo tempo o CSS do elemento.
Excelente para resolver aqueles problemas chatos de CSS resultantes de incompatibilidade entre Firefox e IE. Você identifica onde está o problema e pode testar uma correção na hora. Eliminando re-deploys de sistema, economizando tempo.
Funciona para qualquer site, mas pode deixar alguns um pouco lentos, por isso não deixe ele sempre ligado.
Mais informações em: http://getfirebug.com/
quinta-feira, 26 de junho de 2008
Gerador de PDF e gerador de RTF em Java
Nas duas últimas semanas tive duas tarefas de trabalho que fizeram com que tivesse contato com duas coisas interessantes e bem úteis: gerar um PDF a partir de código HTML e gerar um relatório em RTF.
O primeiro caso, tenho que dar méritos a um usuário do GUJ, o qual divulgou o código no post.
Já o segundo caso, eu mesmo criei o código, a partir de uma necessidade de geração de um relatório em DOC no trabalho. Como DOC é (até onde eu sei) um formato fechado, decidi por fazer um relatório em RTF, por ser fácilmente visualizado na maioria dos editores de texto e por saber que a biblioteca iText gera arquivos RTF facilmente.
As classes ficaram bem simples, com código pequeno e vou apresentá-las aqui.
A classe geradora de PDF a partir de HTML, com algumas modificações que eu fiz em relação a apresentada no GUJ. Essa classe já está pronta para ser colocada em algum projeto e ser utilizada:
Essa classe gera o PDF a partir de uma String a qual o conteúdo é código HTML. No meu caso eu gerei um template velocity representando o template a ser preenchido que iria ser transformado em HTML para ser input dessa classe. Ou seja, um controller qualquer de minha aplicação pega os dados necessários, preenche o template velocity, pega o resultado e passa para a classe geradora de PDF.
E a classe geradora de RTF.
Para uso dessa classe é necessário antes criar uma lista de objetos do tipo Element, contendo a forma como o RTF deve ser escrito. Na verdade você tem que escrever o RTF programáticamente antes de de fato criar o arquivo no filesystem. Um exemplo:
O primeiro caso, tenho que dar méritos a um usuário do GUJ, o qual divulgou o código no post.
Já o segundo caso, eu mesmo criei o código, a partir de uma necessidade de geração de um relatório em DOC no trabalho. Como DOC é (até onde eu sei) um formato fechado, decidi por fazer um relatório em RTF, por ser fácilmente visualizado na maioria dos editores de texto e por saber que a biblioteca iText gera arquivos RTF facilmente.
As classes ficaram bem simples, com código pequeno e vou apresentá-las aqui.
A classe geradora de PDF a partir de HTML, com algumas modificações que eu fiz em relação a apresentada no GUJ. Essa classe já está pronta para ser colocada em algum projeto e ser utilizada:
Essa classe gera o PDF a partir de uma String a qual o conteúdo é código HTML. No meu caso eu gerei um template velocity representando o template a ser preenchido que iria ser transformado em HTML para ser input dessa classe. Ou seja, um controller qualquer de minha aplicação pega os dados necessários, preenche o template velocity, pega o resultado e passa para a classe geradora de PDF.
E a classe geradora de RTF.
Para uso dessa classe é necessário antes criar uma lista de objetos do tipo Element, contendo a forma como o RTF deve ser escrito. Na verdade você tem que escrever o RTF programáticamente antes de de fato criar o arquivo no filesystem. Um exemplo:
Posts com código fonte
Desde que criei o blog, no pouco tempo que tive para postar alguma coisa que achava interessante e que envolvia exemplo em código, esbarrei no problema: como postar código? Já havia visto por aí em outros sites, um deles é o GUJ além de outros blogs. Eu imaginava que seria simples, imaginava um JavaScript com CSS.
Procurando sobre o assunto, para poder postar aqui no blog código, descobri o SintaxHighLighter do Google, encontrado em http://code.google.com/p/syntaxhighlighter
Até aí tudo bem, mas eu sabia que não seria algo que funcionaria automágicamente, um mínimo de esforço seria necessário, a dificuldade foi em descobrir qual seria.
Pesquisei em outros blogs e encontrei tutoriais para isso, mas nenhum foi 100% útil, tive que me virar sozinho um pouco.
Vou aqui explicar como fiz:
Antes de qualquer coisa, você deve baixar o SyntaxHighLighter no site http://code.google.com/p/syntaxhighlighter/, pois, será necessário colocar os arquivos nele contidos em um servidor, para posteriormente você apontar para eles, dessa maneira funcionará.
Vá em Layout -> Editar HTML. No código do modelo (que é o template de cada post novo criado) você deve procurar por uma div de id outer-wrapper. Outros blogs diziam para procurar por "" mas não sei porque isso não funcionou comigo, no meu template não havia isso, mas basta achar o final da div de id outer-wrapper, aproveite e marque o final dela com o comentário "."
Logo após essa div, você deve colocar o código abaixo:
Você pode reparar que após o http:// temos NOMEDOHOST, isso porque será necessário que você disponibilize esses arquivos em algum servidor web, por exemplo o google pages.
Após isso está tudo pronto para postar códigos de exemplo, basta ver o site oficial para aprender o seu uso: http://code.google.com/p/syntaxhighlighter/
Procurando sobre o assunto, para poder postar aqui no blog código, descobri o SintaxHighLighter do Google, encontrado em http://code.google.com/p/syntaxhighlighter
Até aí tudo bem, mas eu sabia que não seria algo que funcionaria automágicamente, um mínimo de esforço seria necessário, a dificuldade foi em descobrir qual seria.
Pesquisei em outros blogs e encontrei tutoriais para isso, mas nenhum foi 100% útil, tive que me virar sozinho um pouco.
Vou aqui explicar como fiz:
Antes de qualquer coisa, você deve baixar o SyntaxHighLighter no site http://code.google.com/p/syntaxhighlighter/, pois, será necessário colocar os arquivos nele contidos em um servidor, para posteriormente você apontar para eles, dessa maneira funcionará.
Vá em Layout -> Editar HTML. No código do modelo (que é o template de cada post novo criado) você deve procurar por uma div de id outer-wrapper. Outros blogs diziam para procurar por "" mas não sei porque isso não funcionou comigo, no meu template não havia isso, mas basta achar o final da div de id outer-wrapper, aproveite e marque o final dela com o comentário "."
Logo após essa div, você deve colocar o código abaixo:
Você pode reparar que após o http:// temos NOMEDOHOST, isso porque será necessário que você disponibilize esses arquivos em algum servidor web, por exemplo o google pages.
Após isso está tudo pronto para postar códigos de exemplo, basta ver o site oficial para aprender o seu uso: http://code.google.com/p/syntaxhighlighter/
quarta-feira, 4 de junho de 2008

O Firefox na versão 3 está quase pronto e foi criada uma campanha na tentativa de quebrar o recorde mundial de downloads de um software, ela está sendo chamada de Download Day. Basta acessar o site e confirmar a participação que no dia do lançamento você recebe um email avisando sobre o download. Mais de 700 mil pessoas já confirmaram, resta saber se no dia vai ser possível fazer o download. Segue o link: http://www.spreadfirefox.com/pt-BR/worldrecord
quinta-feira, 15 de maio de 2008
Sou Fernando Fiaux de Moraes, natural do Rio de Janeiro, onde resido. Bacharel em Informática pela Pontifícia Universidade Católica do Rio de Janeiro em 2007, atualmente atuo como profissional na área de desenvolvimento de sistemas no IMPA - Instituto de Matemática Pura e Aplicada - .
Trabalho desenvolvendo sistemas WEB com Java. Utilizo tecnologias como: Struts, Hibernate, Spring, Maven, MySQL, Linux.
Atualmente busco novas áreas de atuação, seja como consultor, freelancer, etc. Quero poder botar em prática outros conhecimentos, outras tecnologias, de desenvolvimento WEB como GWT, ICEfaces, Ruby, Ruby on Rails e é claro: Java. Além de desenvolvimento Desktop com Swing.
Fernando Fiaux de Moraes
ffiaux@gmail.com
Trabalho desenvolvendo sistemas WEB com Java. Utilizo tecnologias como: Struts, Hibernate, Spring, Maven, MySQL, Linux.
Atualmente busco novas áreas de atuação, seja como consultor, freelancer, etc. Quero poder botar em prática outros conhecimentos, outras tecnologias, de desenvolvimento WEB como GWT, ICEfaces, Ruby, Ruby on Rails e é claro: Java. Além de desenvolvimento Desktop com Swing.
Fernando Fiaux de Moraes
ffiaux@gmail.com
Assinar:
Postagens (Atom)