"Decidir as coisas difíceis em momentos que exigem rapidez é a forma mais fácil de escolher errado." ― Rafael D'Angelo
Há uma enorme discussão quando se trata de que tipo de desenvolvedor é o melhor, o "rápido" ou o "lento". Não vou me aprofundar nessa discussão. Meu foco aqui é no programador que acha que está sendo rápido ao cegamente copiar trechos de código do Stack Overflow, procurando demonstrar o custo disso ao longo prazo pra empresa e pra equipe.
Pra falar sobre o tema, resolvi traduzir aqui o depoimento de Mattias Petter Johansson, engenheiro de software da Spotify, sobre o que seria a melhor prática quando se trata de recorrer ao Stack Overflow e como isso diz bastante sobre a cultura da empresa.
Ao que parece você deve se esforçar para encontrar um empregador que tem uma cultura de desenvolvimento de software mais madura. O comportamento que você descreve, copiar cegamente código do Stack Overflow, não seria exatamente uma ofensa digna de expulsão do Spotify, mas acarretaria em uma discussão séria com o seu gerente, e seria esperado que você não fizesse novamente.
Da forma como eu vejo, existem dois tipos de programadores: aqueles que se poupam tempo, e aqueles que economizam tempo de sua equipe e seus colegas de trabalho.
O primeiro pode ser extremamente prejudicial em uma organização, se seu gestor de projetos não for experiente. Isso ocorre porque neste caso o gestor e o desenvolvedor se parecem muito. É excelente para este tipo de gestão, se tudo que se está medindo é a entrega a curto prazo. Fazendo uma rápida correção, visando a agressivamente resolver o sintoma, vai fazer você realizar sua tarefa muito rapidamente. O gestor, por sua vez, vai dar seus parabéns e você vai ter a impressão de ter salvado o dia. Dessa forma,esse gerente que provavelmente está executando o seu primeiro projeto de software provavelmente vai ser feliz com você.
O problema é que isto é como comprar coisas a crédito. Ao fazer alterações que não entendemos completamente, sem ter escrito alguns testes fundamentais, você está economizando tempo no curto prazo, mas você está gerando uma confusão que terá de ser limpa por seus colegas de trabalho ao longo do tempo. Em situações extremas, isso pode levar a um projeto que é tão difícil de lidar e entender ao ponto de você não poder modificar praticamente nada.
Um desenvolvedor de software sênior (assim como seu gerente de projeto) sabe que o desenvolvimento inicial é apenas uma pequena parte do desenvolvimento de software. Aquilo que esmagadoramente tem maior custo no desenvolvimento é a manutenção ao longo do tempo, por isso é muito importante otimizar isso, não optando somente por uma rápida entrega de curto prazo.
Conclusão
Se você quer poupar seu tempo e da equipe, copiar código da internet sem entender exatamente o que está acontecendo não é a melhor maneira. Ao invés disso, invista em:
- Conhecer editores de texto e IDEs;
- Dominar a linguagem que seu framework utiliza;
- Dominar ferramentas de automatização como Gulp e Webpack;
A partir daí, você estará em melhores condições de consultar o Stack Overflow com a calma necessária e da maneira que deve ser utilizado, isto é, para lhe impedir de desnecessariamente reinventar a roda, refrescar sua memória e servir de guia para futuros estudos quando você não entender muito bem as soluções propostas.