Por que as empresas perdem bons desenvolvedores?

A “implantação” do sistema neoliberal no Brasil (e em outros lugares do mundo) contribuiu para o aumento da competitividade entre as empresas e também entre os profissionais. A busca por uma melhor qualificação profissional se tornou constante, devido ao fato de que as empresas passaram a exigir profissionais com alto nível de conhecimento técnico e a concorrência cada vez mais acirrada.

Não é preciso ter muito conhecimento de economia ou política para se perceber que o capitalismo é um sistema que não tem como objetivo favorecer o trabalhador. Com todos os problemas do mundo, muitas pessoas se sujeitam a péssimas condições de trabalho para garantir o sustento de suas famílias.

O desenvolvimento de software é uma tarefa criativa que exige profissionais com alto grau de conhecimento técnico. Não é uma tarefa braçal, isso quer dizer que o desenvolvedor tem seu capital intelectual como instrumento de trabalho.
Devido a tamanha complexidade das tarefas, é muito difícil encontrar bons profissionais (desenvolvedores, programadores, analistas, engenheiros etc) comparado a outras áreas profissionais em que o mercado já possui certa saturação de mão de obra.
Isso faz com que o profissional de tecnologia da informação seja um pouco menos desvalorizado.

Algumas empresas (principalmente as pequenas) sofrem grande impacto quando um bom desenvolvedor recebe uma boa proposta de trabalho e troca de emprego (já presenciei essa situação algumas vezes). Para minimizar esse problema as empresas estão investindo (não que elas sejam legais, o problema é o custo gerado).

Fiz uma pequena lista com os principais motivos (ao meu ver) que levam um desenvolvedor a mudar de trabalho:

- Salário
O motivo mais óbvio e comum. Quando uma outra empresa oferece salário mais alto, é improvável que o profissional recuse a proposta, caso a empresa atual não ofereça uma boa contra proposta.
É incrível como as empresas “tem mania” de achar que conseguem realizar um trabalho de qualidade contratando apenas estagiários (para pagar menos).

- Desafios
Um programador vive de desafios (não confunda com “buxas”). Passar o mês inteiro fazendo formulários não é tarefa que motive a maioria dos desenvolvedores web. Se o profissional não sentir que seu trabalho é “diferente”, é útil, é legal, ele não vai se sentir motivado a continuar.
Existe grande diferença em trabalhar “estilo produção” fazendo meia dúzia de pequenos sites por mês e cuidar de uma aplicação de alta disponibilidade com milhares de acessos por hora.
Cabe a empresa proporcionar novos desafios a sua equipe (pois em outras empresas existem vários).

- Tecnologia
Um fator interessante, que muitas vezes as empresas não enxergam, é a tecnologia utilizada para desenvolvimento. Se o programador apoia o software livre, ele não vai gostar (vai odiar) programar em .NET por exemplo, assim como um desenvolvedor Rails não gosta muito de Java por exemplo. (sei que dizem que devemos ser poliglotas, mas isso é só um detalhe =p)

- Equipe e chefe
Ponto crucial que pode levar o profissional até a se demitir da empresa. Um bom desenvolvedor não gosta de trabalhar com desenvolvedores medíocres, ele quer trabalhar ao lado de outros bons profissionais.
Também não suporta a idéia do chefe mala que faz pressão, não ajuda e só “passa buxa”.
Esse problema se agrava, quando o desenvolvedor é contratado como estagiário a certo tempo e já adquiriu certa experiência que o faz não depender do emprego para aprender mais.

- Ambiente de trabalho
Outro fator fundamental é o ambiente, o local de trabalho precisa ser bom, ter ar condicionado, ter comida a disposição, cadeira confortável, o mais importante um PC (ou MAC) de qualidade.
O calor irrita e tira a concentração, isso faz com que a produtividade diminua.
Como diria o velho ditado “saco vazio não para em pé”, a empresa tem que fornecer comida como bolachas, frutas, suco, etc. Comida fornece energia para o programador ser mais produtivo.
Talvez o que mais faça um programador ficar irritado, é quando o computador é lento, quando demora “meia hora” para compilar o software ou carregar a IDE.

- Flexibilidade de horários
Algumas empresas insistem em achar que desenvolver software é como fabricar uma peça ou montar um carro. Desenvolver software NÃO É PRODUÇÃO!
Não adianta fazer com que seu colaborador “bata cartão” as 8h da manha em ponto e não saia antes das 18h. Estamos lidando com humanos e não com máquinas, o dia que a pessoa está com problemas ou não está motivada, a baixa na produtividade é inevitável.
O colaborador não deve se sentir em uma prisão, em que não pode ir 5min no “bar da esquina” comprar um refrigerente.