Quem não tem cão caça com gato? Depois da última reunião do .Net Architects deste sábado, saimos para o tradicional almoço. Na mesa, discutimos os problemas que cada um enfrentava no dia a dia. Foi consenso na mesa de que estamos com uma deficiência séria na classificação dos profissionais.

O caso mais emblemático é o ““senior””. Coloquei com aspas quádruplas, porque o termo merece. Por todo o mercado estamos encontrando empresas que subvertem a profissão, contratando pessoas como seniors, que na verdade não são. O profissional muitas vezes também não se entende como senior, mas como negar o salário mais polpudo? Isso tem gerado ““seniors em ASP.Net””, ou ““seniors em WPF””, ou outras aberrações. E o tal do senior não consegue nem gerenciar uma conexão com o banco de dados, ele é ““senior em ASP.Net””, e só em ASP.Net, mais nada. Parece que em todo o resto ele é junior, e só é senior em ASP.Net. E muitas vezes isso significa que ele sabe arrastar controles para a tela, e entende o que é Request e Response. O senior muitas vezes nunca viu uma página assincrona, e não conhece ASP.Net MVC. Ou seja, ele é incompleto na plenitude da sua senioridade, já que não conhece quase nada além da tecnologia principal com que trabalha, e é limitado mesmo nesta. Em qualquer lugar do mundo ele seria um pleno, ou até um junior, no Brasil ele é senior.

Quando falamos de um modelo de terceirização normalmente a culpa deste problema recai sobre as consultorias, já que elas fornecem a mão de obra, e supostamente devem avaliar o profissional. Isso é uma falácia, já que a empresa contratante também deve avaliar quem está lhe prestando serviço. Na prática, contratante e contratada sabem que o profissional não é senior, mas o mercado está com a demanda muito alta e há falta de profissionais, e os que há querem ganhar muito alto, e pra justificar o salário, só lhe classificando como senior. Pra piorar todos os projetos eram para ontem e o tempo pra contratação está cada vez menor. Não tenham dúvida, as empresas clientes sabem que estão comprando gato por lebre. E a grande maioria das consultorias faz isso, mesmo algumas daquelas grandes muito conhecidas.

Quem não tem cão caça com gato?

Como um profissional que passou por apenas alguns poucos projetos pode ser senior? Senioridade implica experiência, é daí que vem a palavra. Um profissional não é senior se ele trabalhou em 3 projetos ASP.Net quase iguais. A senioridade significa que ele já resolveu problemas diferentes, em domínios diferentes, com tecnologias diversas. Ele já usou ADO puro e Entity Framework, e ele sabe a diferença. Ele conhece padrões de projeto, e ainda que não conheça todos (ninguém conhece) ele conhece alguns que sabe que fazem diferença em alguns cenários. Ele já atendeu projetos para 5 usuários, mas já teve que fazer alguns testes de performance pra fazer uma aplicação com alta disponibilidade funcionar, e já teve que refazer alguns pedaços da aplicação porque simplesmente não funcionava.

Em resumo: senior de verdade já sofreu, já tem cicatriz. Senior de verdade foi pra guerra soldado e voltou sargento, porque tomou bala pelos colegas. E a bala deixou cicatriz. Ele virou uma guerra inteira, ele não é senior porque passou por 3 encontros com o inimigo, esse é o junior, esse é o cara que não tem ainda todas as manhas da guerra.

. . .

Vou deixar aqui outra provocação pra um post futuro: Outro caso citado no nosso almoço foi de uma empresa com vários “““arquitetos””” (aspas sextuplas agora) com 20 anos de idade. Eu não posso falar de idade, sempre fui precoce profissionalmente, e aceito pontos fora da curva. Mas entendo que, por serem fora da curva eles são raros. Será que uma empresa conseguiu contrariar toda a estatística e contratou os 3 únicos arquitetos de software de 20 anos de idade? O que será que estas pessoas estão decidindo? Como suas decisões recaem sobre o resto do time? Qual o impacto nos softwares sendo construídos, no TCO? Será feito concientemente pela empresa que contratou? Fica pra outro post.