Em todos os anúncios para programador PHP encontro:
Precisa-se de programador que saiba PHP e:
- Banco de dados MySQL, Oracle, PostgreSQL, etc…
- Saiba FLEX, JAVA, C# (diferencial Kringol)
- Saiba HTML, JavaScript, AJAX, …
- Aptidão para webdesign, Corel, Pagemaker, Photoshop …
Afinal, é para PHP ou para um super faz tudo?
Tantas exigências, que no mínimo, deve-se tratar de uma empresa terceirizada da NASA.
Mas será que a gerência desta empresa esta preparada para um profissional com estas qualificações?
Gerentes que não tem o menor conhecimento técnico geralmente ficam encarregados de entrevistar os programadores.
O procedimento é o mesmo, verificam se as siglas do currículo estão de acordo com a descrição do cargo, e pronto, o programador já esta contratado. Claro que o a pretensão salarial baixa sempre é bem vinda para critérios de desempate.
Quando a vitima, digo, o programador inicia suas atividades na empresa, ele ao menos pensa que vai encontrar um ambiente de desenvolvimento, algum tipo de documentação inicial, para ajuda-lo a entender as regras de negócios da empresa.
Mas a realidade não é assim. É comum encontrar sistemas “Macarrõnicos” com metodologia POG (Programação Orientada a Gambiarra) .
< Dramatização >
As melhores empresas para se trabalhar utilizam metodologias POG, vejam os benefícios:
Todos códigos são desenvolvidos no ambiente de produção, e ainda com o cliente testando ao mesmo tempo. Assim evita-se perda de tempo com copias redundantes do código e equipamentos de backup.
Todos os programadores acessando os mesmos arquivos ao mesmo tempo. Nada melhor do que bloquear o acesso do arquivo para ter certeza que ninguém vai alterar o código.
Padrões de backup sempre são avançados:
pagina_principal.php
pagina_principal.bkp.php
pagina_principal2.php
pagina_principal___ontem.php
pagina_principal_Joazinho.php
Os comentários são a base do sistema, sempre poucos e explicativos
// XUNXO do chefe para poder funcionar esta parte (Não mexa)
if(1==1)
{
$variavel = 1;
}else{
$variavel = 0;
}
Teste?
A sim, sempre tem o cliente para testar dois dias antes de entregar o sistema. Fazemos assim porque temos certeza que o sistema sempre estará funcionando.
Escopo, script de teste?
Perda de tempo, o cliente já sabe o que ele quer. Ele lembra perfeitamente do que ele pediu ao longo dos 6 meses de desenvolvimento.
Qualquer problema esta na documentação, aqueles 500 e-mails da caixa postal de cada programador. Basta juntar todos usando EQL (E-mail Query Language) e logo esta tudo indexado.
Segurança?
Sim, temos as senhas seguras, a quais sempre passamos por POST nos input hidden dos formulários. Mas com firewall instalando antes do servidor estamos super seguros. Nunca atualizamos o servidor, a mais de 7 anos, pois nunca deu problema. Outro motivo de nunca atualizar, é para não ter perigo de quebrar a compatibilidade com PHP3.
< /Dramatização >
Infelizmente esta é uma realidade que vem me assustando ao longo dos anos, ao trabalhar com programação.
Quando acho que vou encontrar uma empresa que ao menos use um ambiente de desenvolvimento e versionamento, fico decepcionado.
Os códigos não me assustam mais, já superei alguns traumas:
- if(1==1)
- if(1==2)
- sleep(60) (acredite, você não vai querer saber o motivo)
- do{ POG de 3000 linhas com identação de mais de 40 if elses + paçoca de HTML + JS + CSS e milhares de consultas a banco} while(150000);
- dar um show tables; e vir uma listagem de 56 mil tabelas (é criado uma tabela para cada acesso ao sistema ao invés de um registro em uma tabela)
- chefe ter ‘xilique’ que o HTML não abre no Front Page , e quase te mandar embora quando você fala a palavra CSS e tableless
O que mais me assusta é a incapacidade da gerencia de permitir que você melhore o ambiente de trabalho, implementando metodologias de desenvolvimento.
< Dramatização >
Quer ser mandado embora de uma empresa que utilize de metodologias POG?
Simples, siga meus conselhos:
- Comece a falar que GIT é legal e melhor que SVN, se possível mande por e-mail par ao chefe todas as reportagens que explicam tecnicamente porque GIT é bom.
- Instale um servidor de desenvolvimento, caso lhe digam que não tem máquina, ofereça o seu desktop, enquanto isso você pode trabalhar em algum note da empresa, até comprarem outro desktop para você.
- Peça ajuda por e-mail, quando tiver dúvidas sobre as regras de negócios, dizendo que você esta com dificuldades de entender o que a sequencia de 40 if else tem que fazer.
- Utilize metodologias de Refatoração, se possível tente implementar Testes Unitários e OO.
- Instale o Redmine integrado com o GIT, e comece a organizar suas tarefas e a documentar as coisas.
- Utilize XDebug para entender melhor sobre o que esta acontecendo com o macarrão, digo código, e manda um e-mail para o chefe mostrando sua benfeitoria.
Caso você não seja demitido, e sofra apenas uma intervenção leve, infelizmente sua empresa tem chances de implementar alguma metodologia Ágil. Sinto muito.
< /Dramatização >
Os gerentes quase sempre cometem um erro básico, contratam o programador sem perceber se ele vai se adequar a sua metodologia de trabalho, ou seja , a falta dela.
Outro erro comum, é não explicar como será o ambiente de trabalho. E o pior, não consultar a equipe para ver se o novo candidato tem o perfil que se adeque a equipe.
Não tem regras para estes fatores, tem apenas bom senso, e é isto que esta faltando.
Eles não entendem que não tem como regredir.
Depois que você tem contato com frameworks, MVC, OO, GIT, Redmine, XDebug, Padrões de Projetos, Teste Unitário e metodologias Ágeis, não tem como voltar atrás.
Fica quase impossível trabalhar em um ambiente que não aplique ao menos parte destes conhecimentos. Ou que sejam resistentes a mudanças e quebra de paradigmas.
Perdi a minha oportunidade de ir para o FISL 11. Fui demitido por ter instalado um servidor de desenvolvimento com GIT + Redmine e utilizar XDebug para entender um código abençoado.
Segundo a gerência, eu estava perdendo tempo instalando “coisinhas” ao invés de estar lendo o código abençoado e adivinhando as regras de negócio da empresa (isso tendo apenas 2 semanas de empresa).
Nenhuma das solicitações de ajuda por e-mail foram respondidas. Segundo a gerência, sendo eu um programador PHP, apenas vendo o código abençoado, já deveria entender todas as regras de negócios da empresa. Assim como qualquer bom POGramador faria.
Desculpem o desabafo, mas perder o FISL 11 por tentar melhorar as condições de trabalho da empresa, me deixou muito chateado.