Frustrações que todo Desenvolvedor enfrenta na carreira

Ser um desenvolvedor pode ser bem frustrante muitas vezes.
Digamos que as frustrações façam parte do dia-dia do trabalho.
Algumas dessas frustrações nunca vão mudar e você apenas tem que aprender a lidar com elas.
Aqui está uma lista que contém 9 frustrações que programadores passam com frequência com as quais você pode se identificar.

1. Requisitos que mudam constantemente

Você já esteve nesta situação mais de uma vez. Você está no meio da implementação de um novo recurso, quando recebe uma atualização do cliente.
Os requisitos para a tarefa que você está implementando mudaram.
Como resultado disso, é provável que você tenha que refazer ou reescrever partes do seu código.
Existem muitos motivos pelos quais os requisitos podem mudar inesperadamente.
Por exemplo, falta de comunicação, mudanças organizacionais, pressão externa ou mudanças nas leis e regulamentos.

Embora a razão para essas mudanças de requisitos, pode ser legítima, ainda é uma das maiores possibilidades para qualquer desenvolvedor se sentir desgastado e frustrado, especialmente se é recorrente.

2. Toda solução que você tentou não funciona.

Você pode estar trabalhando em uma tarefa complexa e tentando encontrar a melhor solução possível para a tarefa.
Se você é um desenvolvedor inexperiente, provavelmente se identifica com isso.
Você tem algumas soluções para resolver o problema em sua cabeça.
Você começa a digitar no teclado para implementar a solução.
A primeira solução não está funcionando. Não chega nem perto de uma solução funcional.
Ok, vamos para a segunda solução. Você começa alterando algumas linhas de código para tentar fazer o código funcionar. Que droga… sem sucesso também.
Você começa a ficar frustrado porque não tem mais muitas opções ou idéias para resolver esse problema.
É quando você chega a um ponto que todos os desenvolvedores já passaram. Você começa a olhar para a tela na esperança de uma solução que surja do nada.
Isso pode ser especialmente frustrante quando você tem um prazo curto de entrega, e se você passou horas, talvez o dia inteiro buscando uma solução.
Geralmente a solução costuma vir de um colega, ou em um momento em que sua cabeça não está quente e obcecada com o problema.

3. Reuniões sem sentido

Todos nós sabemos daquela reunião que poderia ter sido um e-mail.
O problema com as reuniões é que elas são o assassino número um da produtividade.
A maioria dos desenvolvedores participa de muitas reuniões.
O problema com as reuniões é que a maioria das reuniões é agendada para uma hora por padrão, mesmo que a agenda pudesse ser tratada em menos de meia hora.
Além disso, podemos dizer não a muitas reuniões. Ou talvez você deva começar a dizer não às reuniões antes do meio-dia, para que possa ser produtivo pela manhã.
E se você realmente tem que dizer sim a uma reunião, pelo menos diga não a reuniões longas.
Comparecer a muitas reuniões é um hábito de programadores ineficazes.

4. Andando em círculos

Você conhece esse sentimento? Acontece quando você começa a digitar um monte de código tentando resolver um problema. Você começa a cavar em busca de informações sobre como resolver o problema que está enfrentando.

A resposta que você encontrou no Stack Overflow não é à prova de balas, então você começa a procurar mais respostas sobre como fazer a resposta ideal para o seu problema.

Aquele tutorial com um caso de uso muito parecido com o seu, ajuda mas não funciona 100% como deveria.

De repente, você está se perguntando qual era o problema inicial ,que você estava tentando consertar ou por que você escolheu esse caminho em primeiro lugar.
Antes que você perceba, você está andando em círculos.

5. Requisitos mal definidos

Outro ponto de frustração para a maioria dos desenvolvedores é quando você se depara com requisitos mal definidos.

Você e sua equipe acabaram de concluir o planejamento do sprint e cada história de usuário parecia muito bem definida.
Não havia espaço para interpretações erradas.

Você começa escolhendo a história de usuário de maior prioridade e lê a descrição. Então você lê de novo. Um dos critérios de aceitação não é claro.

Pode ser interpretado de várias maneiras. A primeira coisa que você se pergunta é: como perdemos isso durante o refinamento e o planejamento da sprint?

Em vez de ser produtivo e trabalhar em uma história de usuário, agora você precisa verificar com o product owner para ter certeza de que vai construir algo que corresponda às expectativas do cliente — demorado e frustrante.

6. Problemas Cross-browser

Esta é uma frustração com a qual qualquer desenvolvedor front-end pode se identificar.

Você está trabalhando em um recurso que concluiu. O QA começa a testar a história do usuário e conclui que o recurso não funciona em seu navegador.

Acontece que sua solução só funciona em alguns dos navegadores que você deveria oferecer suporte.
Isso é especialmente frustrante quando você precisa oferecer suporte ao Internet Explorer. Ou como eu gostaria de chamá-lo: o navegador cujo único propósito é fazer o download de um navegador real.

Ou ao Safari.
Às vezes, alguns dos recursos mais recentes ainda não funcionam em todos os navegadores. Isso faz com que você reescreva a solução para que todos os navegadores sejam suportados.
Frustrante e demorado!

7. Sem documentação

A falta de documentação é uma grande frustração para todo desenvolvedor que é novo em uma equipe ou projeto.

Sem nenhum conhecimento prévio sobre um projeto, é difícil trabalhar nele. Provavelmente, é ainda mais difícil fazer o projeto rodar em sua máquina local.

Ter algum tipo de documentação que explique como colocar um projeto em execução em sua máquina e que explique alguns dos principais recursos é o mínimo.
Idealmente, você deseja ter uma documentação extensa para permitir que você tenha uma boa compreensão de um projeto.

Se você tiver a documentação do seu projeto, certifique-se de mantê-la atualizada.
Porque o que é ainda pior do que falta de documentação é a documentação errada e desatualizada.

8. Não ter reconhecimento da equipe ou empresa.

Você trabalha até mais tarde. Você entrega os projetos e suas tarefas antes do prazo. Na daily você fala no tempo reservado a você e sempre se mostra disposto a ajudar e ouvir seus colegas, sempre entra em calls pra ajudar quem tem dúvida, e mesmo assim a empresa ou seus colegas não o reconhecem.

Você muitas vezes trabalha feriado ou final de semana, por alguma exigência urgente do cliente, e depois ele diz que nada do que você fez vai ser usado, e que pode ser jogado fora.

Você vê outros desenvolvedores que produzem código ruim, mas que puxam o saco do chefe ou da empresa, terem promoções ou mais destaque na equipe, do que quem realmente entrega as tarefas. Pior ainda, eles (outros desenvolvedores, ou chefe) fica com todo crédito pelo seu trabalho, quando na verdade quem arrumou o código ruim dele foi você.
Quem palestra nas dailys ou reuniões e apresentações da empresa são eles e não você.

Isso frustra qualquer desenvolvedor motivado.

9. Nunca ser bom o suficiente ou síndrome do impostor

Por último, mas não menos importante, temos uma frustração que provavelmente nunca irá embora. Como desenvolvedor, uma coisa é certa, você nunca irá parar de estudar. A sensação de nunca ter domínio suficiente pode ser muito frustrante.
Se você tem alguma experiência como desenvolvedor, saberá que, depois de concluir um projeto, você passará para o próximo.
Você pode sentir que não há tempo para respirar. Você sempre se encontrará indo de um prazo para outro.

Você chegou ao final da lista. Você já passou por alguma frustração dessa lista? Ou não coloquei alguma coisa pelo qual você já passou? Fique à vontade para escrever nos comentários! 👇

Créditos

Frustrations That Every Developer Can Relate To escrito por Daan

Software Engineer | Front-end Specialist @ Grover (https://rubenmarcus.dev)

Software Engineer | Front-end Specialist @ Grover (https://rubenmarcus.dev)