O Uber, o taxi e o desenvolvedor FullStack

O Uber, o taxi e o desenvolvedor FullStack

Gostaria de falar um assunto polêmico aqui, que é a história do desenvolvedor chamado FullStack. Mas não gostaria de despertar ódio da comunidade, portanto vou tentar ser ameno. Para isto, vou contar uma história. Recentemente fomos eu e minha esposa a um aniversário de amigos, e como não sabíamos se haveria espaço para estacionar o carro (e iríamos beber um pouco também), optamos por chamar um Uber. Bem, chamamos via aplicativo e chegou o carro para nos buscar. O carro não era exatamente aquele que gostaríamos de ter recebido, mas o senhor que nos pegou era muito gentil e educado. Criava empatia facilmente. Quando falamos para onde ele nos levaria, ele começou a seguir o caminho apontado pelo Waze. Em uma parte do caminho, falamos a ele: "senhor, se for pela direita, cairá mais rápido na 23 de maio". Ele ficou inseguro e preferiu seguir o caminho do Waze.

Chegamos lá, e tudo foi bem, mas depois da festa, no dia seguinte, fiquei a pensar sobre o evento anterior, e principalmente no passado, na época em que pegávamos taxi. Os motoristas de Taxi de antigamente precisavam de uma licença especial, que custava até bem caro (algo como R$150.000 hoje). Ou seja, a pessoa se tornava taxista e isto deveria ser uma carreira. Não fazia o menor sentido investir este dinheiro por algo temporário. O carro era bem cuidado e sofria manutenção, na maioria das vezes era cheiroso, tinha jornais para ler, serviam bala e as vezes água, masssss principalmente: o motorista sabia o que estava fazendo ! Ele NÃO precisava do Waze para chegar aos locais. Ele conhecia a cidade, sabia desviar do trânsito, chegar mais facilmente aos locais. Isto se chama experiência. E não se baixa em um aplicativo no celular, nem se compra um software para instalar. Senti falta disto quando aquele senhor simpático do Uber estava alí, sabe?

Para se tornar um motorista de Uber, os requisitos são mais simples, e muitas vezes são papeis temporários e sociais. Uma forma de ganhar o sustento da família, o que é muito louvável, mas raramente o Uberista tem uma "especialização" ou se dedica a conhecer a cidade, ou mesmo manter a ferramenta de trabalho da forma como deveria. Os Taxis eram pintados de outra cor, e raramente era usado além do trabalho, já o Uber é um veículo comum que pode ser "chaveado" a qualquer momento, ou mesmo o Uberista pode ter dois empregos ou atuar no anonimato, como um quebra galho para suas finanças.

E porque você está falando tudo isto, Glauco ? Bem, nossa conversa é sobre o ato de desenvolver, e a especialização de cada programador. E falando um pouco mais sobre isto:

Existem programadores que gostam e se sentem confortáveis em entrar nas profundezas dos sistemas legados, gostam de mexer naquela poeira deixada pela TI ao longo dos anos, e conhecem protocolos em detalhes. Estes são os programadores BackEnd. Eles conhecem de HTTP, SMTP, FTP, REST, SOAP, e mais uma infinidade de protocolos, ou ao menos sabe como funcionam sem detalhes, conseguem interagir com diversos BackEnds. É um perfil específico, e como tudo em TI, é necessário ter afinidade e experiência com estes temas. São conhecimentos que se adquire ao longo dos anos, com a experiência.

Por outro lado, existem aqueles programadores que se preocupam com a interação com o usuário, conseguem combinar cores de forma a tornar o acesso mais agradável, usam as melhores práticas para tornar a interação assertiva. Estão atualizados com modernos padrões de Single Page, conhecem JavaScript muito bem, sabem lidar com imagens e vídeos dos vários tipos e conhecem cada uma dos tipos (GIF, JPEG, PNG,etc). Tornam a interface consistente e tornam o site agradável. Este é o programador Front End.

Mas acontece que existe o programador FullStack, que se propõe a fazer os dois papeis dentro da construção de um sistema. Aposto que algumas pessoas já se armaram e estão dizendo : "eu sou FullStack e provo isto!!!". Pode ser sim gente! Como disse, não quero arrumar encrenca com ninguém!

Mas me deixe fazer umas perguntas (maliciosas) aqui :

  • Você consegue criar uma página com um ícone na parte superior da tela, e conforme o usuário vai passeando com o mouse na tela, você vai alterando o ícone dinamicamente, e se o usuário ficar por mais de 5 segundos sobre uma área da tela, você deve chamar um serviço REST e apresentar um frame deslizante na tela com o conteúdo do REST retornado. Se o usuário mover o mouse da área, o frame deslizará e desaparecerá. E deve fazer isto sem fazer copy and paste de grandes partes de códigos prontos, ou seja, fazer tudo isto preferencialmente offline, com seus conhecimentos.
  • Você consegue criar um BFF em REST, e fazer chamadas a três BackEnds, um deles um banco NoSQL, outro um banco relacional, e mais um acesso a um serviço SOAP. Os dados devem ser coletados, e convertidos para um mesmo padrão, sumarizados e retornados ao cliente em JSON via REST. É importante que as três chamadas estejam em MicroServiços, e cada um deles respondendo em um REST separado. Ainda deve garantir a integridade, ou seja, se uma das chamadas falhar, deve fazer rollback nas outras.

Se você consegue fazer estas duas atividades, com pouco acesso à internet para copiar exemplos, e conhece bem o caminho das pedras, PARABÉNS, acabou de receber o logotipo de FullStack developer! Se você se sentiu inferiorizado por ter dificuldade em alguma destas atividades, não se preocupe, estou no seu time. Quando fui programador no passado, meu foco era BackEnd, e me sentiria mais confortável com a segunda atividade (embora talvez não fizesse tudo assim de bate pronto, e as tecnologias fossem diferentes).

Ahhhh, mas e o mercado de FullStack developers prospera a todo vapor! É tudo mentira? Claro que não, é realidade. Mas embora eu não seja um Head Hunter, vou dar o meu palpite. Creio que o esperado é que você saiba de uma forma genérica sobre todos os temas, mas tenha uma especialização maior em um dos temas. E como isto funciona no dia a dia ? Quando você está focado na programação de uma parte do sistema, deve acontecer aquela coisa do tipo se virar para o programador que está ao seu lado e perguntar :

Programador1 : Fulano, quem do time manda bem em CSS ?

Programador2: Ahhh, converse alí com o Ciclano, ele cria uns sites muito bacanas

Ou seja, a colaboração faz com que as pessoas se polarizem em suas áreas de especialidade. Caso um perfil necessário não esteja disponível, mesmo aquele perfil BackEnd (por exemplo) ainda pode criar o FrontEnd, ainda que de forma não tão elaborada, mas na falta de disponibilidade do programador FrontEnd ele ainda se vira com o básico. Este é o programador "FullStack" que enxergo como o comum no mercado. Ou seja, foi dada muita ênfase no Full, e talvez até devessem mudar o nome para programador "MeanStack". Isto talvez fosse mais modesto e mais honesto.

Todo mundo brinca com aquela história do pato, sabe? Ele não sabe andar como a galinha, nem tem a mesma agilidade, também não voa como um falcão, mas consegue ainda voar pequenas distâncias, e não tem a graciosidade do Cisne na água, mas ainda consegue se virar na água. Só que em programação ao menos, uma destas coisas ele precisa fazer muito bem. Portanto poderíamos dizer que o programador "FullStack" deveria ser como que um "pato que se especializou em algo"! Não veja isto como pejorativo de forma alguma! Conhecer tudo é impossível, e conhecer algo bem e outras coisas de forma mediana não é demérito algum! Muito pelo contrário, é muito acima da média.

Bom, se chegamos até aqui acho que não devo estar sendo banido pela comunidade de FullStack Developers da terra, ou ao menos torço para que não. Mas se tiver algum comentário, coloque embaixo do artigo, como um comentário. Seria muito bom saber a sua visão sobre o tema...

Tem outros artigos meus que você pode ler aqui, nem precisa saber nadar bem, voar bem ou caminhar bem. Até a próxima !

#glaucoreis #patonaonada #ibm #fullstack #backend #frontend




José Carlos Bronze

Systems Analyst at IBM Global Services

3 a

Muito bom artigo sobre programadores. Para ter uma elucidação clara e objetiva , Glauco faz analogia com serviços de táxi. É por isto que eu o considero como o rei da analogia didática!

Entre para ver ou adicionar um comentário

Outros artigos de Glauco Reis

  • DEVS e a computação quântica

    DEVS e a computação quântica

    Recentemente resolvi assistir a um episódio de DEVS, uma série que encontrei perdida na Disney de 2020, meio que sem…

  • Michael Jackson nos ensine para que serve uma IA generativa !

    Michael Jackson nos ensine para que serve uma IA generativa !

    Olha, meus amigos. Vou parecer repetitivo, e na verdade serei repetitivo mesmo.

    5 comentários
  • A Inteligência Artificial pela rede Globo

    A Inteligência Artificial pela rede Globo

    Este final de semana fui assistir à reprise do Globo Reporter sobre Inteligência Artificial apresentado na última sexta…

    8 comentários
  • A história esquecida do PC

    A história esquecida do PC

    Se você me acompanha, sabe que eu coleciono computadores anteriores ao PC. Estamos falando de computadores com Z80…

    8 comentários
  • Quem NÃO olha para os erros do passado, comete os mesmos erros no futuro

    Quem NÃO olha para os erros do passado, comete os mesmos erros no futuro

    Neste artigo, inusitadamente começo com uma frase que diz quase tudo a que este artigo se refere. Vou contar uma…

    4 comentários
  • As IAs generativas e o gol de mão do Maradona

    As IAs generativas e o gol de mão do Maradona

    TODOS os dias, sem exceção, aparecem aqui fracassos ou distorções gerados por alguma IA generativa. Seja uma face do…

    4 comentários
  • Sobre "conectar os pontos" de Steve Jobs

    Sobre "conectar os pontos" de Steve Jobs

    Vou fazer aqui algo não muito usual. Agora a pouco estava curtindo um post sobre a vida do Steve Jobs, e me lembrei do…

    18 comentários
  • Prêmio Nobel de física e os invernos da Inteligência artificial

    Prêmio Nobel de física e os invernos da Inteligência artificial

    Olha, saiu do forno o prêmio Nobel de física! O surpreendente foi que neste premio, pesquisadores que dedicaram boa…

    6 comentários
  • Brownian Motion e a computação Quântica

    Brownian Motion e a computação Quântica

    A poeira é algo que incomoda demais os aficionados por limpeza. Mas o polen, que também é uma partícula, permite a…

    5 comentários
  • O jogo da imitação e a computação quântica

    O jogo da imitação e a computação quântica

    Esta semana que passou tive a oportunidade de participar do TDC São Paulo, e lá encontrei pessoas queridas que não via…

    9 comentários

Outras pessoas também visualizaram

Conferir tópicos