Archive for agosto de 2010

Precisamos ser mais psicólogos que engenheiros para ter sucesso com engenharia de software

Einstein afirmou que se ele tivesse uma hora para salvar o mundo, ele gastaria 55 minutos definindo o problema e apenas 5 minutos buscando a solução.

Exceto pela proporção do tempo dedicado ao problema e à solução, concordo inteiramente com a importância que Einstein dava ao entendimento do problema antes de partir para a solução do mesmo.

Entendimento do problema na Engenharia de Software deve acontecer no início da etapa de definição dos Requisitos do Sistema. Problema mal entendido implica em requisitos mal definidos, incompletos que causam insucesso dos projetos. Há anos a estatística de projetos que falham e os custos associados a essas falhas trazem números desanimadores. Somente para citar alguns:

  • 41% dos projetos falham em adicionar valor ao negócio e Retorno de Investimento – ROI.
  • 49% dos projetos ultrapassam as estimativas iniciais de custo.
  • Somente 28% dos projetos acontecem no prazo e no orçamento.

(Fonte: Standish Group)

O Standish Group também associa tamanho insucesso com os seguintes fatores: falta de envolvimento do usuário, falta de clareza nos objetivo de negócio, incapacidade de se capturar requisitos básicos, falta de controle do escopo do projeto e falta de suporte executivo.

O IDC ainda é mais específico em apontar as causas do fracasso. Segundo o IDC, mais de 80% das falhas em desenvolvimento de software resultam diretamente de problemas no levantamento, na gerência ou na análise dos requisitos.

Segundo o IAG Consulting, mais de 40% do budget de TI será consumido por especificações pobres de requisitos.

Os números mostram que Einstein tinha uma certa razão. Investir tempo no espaço do problema em termos de desenvolvimento de software significa entender os objetivos de negócio, identificar corretamente os envolvidos, fazer as perguntas corretas para explorar o problema, utilizar técnicas apropriadas para ser capaz de descrever o que o sistema deve fazer e para que ele está sendo criado. Apesar de parecer óbvio, por que essa questão reconhecida na indústria de software é tão difícil de endereçar?

Eu enumeraria alguns motivos:

  • É típica da natureza humana a ansiedade por buscar a solução rapidamente para algo que lhe foi demandado. O analista mais inexperiente principalmente sente-se desafiado a resolver a questão, ignorando o entendimento detalhado da demanda. Muitas vezes fica pensando se vai ou não utilizar aquele componente que fez no projeto anterior enquanto o usuário continua explicando suas dificuldades em vão. Essa ansiedade pela solução acontece em diversos níveis, pois o gerente de projeto e o coordenador da área também só sentem progresso quando veem algo palpável como linhas de código. Nenhum problema nisso desde que não incentivem o início da implementação ignorando a importância do entendimento dos problemas de negócio.
  • Não é confortável para analistas e engenheiros de sistemas navegar em áreas de conhecimento muitas vezes desconhecidas como os processos de negócio e conhecimentos da indústria. É sempre mais fácil falar sobre tabelas, relatórios, funções e dados.
  • Falta de preparação dos profissionais de TI pela maioria das faculdades e universidades nos cursos relacionados à área. Somos bem treinados em termos de ciência e engenharia da computação. Sabemos sistemas operacionais, estatística, cálculos, física, compiladores, linguagens de programação, etc. Não existe foco em termos de ciências humanas ou psicologia para aprendermos a nos comunicar com pessoas que não têm conhecimento técnico.
  • O baixo envolvimento do usuário durante o projeto está muitas vezes relacionado à cultura imposta pelo processo de desenvolvimento em cascata, muito utilizado ainda no Brasil, que envolve o usuário no início do projeto para definição dos requisitos e somente depois no final para aceite do sistema.

A boa notícia é que existem caminhos. Através da IBM Rational, conseguimos defender que a mudança de cultura necessária para se implantar ou aumentar a maturidade de uma disciplina de engenharia de software exige investimento em 3 pilares: processo, ferramentas e pessoas.

Em termos de processo, houve uma grande evolução nos últimos anos. Pode-se citar o Rational Unified Process tradicional, os processos ágeis como o Agile Unified Process ou o XP (Extreme Programming), cada um com suas características próprias em maior ou menor ênfase, defendem pontos básicos relacionados a requisitos como: envolvimento constante do usuário e envolvidos, não especificação de todos os requisitos no início do projeto, mas sim iterativamente e utilização de técnicas apropriadas para facilitar o processo.

Scott W. Ambler¹ em seu livro “Agile Modeling: Effective Practices for Extreme Programming and the Unified Process” explica o quão importante é a modelagem e a documentação de qualquer projeto de software, incluindo os projetos ágeis. Ele enfatiza que técnicas tradicionais como JAD, Casos de Uso, entrevistas, observação, entre outras, podem ser adaptadas aos processos ágeis e a participação constante dos envolvidos é ponto fundamental de sucesso. O grau de formalismo no uso da técnica e o tempo dedicado às atividades é que variam de acordo com o processo.

Em termos de ferramentas, alguns agilistas extremados defendem o uso de papel simplesmente. Outros utilizam algumas técnicas e ferramentas. Considerando que o sistema é algo que vai existir na organização durante anos ou décadas e vai sofrer manutenção, é preciso utilizar recursos que facilitem a documentação e a alteração da mesma. Além do fato de que o desenvolvimento geograficamente distribuído está se tornando cada vez mais comum, a necessidade de um suporte de ferramental para desenvolvimento colaborativo é premente.

Nesse ponto, o Rational Requirements Composer (RRC)² é uma excelente opção, seja para desenvolvimento ágil em projetos que exijam menos formalismos, seja para projetos tradicionais muitas vezes sujeitos ao cumprimento de regulamentações e auditoria. O RRC é construído sobre a plataforma colaborativa Jazz da IBM e possui recursos para suportar as etapas de entendimento do problema, levantamento e definição dos requisitos. O produto complementa a plataforma Rational que já possui ferramenta para gerenciamento de requisitos.

Em termos de pessoas é preciso primeiramente selecionar analistas que tenham perfil adequado, fornecer treinamento e mentorização. Existem técnicas, e boas práticas que podem aperfeiçoar o trabalho da equipe. Donald Gause e Gerald Weinberg³ definem problema como sendo a diferença ou o gap existente entre apercepção da situação atual e a situação desejada. Dada essa definição, existem diferentes formas de resolver o problema. Nem sempre a melhor solução é fornecer a situação desejada. A mudança de percepção da situação atual pode alterar a definição do problema.

A maioria das solicitações de melhoria recebidas pela Microsoft, por exemplo, para produtos como Word, são de funcionalidades já existentes no produto. A solução correta seria então mudar a percepção da situação atual, através de um treinamento, por exemplo. A explicação do custo envolvido ou de outros aspectos de uma solução pode mudar a percepção do cliente sobre a situação desejada. Algumas vezes o cliente solicita funcionalidades que não resolverão o problema dele e consequentemente não serão utilizadas, pois sua percepção da situação desejada pode estar distorcida.

Uma evidência disso é a estatística publicada pelo Standish Group: “Tipicamente entre 20-40% das linhas de código dos sistemas não são utilizadas”. Técnicas de análise de problemas nos ensinam a fazer perguntas corretas, mudar o foco para explorar diferentes pontos de vista, quebrar o problema a fim de encontrar a raiz do que aparentemente é um problema, mas é apenas um sintoma.

O mais fantástico é que tais habilidades em geral formam o profissional para ser bem sucedido em outras profissões. O sucesso em vendas está diretamente relacionado à capacidade de entender os problemas de negócio do cliente. O profissional de Marketing precisa entender as necessidades do mercado e o comportamento do consumidor. Uma boa capacidade de comunicação e de análise de problema ajuda nos relacionamentos familiares. Ser capaz de entender as razões do comportamento do filho adolescente pode ser mais difícil que entender as resistências e dificuldades que você pode encontrar para entender seu cliente.

É preciso saber lidar com pessoas, com percepções diferentes, saber se colocar no lugar do outro para genuinamente entender suas dificuldades e necessidades. Alguns têm facilidade nata, outros precisam reconhecer suas limitações e aperfeiçoar suas habilidades através de técnicas e treinamentos adequados.

Curiosamente, há exatamente 37 anos o mesmo Weinberg publicou o livro “The Psycology of Computer Programming”. O livro é considerado atual até hoje, e as mesmas questões básicas e óbvias persistem por décadas. Segundo o autor, um pouco de psicologia e ciências humanas seria a chave para o sucesso individual e de equipes de desenvolvimento.

Para que os três pilares processo, ferramentas e pessoas funcionem de forma harmônica na organização, o suporte executivo é fundamental, pois as ansiedades e a pressão do “fazer para ontem” são forças que devem ser gerenciadas corretamente. Os números mostram que continuar como está não é bom para o negócio e não é bom para a TI. Pense em fazer algo para mudar o futuro da engenharia de software, consequentemente mudando a percepção de que TI não é um centro de custo, mas sim uma área que agrega valor ao negócio através da inovação tecnológica.

¹ Agile Modeling: Effective Practices for Extreme Programming and the Unified Process by Scott Ambler
² Rational Requirements Composer http://www.ibm.com/software/awdtools/rrc/
³ Exploring Requirements: Quality Before Design by Donald C Gause and Gerald M Weingberg
The Psychology of Computer Programming: Silver Anniversary Edition by Gerald M. Weinberg

*

Artigo publicado originalmente no developerWorks Brasil, por Marília Coelho

Marília Coelho é especialista em TI da IBM Brasil, com certificação em IBM Rational Consultant – Rational Unified Process v2003.

,

1 Comentário

Ciberbullying: o que fazer quando seu filho é o agressor?

A garotada sabe tudo sobre internet. E quase nada sobre respeito.

Antes de tudo, peço desculpas pelo palavrão cheio de consoantes que você acaba de ler. Ciberbullying é um termo esquisito. Soa aos meus ouvidos como um pedregulho, como uma agulha desgastada que arranha um disco de vinil. Quem nasceu depois dos anos 90 talvez nunca tenha visto um desses bolachões, mas certamente sabe o que é ciberbullying. A palavra, em inglês, foi importada e rapidamente incorporada ao nosso vocabulário assim como a maioria dos hábitos e ferramentas que a internet instituiu.

Sob vários aspectos, a internet mudou nossa vida para melhor. Sabe-se, porém, que também trouxe problemas. Um deles foi ter amplificado o poder devastador do bullying, um tipo odioso de violência escolar. O bullying ocorre quando o agressor é mais forte ou mais poderoso que a vítima. É praticado por quem insiste em humilhar, subjugar, agredir o colega, isolá-lo do grupo. Quem já passou por isso sabe que as consequências podem ser duradouras. Podem surgir sintomas físicos, doenças psicossomáticas, problemas emocionais, sociais e de aprendizagem.

O bullying no meio digital (ou ciberbullying) tornou-se uma grande preocupação dos pais que têm filhos em idade escolar. Li um interessante estudo publicado em julho na revista científica Archives of General Psychiatry. Um resumo do artigo você encontra neste link. O trabalho menciona uma estatística sobre ciberbullying entre estudantes de 10 a 17 anos nos Estados Unidos. Nessa amostra, 12% declararam ter agredido alguém pela internet; 4% disseram ter sido alvo de agressão e 3% revelaram ter estado nas duas posições. Ou seja: em algumas vezes foi o agressor. Em outras, o agredido.

Todos nós tentamos proteger nossas crianças dessa ameaça. E se o seu filho estiver do outro lado? E se você descobrir que, em vez de vítima, ele é o agressor? A probabilidade de ter em casa uma criança ou jovem que pratica ciberbullying não é baixa. Dependendo da idade da criança, ela nem entende direito a extensão dos danos provocados pelas agressões. Mas agridem. Recentemente ouvi duas histórias que chamaram minha atenção para o desafio que os pais e as escolas enfrentam.

Três meninas de 10 anos se encontraram na frente de um computador e decidiram dizer tudo o que pensavam sobre uma coleguinha de classe. Bancaram as “supersinceras”. Escreveram coisas do tipo: “você é chata”, “você acha que tudo tem de ser do seu jeito”, “nunca mais quero ser sua amiga” etc. Dá para imaginar a confusão que isso provocou, né?

Os pais da menina agredida reclamaram. Os pais das agressoras ficaram arrasados, se perguntando onde erraram na educação das filhas. Por sorte, os casais são amigos e puderam conduzir a história com maturidade. Procuraram mostrar às crianças o quanto elas sofreriam se estivessem na posição da menina agredida. E o quanto esse tipo de constrangimento é odioso. Tentaram mostrar, também, que não podemos dizer pela internet aquilo que não temos coragem de expressar pessoalmente.

As agressoras choraram. De vergonha e arrependimento. Demonstraram, sinceramente, não ter noção dos danos que estavam provocando. Achavam que, se fossem francas com a amiga, ela perceberia que precisava mudar seu comportamento.

Superada a crise (pelo menos aparentemente), as quatro continuam amigas. Passam as tardes juntas na escola, dormem na casa de uma ou de outra nos finais de semana, se falam por telefone, trocam mensagens pelo Orkut. Mas esse episódio foi uma grande lição. Para as crianças e para os adultos.

A outra história aconteceu com um menino de 10 anos, bastante querido pela turma. Por alguma razão, ele se esforça para ser identificado como um bom camarada. Comete atos de generosidade exagerada. Está sempre dando algum presente a alguém. Brinquedos caros, balas, figurinhas disputadas etc. Faz tudo o que lhe pedem. Em troca de afeto, talvez? Um dia desses o “gente boa” deu a senha de seu perfil no Orkut a uma colega de sala.

O que aconteceu? A menina se fez passar por ele e enviou xingamentos a várias colegas. Soltou o verbo e o veneno. “Você é feia”, “não quero namorar você”, “fulano não gosta de você”, etc. Foi uma confusão. Todas as meninas se voltaram contra ele. As mães das garotas foram tirar satisfação com a mãe do menino. Até essa mulher conseguir entender o que aconteceu e provar às outras que ele não era ele, muito sofrimento rolou.

Esses e outros episódios me levam a crer que a garotada que sabe tudo de internet está completamente perdida no que diz respeito às regras de convivência nesse novo ambiente. Em habilidade tecnológica, essa geração é nota 10. Em discernimento e ética, merece zero.

Os pais e as escolas precisam enfrentar o problema. Sem rodeios. Sem fingir que é um mal menor. O primeiro passo é tentar entender a dimensão do ciberbullying. Existem poucas pesquisas sobre o assunto no Brasil. O estudo que mencionei no início desse texto foi realizado na Finlândia com 2,2 mil adolescentes entre 13 e 16 anos. Com a garantia do anonimato, eles relataram os episódios de ciberbullyig praticados nos seis meses anteriores. Nessa amostra, 7% se declararam agressores. Quase 5% relataram ser vítimas. Outros 5,4% disseram ter vivido os dois papéis (agressor e vítima).

Entre os problemas de saúde e/ou emocionais relatados pelas vítimas apareceram dores de cabeça, dores abdominais recorrentes, dificuldades de sono e sensação de insegurança na escola. Entre os agressores, verificou-se hiperatividade, problemas de conduta, dores de cabeça, abuso de cigarro e álcool etc. Todos esses problemas foram verificados entre os adolescentes que viveram os dois papéis (agressor e vítima).

Se os pais pudessem intervir precocemente, antes que as agressões se transformassem numa bola de neve, muito sofrimento poderia ser evitado. Mas como saber se a belezinha que você tem em casa é um tirano no mundo digital?

“Já conversei com pais arrasados ao descobrirem que seus filhos estavam envolvidos em investidas maldosas contra colegas de classe”, diz a hebiatra Maria Dulcinea Oliveira, do Hospital Infantil Sabará, em São Paulo. O que eles podem fazer? Algumas sugestões da médica especializada no atendimento de adolescentes:

• mostrar aos jovens (ou às crianças) o impacto dos atos deles na vida do outro;

• obter informações sobre a vítima e seus pais para que, juntos, possam pedir desculpas;

• descobrir por que o agressor partiu para o ataque e ajudá-lo a rever os conceitos que tem das pessoas e do mundo;

• demonstrar interesse pelo mundo digital e, dessa forma, supervisionar de que forma o filho se comporta na internet.

É um bom começo, mas cada família precisa avaliar se está sendo capaz de transmitir aos filhos valores fundamentais como respeito, tolerância e educação. Dentro e fora da internet.

Cristiane Segatto

Fonte: RevistaEpoca.globo.com

Nenhum comentário.

Tutorial Series: Orientação a objetos utilizando PHP #2

Ver Tutorial Series: Orientação a objetos utilizando PHP
Ver Tutorial Series: Introdução a orientação a objetos

Implementando uma classe e criando objetos a partir dela

A implementação de uma classe só tem sentido se, no contexto do desenvolvimento de um sistema orientado a objeto, for identificada a necessidade de existência de um conjunto de objetos com atributos e comportamentos em comum. A partir do momento que esses objetos com atributos e comportamento em comum são identificados, já existe a necessidade de criar a estrutura (classe) que os defina.

Neste módulo, você irá aprender como implementar na linguagem PHP uma classe e como criar objetos (instâncias) a partir dela. Pode-se falar também no termo “instanciar objetos” a partir de uma classe.

Não iremos neste momento demonstrar o processo de identificação de objetos num dado problema, isso será feito nas seções seguintes.

Veremos agora, como implementar a classe Cliente do Sistema de Conta Corrente citado anteriormente e como criar objetos cliente a partir dela.

A visão prática desses dois conceitos (Classe e Objeto) facilitará o entendimento dos demais conceitos.

Implementação da Classe Cliente

A seguir será apresentada uma implementação resumida e mais didática da classe Cliente.

  1. class Cliente {
  2.  
  3.  private $nome;
  4.  private $endereco;
  5.  private $cpf;
  6.  
  7.  function __construct() {
  8.   $this->nome = "";
  9.   $this->endereco = "";
  10.   $this->cpf = "";
  11.  }
  12.  
  13.  public function setNome($nome) {
  14.   $this->nome = $nome;
  15.  }
  16.  
  17.  public function setEndereco($endereco) {
  18.   $this->endereco = $endereco;
  19.  }
  20.  
  21.  public function setCpf($cpf) {
  22.   $this->cpf = $cpf;
  23.  }
  24.  
  25.  public function getNome() {
  26.   return $this->nome;
  27.  }
  28.  
  29.  public function getEndereco() {
  30.   return $this->endereco;
  31.  }
  32.  
  33.  public function getCpf() {
  34.   return $this->cpf;
  35.  }
  36.  
  37. }

Análise da classe Cliente

Para se nomear classes, existem alguns requisitos que devem ser observados. Classes são nomeadas com um substantivo no singular.

– O nome de uma classe deve iniciar com a primeira letra maiúscula;

– Não devem ser utilizados símbolos de sublinhado (“_”)

– Nomes compostos por múltiplas palavras são organizados com todas as palavras juntas, onde a primeira letra de cada uma fica maiúscula.

– Exemplos: Aluno, Professor, FolhaPagamento.

Após a definição inicial da classe, temos a definição dos seus atributos. Na definição dos atributos deve-se utilizar a palavra private (veremos mais adiante o significado dessa palavra) seguido do nome do atributo. No caso da classe Cliente, temos os atributos nome, endereço e cpf.

– Normalmente, atributos são colocados no início da definição da classe, depois do primeiro { .

– Devem começar com letra minúscula.

Depois da definição do nome da classe e dos atributos da classe, segue-se a definição dos comportamentos, no contexto da implementação, conhecidos como métodos. Por enquanto, os comportamentos ou métodos definidos para a classe Cliente são simples. Na medida em que formos avançando, mais comportamentos ou métodos poderão ser implementados. No momento, implementamos sete métodos: __construct(), setNome(), setEndereco(), setCpf(), getNome(), getEndereco() e getCpf().

O primeiro método implementado se chama __construct(). Este é um método construtor. Um método construtor no PHP (em sua versão 5, pois na versão 4 os métodos construtores tinham o mesmo nome da classe) deve ter sempre este nome e não devem retornar nada, apenas realizar as tarefas necessárias para a utilização do objeto no momento em que ele é criado (instanciado). Vamos saber mais sobre métodos construtores no momento da explicação da criação de objetos. Saiba por enquanto que é importante (não obrigatório) que cada classe tenha um método construtor implementado.

O que se pode programar dentro de um método construtor?

Qualquer coisa que se quer que aconteça quando um objeto do tipo Cliente, no caso, for criado, porque o código que está dentro de um método construtor é executado sempre que um objeto desse tipo for criado. Porém, normalmente se programa para que os atributos do objeto sejam inicializados. No caso do nosso método construtor, os atributos da classe foram inicializados com uma string vazia (“”).

Abaixo do método construtor estão os métodos “setters” e “getters”. Estes métodos são geralmente utilizados com a nomenclatura neste padrão (setNomeDoAtributo() e getNomeDoAtributo()) definem os valores dos atributos da classe e “informam” estes valores. Os métodos set definem o valor que será definido para o atributo da classe e o método get retorna o valor que foi definido anteriormente pelo método set ou definido no construtor da classe.

Observe que os métodos gets utilizam a palavra “return”, que (obviamente) retorna algum valor caso seja a intenção do método.

Criar objetos a partir da classe Cliente

Depois que a classe Cliente for implementada, ela está pronta para ser “usada”, ou seja, é possível criar objetos do tipo Cliente a partir dela.

A explicação de criar um objeto é similar à criação (declaração) de uma variável de memória. Quando declaramos uma variável de memória também estamos reservando espaço na memória para armazenar algum valor. Essa variável de memória deve ter um nome que a identifica. O mesmo acontece com a criação de um objeto. Ao criar um objeto, precisamos dar um nome (identificação) para ele e, nesse espaço de memória que estamos declarando, serão armazenados os valores correspondentes aos atributos definidos na (classe) desse objeto.

Essa explicação para criação de objeto é simples e será utilizada no momento para facilitar seu entendimento. Posteriormente, essa explicação será refinada.

  1. $c = new Cliente();

Após a execução dessa linha, um objeto, ou seja, uma área de memória é alocada.. Note cuja a sintaxe é igual a definida acima para criação de objetos. Sempre que um objeto é criado, o método construtor definido na classe desse objeto é chamado (invocado) e, tudo o que está programado nesse método, é executado.

O que foi programado no método construtor da classe Cliente?

A inicialização de todos os atributos do objeto Cliente, portanto, ao criar o objeto cliente, todos os seus atributos já estarão inicializados. A figura abaixo ilustra de maneira simples o objeto alocado na memória e seus atributos inicializados:

O código abaixo demonstra o uso da classe cliente:

  1. $c = new Cliente();
  2.  
  3. $c->setNome(“Thiago”);
  4. $c->setCpf(000.000.000-00);
  5. $c->setEndereco(“Minha Casa”);
  6.  
  7. $nome = $c->getNome();
  8. $cpf = $c->getCpf();
  9. $endereco = $c->getEndereco();

Inicialmente, instanciamos um objeto do tipo Cliente chamado $c. Neste momento, o valor dos atributos ainda são “” (string vazia), conforme definido no construtor. Após a execução dos métodos setters, os valores dos atributos são alterados para os valores definidos em cada um. Depois dos métodos setters temos os métodos getters, que estão armazenando nas variáveis $nome, $cpf e $endereco os valores dos atributos do objeto que são retornados quando utilizamos os métodos getters.

A figura abaixo ilustra de o objeto alocado na memória após a execução do código acima:

Dúvidas? Sintam-se a vontade para perguntar… Um abraço e até a próxima!

, ,

2 Comentários

Ferramentas Open Source

Pessoal, acabo de visitar um site com uma lista muito bacana de ferramentas Open Source de testes de performance, gestão de projetos, gestão de testes, testes funcionais, gestão de defeitos, estimativas, controle de versão e gestão de requisitos. Vale a pena dar uma olhada!

Visitem http://www.mindomo.com/view?m=d1535d37f8b0aa6df765a1db90bfa317

Abraços! 😉

, , , , , , , , ,

Nenhum comentário.

Xbox 360

Quando o assunto é consoles, sempre preferí a Sony com os seus Playstations da vida. A última experiência com consoles de outras marcas que tive foi um pouco traumática (Sega Saturn, a bastante tempo atrás), depois disso adquiri o Playstation 2 e o PSP. Ambos me deixaram satisfeitíssimos, mas…

Dessa vez resolví “inovar” novamente. Tenho visto o barulho que o Xbox vem fazendo e resolví ver se realmente vale a pena. Um amigo trocou o dele (modelo Arcade, com aproximadamente um ano de uso mas em perfeitíssimo estado) por um Playstation 3 e me vendeu por um preço bem acessível..

Gostei muito da navegabilidade dele, gerência de perfis… O processamento gráfico é demais! Ainda não testei o Xbox Live, mas pretendo em breve…

Enfim, estou a duas semanas com meu Xbox e estou muito satisfeito! Se você está em “dúvida” se compra um ou não… Vai na fé, você não vai se arrepender!

,

1 Comentário

Cloudcamp em Brasília, São Paulo e Belo Horizonte

Ocorrerá nos dias 10, 14 e 19 o evento Cloudcamp, que será sediado em São Paulo, Belo Horizonte e Brasília, respectivamente. O evento, como o próprio nome diz, abordará o tema Cloud Computing.

O CloudCamp, é um evento mundial do tipo “desconferência” (unconference), onde pioneiros na adoção do Cloud Computing podem discutir a tecnologia através de um debate mais produtivo. Com as rápidas mudanças que ocorrem no setor, surge a necessidade de um lugar onde experiências, desafios e soluções sejam compartilhadas. Este evento já foi mais realizado mais de 100 vezes em várias cidades do mundo inteiro.

No CloudCamp, o participante é encorajado a compartilhar os seus pensamentos e experiências em vários debates abertos.

Abaixo seguem as informações referentes aos três eventos:

Cloudcamp São Paulo:

Local: O CloudCamp São Paulo será realizado durante o evento Cloud Summit.

Hotel Novotel São Paulo Jaraguá Convention
Rua Martins Fontes 71 – Centro | São Paulo, SP (mapa)

Investimento: Evento Gratuito!

Data: 10 de Agosto, 2010

Cloudcamp Belo Horizonte:

Local: O CloudCamp Belo Horizonte será realizado na sede da Assespro-MG.

Av. Afonso Pena, 4000 – loja 1 – Cruzeiro – Belo Horizonte – Minas Gerais (mapa)

Investimento: Evento Gratuito!

Data: 14 de Agosto, 2010

Cloudcamp Brasília:

Local: O CloudCamp Brasília será realizado no CONSEGI (Congresso Internacional de Software Livre e Governo Eletrônico).

Data: 19 a 20 de Agosto, 2010.

Para maiores informações sobre os eventos, inscrições e pautas das reuniões, confira o site oficial do Cloudcamp.

Nenhum comentário.

Criatividade não é pra qualquer um…

Realmente não é. Mas esses 5 aí deram um show de criatividade montando uma banda que toca música no Microsoft Word. Vale a pena ver…

, ,

Nenhum comentário.

Cancelamento do PHP 6 Antecipa Aceleração para o PHP 5.4

Autor Convidado: Este post foi escrito por Manuel Lemos, criador do site PHPClasses.org em 1999 e fundador da Icontem, empresa na qual atua desde 2001.

Em Março de 2010, os desenvolvedores do núcleo do PHP decidiram repensar o futuro desta linguagem.
Após cerca de 5 anos desenvolvendo aquilo que seria o PHP 6, o criador do PHP, Rasmus Lerdorf anunciou que a abordagem da principal novidade do PHP 6, suporte nativo a Unicode, teria de ser repensada.
Unicode é um padrão internacional para representar texto de caracteres de todas as linguas vivas usando uma só codificação. Isto significa que o Unicode permite escrever e misturar textos que incluiem caracteres de qualquer língua.
O principal recurso do PHP 6 ia ser o suporte nativo a Unicode. Isto significa que os desenvolvedores de PHP poderiam manipular textos de vários idiomas com as mesmas funções da linguagem que usam hoje, mas sem precisar de usar funções adicionais para combinar textos que usam conjuntos de caracteres de línguas diferentes.
O problema é que a abordagem pensada originalmente em 2005 para implementar nativamente o suporte do Unicode no PHP 6 estava demorando a ser implementada, já que o projeto era muito ambicioso. Além disso, existiam algumas dúvidas, se essa implementação não ia forçar uma perda de desempenho de aplicações de PHP, mesmo para as que não usassem esse recurso de suporte nativo a Unicode.
Por isso, o desenvolvimento do PHP 6, como versão separada do PHP 5, foi cancelado. Agora existe apenas um tronco de desenvolvimento. Esse tronco inclui outras novidades que estavam sendo pensadas para o PHP 6, além do suporte nativo a Unicode.
Existem dúvidas se a próxima versão do PHP se vai chamar PHP 5.4 ou PHP 6. O mais provável é que se chame PHP 5.4 uma vez que ainda não está claro se o suporte nativo a Unicode vai ser de fato incluído. Apesar desta dúvida, vamos considerar por agora que realmente vai ser PHP 5.4.
Integração da extensão de aceleração APC
Como consequência destas mudanças, uma das novidades que vai ser antecipada para o PHP 5.4 é a integração da extensão de aceleração APC.
Esta é uma de várias extensões que existem para PHP que permitem acelerar o carregamento de scripts usando um método de cache dos scripts.
Desde o PHP 4, lançado no ano 2000, a execução de scripts de PHP foi dividida em 2 partes: a compilação e a execução propriamente dita. A compilação cria em memória uma espécie de código compilado, que pode ser executado muito mais rapidamente do que quando o PHP ainda era uma linguagem totalmente interpretada, como ocorria até ao PHP 3.
As extensões de cache guardam em memória o tal código compilado. Isso permite que, depois de rodar uma vez, os scripts de PHP demoram bem menos para começar a executar.
Já existem extensões de cache de PHP de pouco tempo depois do PHP 4 ter sido lançado. Porém, estas nunca foram incluídas na distribuição principal do PHP por pressão da empresa Zend.
A Zend foi fundada por 2 dos principais desenvolvedores do núcleo do PHP. Como a Zend vende a sua própria extensão de cache do PHP, sempre se opuseram a inclusão de outra extensão de cache de código aberto na distribuição do PHP, já que certamente isso canibalizaria o seu produto comercial.
Porém, aceitaram a inclusão de uma extensão de cache no PHP 6. Isso daria tempo para a Zend criar outros produtos comerciais para se sustentarem.
Agora que o PHP 6 foi cancelado, o caminho ficou livre para antecipar a inclusão de uma extensão de cache de código aberto no PHP 5.4.
Existem várias extensões de cache para o PHP, porém é mais provável que incluam a extensão APC, pois é bem recebida pelos desenvolvedores do núcleo do PHP.
Outra extensão para o mesmo fim, o eAccelerator, é inclusive mais robusta e está sendo desenvolvida ativamente. Porém é distribuída com a licença GPL, que é incompatível com a licença do PHP. Por isso dificilmente poderá vir a ser incluída.
Apesar de tanto o APC como o eAccelerator funcionarem em servidores Linux e Windows, a Microsoft desenvolveu também a sua extensão de cache de código aberto para PHP, o WinCache. Assim, espera-se que o PHP funcione de forma mais otimizada em servidores Windows com IIS. Essa extensão pode ser obtida gratuitamente instalando o Microsoft Web Platform Installer.
Qual a importância disso para os desenvolvedores de PHP?
Em relação ao suporte nativo para a Unicode, pouco ou nada afeta os atuais projetos de PHP. Era um recurso que poderia facilitar um pouco o desenvolvimento de sites internacionais, mas realmente não é necessário.
Existem inúmeros sites internacionais escritos em PHP que usam Unicode, como Wikipedia, Facebook, Yahoo, só para citar alguns dos mais conhecidos. Mas realmente eles não precisam do suporte nativo a Unicode. Esses certamente usam outras extensões de PHP existentes como mbstring ou intl.
Quem desenvolve sites apenas em um idioma, nem precisa sequer pensar no assunto. Mesmo sites que misturam Inglês, Português, ou vários outros idiomas Europeus, podem continuar a usar a codificação ISO-Latin-1 (ISO-8859-1) como sempre, sem qualquer preocupação.
Quem realmente tinha mais interesse nesse suporte nativo a Unicode seriam empresa de sites que misturam texto que podem incluir línguas de países asiáticos ou do Leste Europeu.
Em relação à extensão de cache, sites que usam servidores dedicados ou servidores virtuais privados (VPS – às vezes associados à computação em nuvem), com certeza já estão usando extensões de cache, já que elas podem ser instaladas sem a necessidade de solicitação da empresa de hospedagem.
Se você tem sites de PHP em servidores dedicados ou servidores virtuais privados, mas não está usando uma extensão de cache, não pense duas vezes. Instale qualquer uma das outras extensões de cache, e comece já a se beneficiar da possibilidade de rodar PHP mais rápido, consumindo menos recursos do seu servidor.
Quem realmente pode se beneficiar mais da inclusão da extensão de cache na distribuição principal do PHP, são os sites que estão hospedados em servidores partilhados, que normalmente são os que oferecem hospedagem por preços mais em conta.
Existem algumas empresas de hospedagem que já instalaram extensões de cache nos servidores partilhados onde estão os sites dos seus clientes. Porém, uma grande parte dessas empresas não faz isso. Talvez seja por desconhecimento dessas extensões ou por incerteza em relação à sua estabilidade.
Com a inclusão do APC no PHP 5.4, muitas empresas de hospegam partilhada vão passar a ativar essa extensão de cache nos seus servidores, uma vez declarado o suporte oficial à inclusão do APC na distribuição de PHP, essas empresas vão se sentir mais confiantes para instalar o PHP com essa extensão.
No entanto, a extensão APC virá incluida na distribuição principal do PHP, mas vem desativada na configuração do PHP. Os administradores de sistemas das empresas de hospedagem precisarão ativar a extensão manualmente nos servidores partilhados que rodam os sites dos seus clientes.
Onde obter mais informações?
Estes e outros assuntos foram debatidos no podcast Lately in PHP do site PHPClasses.org. No episódio mais recente do podcast foram comentados estes assuntos, assim como outros também de grande interesse como o suporte para desenvolvimento de aplicativos nativos para celulares Android escritos em PHP. Aproveite agora para escutar o podcast ou ler a transcrição das discussões que aparecem no fim dos artigos.

Em Março de 2010, os desenvolvedores do núcleo do PHP decidiram repensar o futuro desta linguagem.

Após cerca de 5 anos desenvolvendo aquilo que seria o PHP 6, o criador do PHP, Rasmus Lerdorf anunciou que a abordagem da principal novidade do PHP 6, suporte nativo a Unicode, teria de ser repensada.

Unicode é um padrão internacional para representar texto de caracteres de todas as linguas vivas usando uma só codificação. Isto significa que o Unicode permite escrever e misturar textos que incluiem caracteres de qualquer língua.

O principal recurso do PHP 6 ia ser o suporte nativo a Unicode. Isto significa que os desenvolvedores de PHP poderiam manipular textos de vários idiomas com as mesmas funções da linguagem que usam hoje, mas sem precisar de usar funções adicionais para combinar textos que usam conjuntos de caracteres de línguas diferentes.

O problema é que a abordagem pensada originalmente em 2005 para implementar nativamente o suporte do Unicode no PHP 6 estava demorando a ser implementada, já que o projeto era muito ambicioso. Além disso, existiam algumas dúvidas, se essa implementação não ia forçar uma perda de desempenho de aplicações de PHP, mesmo para as que não usassem esse recurso de suporte nativo a Unicode.

Por isso, o desenvolvimento do PHP 6, como versão separada do PHP 5, foi cancelado. Agora existe apenas um tronco de desenvolvimento. Esse tronco inclui outras novidades que estavam sendo pensadas para o PHP 6, além do suporte nativo a Unicode.

Existem dúvidas se a próxima versão do PHP se vai chamar PHP 5.4 ou PHP 6. O mais provável é que se chame PHP 5.4 uma vez que ainda não está claro se o suporte nativo a Unicode vai ser de fato incluído. Apesar desta dúvida, vamos considerar por agora que realmente vai ser PHP 5.4.

Integração da extensão de aceleração APC

Como consequência destas mudanças, uma das novidades que vai ser antecipada para o PHP 5.4 é a integração da extensão de aceleração APC.

Esta é uma de várias extensões que existem para PHP que permitem acelerar o carregamento de scripts usando um método de cache dos scripts.

Desde o PHP 4, lançado no ano 2000, a execução de scripts de PHP foi dividida em 2 partes: a compilação e a execução propriamente dita. A compilação cria em memória uma espécie de código compilado, que pode ser executado muito mais rapidamente do que quando o PHP ainda era uma linguagem totalmente interpretada, como ocorria até ao PHP 3.

As extensões de cache guardam em memória o tal código compilado. Isso permite que, depois de rodar uma vez, os scripts de PHP demoram bem menos para começar a executar.

Já existem extensões de cache de PHP de pouco tempo depois do PHP 4 ter sido lançado. Porém, estas nunca foram incluídas na distribuição principal do PHP por pressão da empresa Zend.

A Zend foi fundada por 2 dos principais desenvolvedores do núcleo do PHP. Como a Zend vende a sua própria extensão de cache do PHP, sempre se opuseram a inclusão de outra extensão de cache de código aberto na distribuição do PHP, já que certamente isso canibalizaria o seu produto comercial.

Porém, aceitaram a inclusão de uma extensão de cache no PHP 6. Isso daria tempo para a Zend criar outros produtos comerciais para se sustentarem.

Agora que o PHP 6 foi cancelado, o caminho ficou livre para antecipar a inclusão de uma extensão de cache de código aberto no PHP 5.4.

Existem várias extensões de cache para o PHP, porém é mais provável que incluam a extensão APC, pois é bem recebida pelos desenvolvedores do núcleo do PHP.

Outra extensão para o mesmo fim, o eAccelerator, é inclusive mais robusta e está sendo desenvolvida ativamente. Porém é distribuída com a licença GPL, que é incompatível com a licença do PHP. Por isso dificilmente poderá vir a ser incluída.

Apesar de tanto o APC como o eAccelerator funcionarem em servidores Linux e Windows, a Microsoft desenvolveu também a sua extensão de cache de código aberto para PHP, o WinCache. Assim, espera-se que o PHP funcione de forma mais otimizada em servidores Windows com IIS. Essa extensão pode ser obtida gratuitamente instalando o Microsoft Web Platform Installer.

Qual a importância disso para os desenvolvedores de PHP?

Em relação ao suporte nativo para a Unicode, pouco ou nada afeta os atuais projetos de PHP. Era um recurso que poderia facilitar um pouco o desenvolvimento de sites internacionais, mas realmente não é necessário.

Existem inúmeros sites internacionais escritos em PHP que usam Unicode, como Wikipedia, Facebook, Yahoo, só para citar alguns dos mais conhecidos. Mas realmente eles não precisam do suporte nativo a Unicode. Esses certamente usam outras extensões de PHP existentes como mbstring ou intl.

Quem desenvolve sites apenas em um idioma, nem precisa sequer pensar no assunto. Mesmo sites que misturam Inglês, Português, ou vários outros idiomas Europeus, podem continuar a usar a codificação ISO-Latin-1 (ISO-8859-1) como sempre, sem qualquer preocupação.

Quem realmente tinha mais interesse nesse suporte nativo a Unicode seriam empresa de sites que misturam texto que podem incluir línguas de países asiáticos ou do Leste Europeu.

Em relação à extensão de cache, sites que usam servidores dedicados ou servidores virtuais privados (VPS – às vezes associados à computação em nuvem), com certeza já estão usando extensões de cache, já que elas podem ser instaladas sem a necessidade de solicitação da empresa de hospedagem.

Se você tem sites de PHP em servidores dedicados ou servidores virtuais privados, mas não está usando uma extensão de cache, não pense duas vezes. Instale qualquer uma das outras extensões de cache, e comece já a se beneficiar da possibilidade de rodar PHP mais rápido, consumindo menos recursos do seu servidor.

Quem realmente pode se beneficiar mais da inclusão da extensão de cache na distribuição principal do PHP, são os sites que estão hospedados em servidores partilhados, que normalmente são os que oferecem hospedagem por preços mais em conta.

Existem algumas empresas de hospedagem que já instalaram extensões de cache nos servidores partilhados onde estão os sites dos seus clientes. Porém, uma grande parte dessas empresas não faz isso. Talvez seja por desconhecimento dessas extensões ou por incerteza em relação à sua estabilidade.

Com a inclusão do APC no PHP 5.4, muitas empresas de hospegam partilhada vão passar a ativar essa extensão de cache nos seus servidores, uma vez declarado o suporte oficial à inclusão do APC na distribuição de PHP, essas empresas vão se sentir mais confiantes para instalar o PHP com essa extensão.

No entanto, a extensão APC virá incluida na distribuição principal do PHP, mas vem desativada na configuração do PHP. Os administradores de sistemas das empresas de hospedagem precisarão ativar a extensão manualmente nos servidores partilhados que rodam os sites dos seus clientes.

Onde obter mais informações?

Estes e outros assuntos foram debatidos no podcast Lately in PHP do site PHPClasses.org. No episódio mais recente do podcast foram comentados estes assuntos, assim como outros também de grande interesse como o suporte para desenvolvimento de aplicativos nativos para celulares Android escritos em PHP. Aproveite agora para escutar o podcast ou ler a transcrição das discussões que aparecem no fim dos artigos.

Fonte: ReadWriteWeb

Nenhum comentário.

Sete mitos sobre a carreira em TI que precisam ser quebrados

A evolução dos profissionais do setor levou à criação de um comportamento padrão, mas que nem sempre deve ser seguido por quem busca o sucesso.
Ao longo do tempo, os profissionais que atuam na área de tecnologia da informação passaram a conviver com algumas regras extraoficiais e que, com o tempo, viraram um senso comum no setor. Assim, o que se vê hoje é que quem opta pela carreira em TI está sujeito a algumas regras e comportamentos que nem sempre são encontrados em outros departamentos.
A adesão cega a esse comportamento padrão de TI pode ser bastante prejudicial para os profissionais. A seguir, acompanhe sete mitos a respeito da carreira em tecnologia, que precisam ser quebrados pelo bem do setor:
1 – Trabalhar longas horas é sinônimo de sucesso. Trabalho duro representa um pré-requisito para a maioria das posições de TI, mas isso não é medido em horas no escritório. Uma agenda muito ocupada e extensa pode acabar afetando a produtividade, por conta da exaustão do profissional. Além disso, trabalhar até muito tarde todos os dias pode passar a impressão de que o profissional falha ao gerenciar seu próprio tempo.
Se as horas diárias de trabalho não são suficientes para cumprir com todas as atividades, o profissional precisa conversar com seu supervisor para estudar prioridades de projetos, delegar tarefas ou solicitar mais recursos para a companhia.
2 – Escolha uma especialidade e fique muito bom nela. O departamento de TI sempre precisará de especialistas em certas tecnologias, mas ser bem-sucedido no cenário atual requer a habilidade de expandir o escopo de atuação de acordo com as necessidades da empresa.
Com isso, o profissional não pode desperdiçar oportunidades de treinamento ou projetos que ajudem a ampliar suas competências. Ao demonstrar o comprometimento com a busca de novas habilidades, o profissional ganha mais chances de crescer na companhia.
3 – Agarre qualquer nova responsabilidade. A atitude do profissional que diz saber fazer de tudo não vai ajudar em nada se ele se responsabilizar por algum trabalho que não pode fazer. Quando alguém se voluntaria para projetos que se estão além das suas habilidades podem criar dores de cabeça para todo o departamento.
Em cada caso, o profissional deve ser perguntar se tem o que é necessário para executar o projeto. Em algumas situações, faz mais sentido ter um papel coadjuvante e aproveitar para ganhar aprendizado.
4 – Sempre busque promoções. É fácil se deslumbrar com um cargo mais pomposo ou um salário mais alto, mas antes de aceitar uma promoção é bom considerar todos os impactos da mudança, incluindo o equilíbrio entre vida pessoal e profissional.
É interessante ponderar também se haverá tempo de devotar tempo às tarefas profissionais que dão mais prazer. Aceitar um papel com mais responsabilidade só pelo salário ou pelo prestígio pode minar a satisfação e acelerar a morte da carreira.
5 – Quanto mais certificações, melhor. O mercado é altamente competitivo, razão pela qual alguns profissionais são tentados a buscar cada nova certificação que aparece. Mas essas credenciais só têm valor quando associadas a alguma experiência.
A escolha pelos treinamentos e certificações deve estar de acordo com as atividades de trabalho atuais e aquelas vislumbradas no futuro pelo profissional.
6 – Acima de tudo, impressione o chefe. A reputação do profissional de TI é construída com diversas esferas da organização. Assim, quem atua no setor não deve estar preocupado apenas em agradar o superior, mas deve também manter um bom relacionamento com os profissionais de outras áreas de negócio.
O profissional que ajuda seus pares sempre que possível, sem se desgastar demais, está em vantagem, pois ele tem aliados para os próprios projetos em momento difíceis, de prazos apertados. E o chefe gosta mais de prazos cumpridos do que de reverências.
7 – Seja discreto. O profissional de TI padrão tem medo de ser percebido na organização como fofoqueiro ou de ser desagradável ao tentar a socialização. No entanto, gastar um pouco de tempo todos os dias para manter conexões pessoais com pessoas de toda a companhia é essencial para a saúde da carreira. Relações informais tornam o networking (rede de relacionamento) mais forte e pode abrir novas oportunidades de emprego.
Uma definição resume as dicas: a melhor forma de mostrar à empresa que tem valor é proporcionar resultado. O profissional deve focar nos maiores benefícios que pode trazer ao empregador, sem se preocupar se as pessoas estão enxergando o quão duro você trabalho e o que você alcança. A forma mais interessante de manter a evolução na carreira é deixar um rastro de sucesso consistente.
*Dave Willmer é diretor-executivo da divisão de tecnologia da operação norte-americana da Robert Half

A evolução dos profissionais do setor levou à criação de um comportamento padrão, mas que nem sempre deve ser seguido por quem busca o sucesso.

Ao longo do tempo, os profissionais que atuam na área de tecnologia da informação passaram a conviver com algumas regras extraoficiais e que, com o tempo, viraram um senso comum no setor. Assim, o que se vê hoje é que quem opta pela carreira em TI está sujeito a algumas regras e comportamentos que nem sempre são encontrados em outros departamentos.

A adesão cega a esse comportamento padrão de TI pode ser bastante prejudicial para os profissionais. A seguir, acompanhe sete mitos a respeito da carreira em tecnologia, que precisam ser quebrados pelo bem do setor:

1 – Trabalhar longas horas é sinônimo de sucesso. Trabalho duro representa um pré-requisito para a maioria das posições de TI, mas isso não é medido em horas no escritório. Uma agenda muito ocupada e extensa pode acabar afetando a produtividade, por conta da exaustão do profissional. Além disso, trabalhar até muito tarde todos os dias pode passar a impressão de que o profissional falha ao gerenciar seu próprio tempo.

Se as horas diárias de trabalho não são suficientes para cumprir com todas as atividades, o profissional precisa conversar com seu supervisor para estudar prioridades de projetos, delegar tarefas ou solicitar mais recursos para a companhia.

2 – Escolha uma especialidade e fique muito bom nela. O departamento de TI sempre precisará de especialistas em certas tecnologias, mas ser bem-sucedido no cenário atual requer a habilidade de expandir o escopo de atuação de acordo com as necessidades da empresa.

Com isso, o profissional não pode desperdiçar oportunidades de treinamento ou projetos que ajudem a ampliar suas competências. Ao demonstrar o comprometimento com a busca de novas habilidades, o profissional ganha mais chances de crescer na companhia.

3 – Agarre qualquer nova responsabilidade. A atitude do profissional que diz saber fazer de tudo não vai ajudar em nada se ele se responsabilizar por algum trabalho que não pode fazer. Quando alguém se voluntaria para projetos que se estão além das suas habilidades podem criar dores de cabeça para todo o departamento.

Em cada caso, o profissional deve ser perguntar se tem o que é necessário para executar o projeto. Em algumas situações, faz mais sentido ter um papel coadjuvante e aproveitar para ganhar aprendizado.

4 – Sempre busque promoções. É fácil se deslumbrar com um cargo mais pomposo ou um salário mais alto, mas antes de aceitar uma promoção é bom considerar todos os impactos da mudança, incluindo o equilíbrio entre vida pessoal e profissional.

É interessante ponderar também se haverá tempo de devotar tempo às tarefas profissionais que dão mais prazer. Aceitar um papel com mais responsabilidade só pelo salário ou pelo prestígio pode minar a satisfação e acelerar a morte da carreira.

5 – Quanto mais certificações, melhor. O mercado é altamente competitivo, razão pela qual alguns profissionais são tentados a buscar cada nova certificação que aparece. Mas essas credenciais só têm valor quando associadas a alguma experiência.

A escolha pelos treinamentos e certificações deve estar de acordo com as atividades de trabalho atuais e aquelas vislumbradas no futuro pelo profissional.

6 – Acima de tudo, impressione o chefe. A reputação do profissional de TI é construída com diversas esferas da organização. Assim, quem atua no setor não deve estar preocupado apenas em agradar o superior, mas deve também manter um bom relacionamento com os profissionais de outras áreas de negócio.

O profissional que ajuda seus pares sempre que possível, sem se desgastar demais, está em vantagem, pois ele tem aliados para os próprios projetos em momento difíceis, de prazos apertados. E o chefe gosta mais de prazos cumpridos do que de reverências.

7 – Seja discreto. O profissional de TI padrão tem medo de ser percebido na organização como fofoqueiro ou de ser desagradável ao tentar a socialização. No entanto, gastar um pouco de tempo todos os dias para manter conexões pessoais com pessoas de toda a companhia é essencial para a saúde da carreira. Relações informais tornam o networking (rede de relacionamento) mais forte e pode abrir novas oportunidades de emprego.

Uma definição resume as dicas: a melhor forma de mostrar à empresa que tem valor é proporcionar resultado. O profissional deve focar nos maiores benefícios que pode trazer ao empregador, sem se preocupar se as pessoas estão enxergando o quão duro você trabalho e o que você alcança. A forma mais interessante de manter a evolução na carreira é deixar um rastro de sucesso consistente.

* Dave Willmer é diretor-executivo da divisão de tecnologia da operação norte-americana da Robert Half

Fonte: Computerworld

Nenhum comentário.