IGTI Blog
full stack

O que faz um Desenvolvedor Full Stack?

Entenda o que faz um desenvolvedor Full Stack, quais suas principais atividades e tarefas, e qual o perfil profissional que este desenvolvedor deve ter.

O que é um desenvolvedor full stack?

O termo full stack vem sendo bastante utilizado nos últimos anos como uma forma de definir um tipo de desenvolvedor. O próprio nome já dá uma ideia do que este desenvolvedor faz, pois a palavra full significa completo e stack pilha. Ou seja, trata-se de um profissional capaz de trabalhar com toda a stack de desenvolvimento de uma aplicação. Algumas pessoas caracterizam um desenvolvedor como full stack caso ele trabalhe com o front-end e com o back-end, já outros consideram um desenvolvedor como fullstack caso ele consiga atuar não somente no front e no back-end, mas sim em todas as etapas e partes do desenvolvimento, como o banco de dados e servidor. Um diferencial para os desenvolvedores full stack é conseguirem trabalhar também com desenvolvimento mobile, já que ele está cada vez mais presente. Em muitos casos este conhecimento é essencial para o desenvolvedor.

A princípio pode parecer um pouco desesperador ter que conhecer tudo de todas as etapas do desenvolvimento de um projeto, mas tenha calma. Um desenvolvedor full stack não precisa ser um expert em todas as áreas, pois isso seria praticamente impossível.

Geralmente ele tem uma área na qual ele possui um maior domínio, e as demais, ele tem um conhecimento no qual ele consegue se virar, sem que isso seja sua principal especialidade. Vamos descrever um exemplo de um desenvolvedor full stack: profissional com amplo domínio no front-end, muito fluente em HTML, CSS e frameworks Javascript para criação de SPA’s (Single Page Applications), como React por exemplo, e com conhecimento de tecnologias de desenvolvimento back-end, como Java, C# e NodeJS, por exemplo, não sendo um exímio desenvolvedor dessas linguagens, mas capaz de criar alguns serviços e corrigir alguns bugs nesta parte. Capaz de trabalhar com banco de dados, criando tabelas e manipulando registros, não sendo um especialista em banco de dados que saiba projetar e gerenciar um banco altamente escalável, mas que sabe se virar ali. Da mesma forma conhece um pouco de operações, conseguindo configurar um servidor e publicar a aplicação no ar. Além disso, também consegue levantar as necessidades do cliente e propor soluções, entendendo as regras de negócio em questão.

Resumindo, caso um desenvolvedor consiga levantar as necessidades do projeto, desenvolver o sistema e colocá-lo no ar, ele pode se considerar um desenvolvedor full stack. Ele não precisa dominar todas as áreas, mas precisa saber se virar em todas elas, e ser capaz de aprofundar em determinado tema caso seja necessário.

O perfil deste tipo de profissional é chamado de T-Shaped, pois são pessoas que têm conhecimento em diversos assuntos, porém sem tanto aprofundamento, representado pela parte de cima do T, e é especialista em determinado assunto, possuindo um conhecimento bem profundo, representado pela parte vertical do T. O profissional descrito no parágrafo anterior é especialista em front-end, e possui um conhecimento geral nas demais áreas.

O que um desenvolvedor full stack faz no dia a dia?

Em algumas empresas o desenvolvedor full stack é responsável por, além de desenvolver as funcionalidades dos sistemas, levantar os requisitos junto ao cliente. Então também é importante que ele consiga entender as regras de negócio na qual o projeto está inserido, identificar as necessidades e demandas. Uma vez definido o que deve ser feito, ele irá começar o desenvolvimento da solução. Algumas empresas possuem equipes que são especializadas em determinada área, porém isso não impede que o desenvolvedor full stack tenha conhecimento do que ocorre ali e que consiga participar do processo e trabalhar em conjunto. Já em outras empresas, ele é o responsável por desenvolver o projeto do início ao fim, e de realizar as futuras manutenções e evoluções do mesmo. Sempre que houver alguma dúvida muito específica ou um problema complexo, nada impede o desenvolvedor de recorrer a alguém mais experiente naquele assunto.

As tarefas do dia a dia de um desenvolvedor full stack dependem muito do projeto que ele está trabalhando. Caso o projeto esteja com muitas tarefas atrasadas no back-end por exemplo, é normal que ele passe mais tempo trabalhando ali.

Claro que a rotina de cada um é diferente. Muitos desenvolvedores full stack também passam grande parte do dia dando manutenção em um sistema já existente, corrigindo bugs ou fazendo melhorias. Um problema que ele resolve frequentemente pode ser uma interação ruim da interface com o usuário, pode ser um erro de lógica em uma regra de negócio, pode ser uma lentidão excessiva de uma consulta no banco de dados ou pode ser um grande consumo de memória no servidor, por exemplo.

Qual o perfil do profissional full stack?

Um desenvolvedor full stack deve ser curioso e gostar de estar sempre aprendendo. Como ele vai trabalhar com vários tipos de tecnologias em diferentes áreas, ele deverá ficar antenado a respeito das novidades da área, de forma a buscar sempre propor a melhor e mais viável solução para o problema em questão.

Ele também precisa sempre estar aprendendo e aprofundando nas ferramentas e tecnologias que precisar utilizar. Necessita ter um perfil investigativo, pois resolver alguns problemas pode não ser uma tarefa tão fácil, uma vez que ele pode englobar várias partes diferentes do projeto.

É desejável que este profissional consiga aprender sozinho e de forma rápida, pois normalmente os projetos são bem corridos e precisam de agilidade, e nem sempre existe alguém na equipe com conhecimento no assunto e com tempo disponível para ensinar, por isso ser autodidata é um diferencial. Esta busca constante por conhecimento é essencial para que o profissional não fique ultrapassado em pouco tempo, e para que as soluções que ele irá criar gerem de fato, valor para a empresa.

Este tipo de profissional está sendo muito requisitado pelo mercado, pois muitas empresas gostam de contratar profissionais que conseguem enxergar o projeto como um todo, sendo capazes de participar em todas as áreas. Algumas empresas optam por contratar desenvolvedores especialistas de cada área, outras optam por contratar desenvolvedores full stack, e outras gostam de mesclar os dois perfis.

Uma alternativa de trabalho para desenvolvedores full stack é trabalhar em projetos como freelancer, pois conseguem trabalhar em todas as áreas. Um cuidado que estes desenvolvedores devem ter com sua carreira, é não querer conhecer um pouco de tudo sem se aprofundar em nada. É importante que ele tenha uma amplitude de conhecimento, porém também é preciso que ele aprofunde nos conhecimentos em uma área específica.

Professor autor: Guilherme Henrique de Assis