O que separa um bom desenvolvedor de um excelente?

O que separa um bom desenvolvedor de um excelente?

Uma pergunta tão fácil de fazer, certo? Todo mundo sabe que um grande desenvolvedor é aquele que tem experiência e conhecimento suficiente para trabalhar em qualquer projeto que surgir. Combinar o trabalho de anos na área com o conhecimento de diferentes ferramentas, linguagens e tecnologias é o que torna os engenheiros de software realmente excelentes. Ou (…)

Bom desenvolvedor se tornando ótimo

Uma pergunta tão fácil de fazer, certo? Todo mundo sabe que um grande desenvolvedor é aquele que tem experiência e conhecimento suficiente para trabalhar em qualquer projeto que surgir. Combinar o trabalho de anos na área com o conhecimento de diferentes ferramentas, linguagens e tecnologias é o que torna os engenheiros de software realmente excelentes. Ou então você pensaria.

Se a resposta fosse tão óbvia, você não estaria lendo esta postagem do blog (nem nós a teríamos escrito). No entanto, aqui estamos, então definitivamente deve haver algo mais. Apenas acumular projetos e informações não necessariamente torna um engenheiro excelente. Existem outras coisas que os fazem realmente se destacar de seus pares.

Bom vs. Grandes desenvolvedores

Se você perguntasse aos desenvolvedores líderes que tipo de pessoa eles gostariam de ter em sua equipe, é provável que a maioria listasse algumas características comuns. Coisas como excelentes habilidades tecnológicas, habilidades de resolução de problemas e conhecimento das melhores práticas de programação certamente viriam em primeiro lugar. Alguns diriam que adorariam ver pessoas apaixonadas trabalhando para eles, bem como engenheiros que gostam de trabalhar em equipe.

Tudo isso é ótimo, pois são um conjunto desejável de características que os desenvolvedores devem ter. No entanto, esses são apenas os alicerces de um grande desenvolvedor. Os verdadeiros grandes engenheiros vão além dessas habilidades e entram em território excepcional – afinal, grandes desenvolvedores são uma raça rara. Eles são extremamente produtivos, ainda mais do que bons desenvolvedores. Isso porque eles estão sempre avançando um pouco mais, refinando seu talento único dia após dia.

Pode parecer que grandes desenvolvedores nascem gênios que devem ser encontrados e não treinados. Claro, existem pessoas com talento inato e para quem tudo parece mais fácil, desde aprender novas linguagens até manter o código limpo. Mas isso não significa que os engenheiros não possam aspirar à mesma grandeza. Pode ser mais difícil e exigir um pouco mais de trabalho, mas todo engenheiro de software pode ser ótimo, desde que saiba no que se concentrar. Aqui estão algumas dicas sobre isso.

O Caminho para a Grandeza

O roteiro para o sucesso em qualquer área é sempre pavimentado com esforço e trabalho árduo. Sem isso, mesmo as pessoas mais talentosas irão inevitavelmente falhar. Isso, é claro, também se aplica ao desenvolvimento de software. Os engenheiros que quiserem melhorar o seu jogo terão que fazer um esforço extra para se tornarem a elite que desejam ser, o que implica várias coisas. Deixando de lado os aspectos mais evidentes de tudo isso (principalmente, saber sobre assuntos técnicos), aqui estão outras coisas que grandes desenvolvedores têm em comum.

Uma sede implacável de conhecimento

Na cabeça da maioria das pessoas, o melhor profissional é aquele que sabe tudo. A ideia de alguém ter conhecimento enciclopédico sobre tudo em combinação com bom senso e lógica aguçada à la Sherlock Holmes parece ser o objetivo de todos. Quem não gostaria de superar os desafios mais difíceis com apenas um olhar?

No entanto, saber tudo é uma provação impossível. Sempre há uma nova tecnologia, uma nova ferramenta, uma nova abordagem para aprender. Assim, em vez de saber tudo, os melhores profissionais (entre eles os grandes desenvolvedores) adotam uma mentalidade de aprendizado constante. Como todas as coisas que conhecem hoje podem mudar, adaptar-se ou tornar-se obsoletas mais tarde, estão sempre à procura de novidades.

Eles reconhecem que não sabem tudo ou que o que sabem é uma verdade inegável. Eles não têm medo de pedir ajuda e aprender com qualquer recurso disponível, seja um vídeo online, um novo livro, uma conferência ou uma nova adição à equipe – mesmo que esta esteja abaixo deles, hierarquicamente falando.

Uma grande atenção à comunicação

Você já jogou Pictionary com seus amigos e ficou perplexo ao ver como seus colegas de equipe não conseguem descobrir o que você está desenhando, mesmo quando está claro como cristal? Então você já sabe como é difícil comunicar algo de forma clara e inequívoca. Mesmo que você nunca tenha ouvido falar do Pictionary (sério?), você certamente já passou por aqueles momentos frustrantes em que tinha certeza absoluta de que estava se explicando, apenas para descobrir que a pessoa com quem você estava falando não tinha ideia do que você queria dizer. .

Sempre que dizemos algo (ou desenhamos, no caso do Pictionary), colocamos muitas coisas em jogo. A maior parte são informações básicas polvilhadas com nossa própria lógica. Assim, sempre que dizemos algo, sempre sabemos o que queremos dizer, por isso não podemos imaginar que a outra pessoa consiga entender o que estamos dizendo. No entanto, isso acontece – muito. Isso mostra que a comunicação é algo complicado que não podemos considerar garantido.

Aplique isso ao mundo do desenvolvimento de software e você verá porque a comunicação é tão importante para todo o processo. O desenvolvimento de software lida com um bom grau de abstração (especialmente decorrente das linguagens e dos processos de desenvolvimento), mas também leva em conta aspectos provenientes da psicologia, do design e dos negócios, para citar alguns. Compreender tudo isso para chegar a uma solução coesa é um enorme desafio, para o qual grandes desenvolvedores estão muito aptos.

Por que? Porque eles podem se comunicar com todas as partes envolvidas para entregar conceitos e metas com clareza, bem como para propor um roteiro de trabalho. Eles podem compreender os requisitos do cliente e traduzi-los de forma eficaz para os outros membros da equipe. Também funciona ao contrário – eles podem pegar questões técnicas complexas e explicá-las em termos leigos ao cliente. Assim, a comunicação torna mais fácil para todos trabalharem juntos em harmonia e entregarem mais valor.

Uma abordagem equilibrada para o produto

Os desenvolvedores podem ser divididos em duas categorias. Primeiro, existem desenvolvedores que fariam qualquer coisa para que o software funcionasse, independentemente do que fosse necessário. Esses engenheiros não se importam em corrigir código após código, reutilizar linhas antigas ou usar atalhos ou maneiras não convencionais de fazer as coisas. Eles são pragmáticos com apenas uma coisa em mente – que o produto final funcione.

E há ainda a segunda categoria, na qual os desenvolvedores aspiram produzir o melhor software já criado. Eles gastam muito tempo tentando corrigir cada pequeno bug ou otimizando os mínimos detalhes. Eles desejam que seu produto final tenha uma aparência impecável e, ao mesmo tempo, ofereça uma experiência de usuário excelente. Eles são perfeccionistas.

Embora ambas as abordagens tenham suas vantagens e desvantagens, inclinar-se demais para qualquer um dos lados certamente prejudicará o produto final. Os pragmáticos trabalham de tal forma que seus produtos podem ficar inchados ou quase impossíveis de manter ou atualizar. Os perfeccionistas, por outro lado, passam tanto tempo se preocupando com os detalhes que o produto, aos seus olhos, nunca fica pronto. Nenhuma das abordagens é boa para os negócios.

É por isso que grandes desenvolvedores são adeptos de equilibrar os dois extremos. Por um lado, eles contam com a revisão por pares e o feedback dos clientes para compreender as questões do programa em que estão trabalhando. Eles sabem receber críticas sem nunca torná-las pessoais e sabem quando as críticas são úteis e quando não levam a lugar nenhum.

Além disso, eles sabem quando interromper o desenvolvimento. Eles conseguem identificar quando o software está pronto para lançamento, levando em consideração o mercado e as necessidades do cliente, o público-alvo e os aspectos técnicos de tudo isso. Resumindo, eles sabem quando precisam usar atalhos para lançar o produto e quando focar em uma solução que exige mais trabalho.

Pronto para se tornar um grande desenvolvedor?

Como você pode ver, as habilidades que separam um bom desenvolvedor de um excelente são coisas nas quais qualquer um pode trabalhar. Em primeiro lugar, você precisa manter uma atitude de aprendizado para se manter atualizado com as últimas tendências e, ao mesmo tempo, estar aberto para aprender com qualquer pessoa e qualquer coisa. Além disso, você precisa trabalhar para ser mais empático – ouvindo as opiniões dos outros e se colocando nos shows deles.

Isso o ajudará a crescer em suas habilidades de desenvolvimento e aos poucos o transformará em um profissional melhor. Lembre-se apenas de que você precisa ser constante e paciente para ver seus esforços gerando resultados. A estrada é o que importa e você precisará manter o foco e se esforçar porque, como você já deve ter percebido, a grandeza não é simples de alcançar.

Conteúdo Relacionado

Retour au blog

Laisser un commentaire

Veuillez noter que les commentaires doivent être approuvés avant d'être publiés.