6 hábitos de desenvolvedores de software de sucesso
- #JavaScript
- #Java
- #.NET C#
Em um mundo com uma quantidade cada vez maior de empregos em tecnologia e uma quantidade equivalente de trabalhadores de tecnologia, pode ser difícil se destacar como desenvolvedor de software e ter sucesso. Desenvolvedores de software bem-sucedidos trabalham nos projetos mais legais em ambientes dinâmicos; sparring com arquitetos de diferentes equipes, aconselhando os proprietários de produtos sobre escolhas estratégicas. Se essas são coisas que você gosta em seu trabalho como desenvolvedor de software, é hora de resolver o problema com suas próprias mãos e começar a se concentrar em hábitos que farão você se destacar!
Ok, você passou da primeira base: está motivado e pronto para começar. Então, quais são as qualidades, habilidades e hábitos que você precisa dominar para se tornar um desenvolvedor de sucesso? Claro, a resposta varia dependendo de quem você pergunta; um colega desenvolvedor, um mestre SCRUM, proprietário do produto ou um gerente de TI. Este artigo se concentra nos hábitos de desenvolvedores de software de sucesso. Os hábitos não exigem um estudo extensivo de teoria, apenas intenção em como você age. Os hábitos neste artigo são derivados de opiniões minhas e de colegas em várias funções (desenvolvedor, arquiteto, gerente de projeto, CTO). Além desses hábitos, habilidade, conhecimento e experiência são necessários para ser um grande desenvolvedor. No entanto, acredito que essas seis dicas são uma ótima base sobre a qual você pode construir. Concentrar-se no desenvolvimento desses hábitos em seu trabalho diário o preparará para o sucesso!
Foto de Christina @ wocintechchat.com no Unsplash
#6: Seja Aberto
Não é coincidência, a abertura é um dos cinco pontos-chave do SCRUM. A abertura é um hábito que se aplica a muitas áreas do seu trabalho como desenvolvedor de software. Aplica-se à maneira como você aborda os colegas, ouve os usuários, como recebe feedback e como vê os novos desafios técnicos (dica: são oportunidades!). Isso torna a abertura um dos hábitos mais importantes a serem dominados como desenvolvedor de software. Esteja sempre aberto sobre o que você sabe e o que você não sabe.Não saber as coisas não é uma fraqueza, mas sim uma oportunidade de aprendizado.
… aos Usuários e Partes Interessadas
Ao falar com usuários ou partes interessadas, construa um modelo mental de seu aplicativo, visualize como seus usuários interagem com ele, quais são seus objetivos e o que eles esperam dele. Seu modelo mental deve estar mais próximo da realidade real , não sua percepção da realidade. A abertura em suas interações com usuários ou partes interessadas o ajudará a construir um modelo mental preciso do aplicativo. Tenha empatia com os usuários do seu aplicativo e valide seus pontos de vista com eles. Você precisa reconhecer seus próprios preconceitos e preconceitos e não tomar nada como garantido. É melhor ter o óbvio confirmado do que fazer suposições erradas.
… para Feedback
Revisões de código e feedback são parte integrante do processo de desenvolvimento. Como desenvolvedores, somos abençoados com esse feedback contínuo. É uma maneira tangível de aprender com e com seus colegas. Algumas pessoas podem se sentir magoadas com o feedback, interpretando-o como crítica ou até mesmo agindo na defensiva. Essa atitude inibirá sua capacidade de aprender. Lembre-se de agradecer que o revisor tenha tempo para revisar seu trabalho e fornecer pontos para você melhorar. Use-o a seu favor! Claro, ajuda se o revisor de código se esforçar para dar feedback construtivo.
#5: Experimente e seja curioso
Acredito firmemente que a curiosidade é o principal pilar do desenvolvimento de software. A curiosidade provavelmente o colocou neste trabalho em primeiro lugar! A maioria dos desenvolvedores de software que conheço tinha o hábito de desmontar todos os tipos de eletrodomésticos quando eram crianças, descobrindo como eles funcionam. Outros queriam aprender a construir os videogames que adoravam jogar. Alimente sua curiosidade e deixe-a levá-lo a aprender novas tecnologias, bibliotecas, linguagens, padrões de design e formas de trabalhar. Desenvolvedores de sucesso não esperam que alguém lhes diga o que há de novo na versão mais recente de seu idioma favorito. São eles que lêem as notas de lançamento, testam versões beta e compartilham esse conhecimento com entusiasmo com seus colegas! Há algo novo para aprender todos os dias.
#4: Demonstre interesse nas metas de negócios
Certifique-se de entender profundamente como seu código, ou melhor ainda, o aplicativo em que você está trabalhando, ajuda a atingir as metas de negócios. Se você não tiver certeza sobre essas metas, encontre pessoas que possam explicar as metas de negócios para você (geralmente o proprietário do produto). Compreender os objetivos de negócios de seus clientes o ajudará a fazer escolhas de desenvolvimento técnico e funcional bem fundamentadas. Acertar desde o início economizará um tempo valioso, tornando-o mais eficaz. Depois de obter um verdadeiro entendimento dos objetivos de negócios, certifique-se de aplicar esse conhecimento não apenas em seu trabalho técnico, mas também em reuniões como refinamentos e planejamentos de sprint. Se o proprietário do produto sugerir um novo recurso que pareça estar em conflito com o que você entende serem as metas de negócios, discuta isso. Isso ajudará a refinar sua compreensão das metas de negócios ou destacará um conflito real que foi negligenciado. Tenha em mente que as metas de negócios podem (e vão) mudar, então continue validando seu conhecimento. Para adquirir uma boa compreensão dos objetivos de negócios, é útil adquirir conhecimento de domínio no início de um projeto. Ter um conhecimento profundo do domínio é muitas vezes uma característica de desenvolvedores seniores em projetos; combinado com sua competência técnica, permite que eles avaliem com precisão o impacto de escolhas críticas.
Além disso, na minha experiência, mostrar interesse genuíno nos objetivos de seus clientes é uma ótima maneira de estabelecer confiança e construir um forte relacionamento profissional.
#3: Melhore continuamente
A TI é um mercado de ritmo muito acelerado, com muitas tecnologias novas ou aprimoradas sendo lançadas a cada mês. Para se tornar e permanecer bem-sucedido, você precisará acompanhar esses desenvolvimentos. Portanto, uma das competências mais importantes dos desenvolvedores de sucesso é o aprendizado contínuo autodirigido.
Aqui estão algumas coisas que você pode fazer para continuar se desenvolvendo:
- Siga blogueiros/vloggers em sua área de especialização (e de preferência fora dela também).
- Participe de eventos e conferências (virtuais).
- Visite regularmente os blogs oficiais das linguagens e frameworks que você usa para verificar se novos recursos são anunciados.
- Procure regularmente novos frameworks/pacotes dos quais você possa se beneficiar em seus projetos.
- Fale com seus colegas sobre código e novas tecnologias.
- Experimente, experimente, experimente.
- Leia livros (por exemplo, “The Clean Coder” ou “Pragmatic Programmer” ).
Além disso, não há nada mais desgastante de energia do que tarefas repetitivas e tediosas. Eles consumirão recursos valiosos que você poderia gastar em atividades produtivas que o ajudarão a crescer. Portanto, trabalhe de forma inteligente e automatize seu trabalho quando possível:
- Saiba mais sobre os atalhos de teclado e os recursos de refatoração da IDE.
- Use pipelines de CI/CD para executar testes de unidade, linting, implantação etc.
- Escreva scripts de automação e use git hooks.
- Documente processos complicados para que você só precise pesquisá-los uma vez. Você pode compartilhar o documento com outras pessoas e economizar tempo explicando-o.
- Esteja alerta sobre quaisquer melhorias que você possa fazer em seu fluxo de trabalho diário.
Por fim, compartilhe seu conhecimento (recém) adquirido! Não há nada mais motivador para chegar ao fundo de um tópico do que saber que você precisa contar aos seus colegas sobre isso mais tarde. Além disso, pensar em maneiras de explicar assuntos difíceis despertará uma compreensão mais profunda dentro de você.
#2: Inovar, iterar, mas não reinventar a roda
Finalmente, um hábito sobre o desenvolvimento de software real! O desenvolvimento de software requer desenvoltura, pois você precisa apresentar soluções inovadoras para qualquer problema que encontrar. No entanto, não reinvente a roda. Em vez disso, use o conhecimento disponível: muitas pessoas brilhantes pensaram muito sobre as melhores práticas para problemas comuns. Isso é especialmente verdadeiro para princípios de codificação mais abstratos, padrões de design e arquitetura de software. Certifique-se de aderir a esses princípios (como DRY, SOLID, Clean Code, Design Patterns) e padrões de estilo de codificação relevantes, mas seja criativo na implementação da funcionalidade. Ao fazer isso, outros desenvolvedores (e seu futuro eu) entenderão melhor seu código e poderão alterá-lo ou estendê-lo facilmente.
Ao projetar seu software, leve em consideração que você provavelmente não conseguirá acertar na primeira vez. Isso não é problema, desde que você mantenha as coisas simples, reitere o design e refatore seu código regularmente. De vez em quando, dê um passo para trás e reflita sobre o que você está fazendo e como isso se encaixa no quadro geral. É improvável que a mesma solução ou arquitetura funcione para dois projetos diferentes. Seja pragmático, concentre-se no que você sabe e mantenha essas coisas simples.
#1: Fique confortável sendo desconfortável
O desenvolvimento de software é uma experiência de aprendizado contínuo. Mesmo que você esteja trabalhando no mesmo projeto há 10 anos, novos desafios exigirão novas habilidades ou conhecimentos. A percepção de que você não possui certos conhecimentos ou habilidades pode ser imensamente desagradável, fazendo com que você se sinta inseguro. Experimentar um novo IDE, novas linguagens ou estruturas pode fazer com que você se sinta muito desconfortável, pois se encontra lutando para realizar até mesmo tarefas básicas. Desenvolvedores de software eficazes aceitam esse desconforto como eles sabem, isso os ajuda a crescer.
“Você só pode crescer se estiver disposto a se sentir estranho e desconfortável ao tentar algo novo.”
— Brian Tracy, palestrante motivacional
Pense em tudo que você aprendeu desenvolvendo aquele novo recurso complicado que você não sabia como implementar quando começou. Ou o orgulho que você sentiu quando seu primeiro aplicativo foi executado sem erros depois de lutar por dias. Olhando para trás, por que você perseverou na luta? Provavelmente porque você gostava de aprender coisas novas, consertando pequenas partes do quebra-cabeça a cada passo que dava.
Mas não posso…
Se você é abençoado com uma pitada de perfeccionismo, sair da sua zona de conforto pode parecer impossível. Ajuda a se concentrar nas coisas que estão sob seu controle. Na minha opinião, ajuda focar no processo ao invés do resultado . Por exemplo, se você deseja escrever um código perfeito, a melhor maneira de melhorar para esse nível é:
- Escreva muito código.
- Obtenha feedback: envie seu código para um revisor rigoroso que apontará todos os erros e oportunidades perdidas para você.
- Corrija todas as observações.
Repita esses passos MUITAS vezes e você provavelmente escreverá um código impecável. Da próxima vez que você se sentir desanimado porque sua solicitação pull foi rejeitada, considere que você está realmente executando perfeitamente o processo de se tornar um excelente codificador!
Qual é o próximo?
Alguns desses hábitos devem se tornar parte de sua mentalidade de trabalho, enquanto outros podem exigir que você invista algum tempo livre. No entanto, em um processo SCRUM saudável, “ picos” facilitam o tempo para pesquisa e experimentação de novas tecnologias. Muitas vezes, antes de iniciar um novo projeto ou recurso, há algum tempo para pesquisar e experimentar também. Agora que você conhece esses 6 hábitos, incorpore-os no seu trabalho diário sempre que possível e comece a viver e trabalhar com eles em mente:
- Esteja aberto aos seus colegas, partes interessadas e usuários, peça feedback a eles!
- Experimente novas tecnologias e frameworks e converse sobre suas descobertas com outros desenvolvedores!
- Fique por dentro das metas de negócios (e como elas mudam)!
- Melhore continuamente a si mesmo e seus fluxos de trabalho!
- Use as melhores práticas do setor e inove!
- Saia da sua zona de conforto!
Quando você está aprendendo, experimentando ou talvez experimentando esses hábitos e se encontra fora de sua zona de conforto, lembre-se: o único lugar para aprender a nadar é na água, não em terra firme!
Minhas redes:
Git Hub: https://github.com/jardelMoraes
Linkedin: https://www.linkedin.com/in/jardel-moraes/
Referência: https://medium.com/team-rockstars-it/6-habits-of-successful-software-developers-6f1e0a8cb9ce