Modelo de crescimento para pessoas desenvolvedoras
Por
Publicado: March 07, 2019
Como qualquer pessoa começando uma carreira como desenvolvedora de software, muitas vezes fazemos suposições sobre o que é ter sucesso — suposições que muitas vezes acabam se provando erradas. Como descobri ao longo do ano passado, as oportunidades de crescimento se apresentam de maneiras surpreendentes, e eu queria compartilhar minhas experiências, com a esperança de que você também possa aprender com meus erros.
No ano passado, trabalhei com a organização global de notícias independente Democracy Now! (DN). Para ser honesto, fiquei desapontado quando recebi a tarefa. Como recém-formado, minha meta para o meu primeiro ano na Thoughtworks era dar passos largos no meu crescimento técnico. A sabedoria convencional me levou a acreditar que isso só seria possível se eu estivesse construindo software para clientes da Fortune 500 ou trabalhando ao lado de uma grande equipe de desenvolvedores seniores. Em vez disso, fui colocado em uma pequena organização sem fins lucrativos com uma equipe de duas outras pessoas Thoughtworkers.
Em essência, eu inconscientemente construí uma fórmula para determinar qual seria o meu crescimento profissional em uma determinada tarefa:
Minha principal responsabilidade era emparelhar o programa com outra pessoa desenvolvedora para desenvolver os novos aplicativos móveis, o que significava que eu estava profundamente envolvido em todo o processo de desenvolvimento. Embora eu não tivesse experiência com desenvolvimento para dispositivos móveis, não estivesse familiarizado com o React e confuso com JavaScript, vi isso como uma oportunidade de me transformar em um desenvolvedor de front-end sólido (o que quer que isso signifique atualmente).
Com o passar do tempo, me vi valorizando mais essas tecnologias, pela elegância e clareza com que abordam problemas complexos. Meu desejo de entender mais essas tecnologias cresceu e me vi gastando muito do meu tempo livre descobrindo os mistérios que se encontravam sob um nível de compreensão superficial. Descobri o poder das funções de primeira classe, closures, e virtual DOM, e tentei aproveitar ao máximo para utilizá-los em nossa base de código de maneira responsável. Comecei a me sentir em crescimento, não por causa do tamanho do cliente ou da senioridade da equipe de engenharia, mas por causa do meu interesse genuíno no trabalho e meu impacto nos aplicativos.
Ao mesmo tempo, acredito que as regras de acompanhamento não-crítico são perigosas, e é por isso que aprecio o fato de falarmos e debatermos por que essas práticas são importantes. Como podemos, como defensores da qualidade, entregar nossos valores se não examinarmos o que a qualidade realmente significa? O TDD está nos dando um feedback rápido nessa situação específica? Realmente faz sentido se concentrar tanto em testes unitários de nossos componentes React? Por que devemos adotar um estilo mais funcional de programação?
Não, nós nem sempre escrevemos nossos testes primeiro, as implantações ainda me estressam, e acumulamos muitas dívidas de tecnologia devido a decisões de design menos que ideais. No entanto, entendemos a importância da excelência em software e tentamos ao máximo manter práticas de engenharia sólidas, sendo ao mesmo tempo realistas quanto aos recursos que temos.
Seguir essas práticas me ajudou a perceber por que elas são tão importantes e me tornou um engenheiro melhor. Ter colegas de equipe que valorizam a qualidade — e pensar criticamente sobre o que isso significa — mudou completamente a maneira como penso em escrever código. E como nossa equipe de engenharia é tão pequena e autônoma, a cultura de engenharia da Thoughtworks que trazemos para a DN está quase inteiramente sob nosso controle.
Eu não posso expressar o quão importante tem sido poder fazer perguntas, admitir ignorância e mostrar vulnerabilidade. Quando comecei na DN, fiquei impressionado com o número de conceitos de JavaScript e React que não entendia. Passei muito tempo pessoal me aperfeiçoando, mas alguns conceitos foram realmente difíceis de entender.
Felizmente, eu tinha uma pessoa desenvolvedora front-end ultra-talentosa como um treinadora que estava feliz em responder minhas perguntas e me fornecer apoio para continuar meu aprendizado. Eu nunca me senti julgado por minhas lacunas no conhecimento, o que me permitiu ser aberto e honesto sobre onde eu estava — e onde eu queria estar. Esse suporte não apenas acelerou meu crescimento em JavaScript e React, mas também abriu caminhos de aprendizado impulsionados por interesse genuíno.
DN é uma plataforma de notícias suportada pelo público, o que significa que sua independência editorial nunca é comprometida por interesses corporativos ou governamentais. Encorajo todo mundo a assistir o show em algum momento. Jornalistas da DN entrevistam especialistas sobre eventos atuais, bem como muitas pessoas cujas experiências muitas vezes não são ouvidas.
No clima político de hoje, as principais notícias muitas vezes parecem entretenimento, com os mesmos comentaristas políticos falando sobre as experiências de outros. Dados os laços econômicos da mídia corporativa, discernir o que é factual e o que não é se tornou cada vez mais difícil. É por isso que ter mídia independente é fundamental para uma democracia real.
Com todas as coisas ridículas que aconteceram em 2018, significou para mim o mundo que eu poderia aparecer para trabalhar todos os dias em uma organização com a qual eu me sinto alinhada, escrevendo código para um produto em que acredito.
Esses modelos mentais me ajudam a determinar o que realmente valorizo. Seja como eu decido passar meu fim de semana, como eu controlo meu dinheiro ou apenas tentando descobrir o que me faz feliz, acho valioso isolar atributos significativos. O problema ocorre quando faço suposições sobre atributos que não são verdadeiros. O que funciona para outra pessoa nem sempre funciona para mim, e o que fez sentido para mim há quatro anos não pode mais fazer, porque sou uma pessoa diferente agora. É por isso que é importante questionar continuamente nossas crenças e processos de tomada de decisão.
E, finalmente, uma dica rápida: aguarde o novo Democracy Now! Aplicativos para Android a iOS estarão disponíveis em breve.
No ano passado, trabalhei com a organização global de notícias independente Democracy Now! (DN). Para ser honesto, fiquei desapontado quando recebi a tarefa. Como recém-formado, minha meta para o meu primeiro ano na Thoughtworks era dar passos largos no meu crescimento técnico. A sabedoria convencional me levou a acreditar que isso só seria possível se eu estivesse construindo software para clientes da Fortune 500 ou trabalhando ao lado de uma grande equipe de desenvolvedores seniores. Em vez disso, fui colocado em uma pequena organização sem fins lucrativos com uma equipe de duas outras pessoas Thoughtworkers.
Em essência, eu inconscientemente construí uma fórmula para determinar qual seria o meu crescimento profissional em uma determinada tarefa:
Modelo de Crescimento v0.1
Crescimento Profissional = Tamanho da Organização + Número de Pessoas Desenvolvedoras Seniores
Embora eu estivesse pessimista sobre oportunidades de crescimento na DN, estava animado com o trabalho que a equipe de engenharia estava fazendo. Quando entrei, os esforços da equipe estavam concentrados no redesenho do aplicativo web legado em Ruby on Rails do DN, movendo páginas de um back-end datado para um front-end atualizado. Cerca de uma semana depois da minha tarefa, outro fluxo de trabalho foi aberto para a criação de novos aplicativos para Android e iOS usando o React Native framework.Minha principal responsabilidade era emparelhar o programa com outra pessoa desenvolvedora para desenvolver os novos aplicativos móveis, o que significava que eu estava profundamente envolvido em todo o processo de desenvolvimento. Embora eu não tivesse experiência com desenvolvimento para dispositivos móveis, não estivesse familiarizado com o React e confuso com JavaScript, vi isso como uma oportunidade de me transformar em um desenvolvedor de front-end sólido (o que quer que isso signifique atualmente).
Com o passar do tempo, me vi valorizando mais essas tecnologias, pela elegância e clareza com que abordam problemas complexos. Meu desejo de entender mais essas tecnologias cresceu e me vi gastando muito do meu tempo livre descobrindo os mistérios que se encontravam sob um nível de compreensão superficial. Descobri o poder das funções de primeira classe, closures, e virtual DOM, e tentei aproveitar ao máximo para utilizá-los em nossa base de código de maneira responsável. Comecei a me sentir em crescimento, não por causa do tamanho do cliente ou da senioridade da equipe de engenharia, mas por causa do meu interesse genuíno no trabalho e meu impacto nos aplicativos.
Modelo de Crescimento v0.2
Crescimento Profissional = Nível de Contribuição + Interesse no Trabalho
Enquanto isso, o desenvolvimento dos aplicativos móveis da DN foi aprimorado. Começamos a nos mover muito rápido, lançando novos recursos a cada semana. A DN não nos impôs restrições burocráticas, e minhas lideranças técnicas me deram muita liberdade. Isso significava que eu gastava meu tempo resolvendo problemas e fornecendo recursos, em vez de manejar as ineficiências organizacionais.Modelo de Crescimento v0.3
Crescimento Profissional = Nível de Contribuição + Interesse no Trabalho + Velocidade
No meu tempo na DN, tive a sorte de fazer parte de uma equipe que acredita em uma forte cultura de engenharia. Isso pode significar muitas coisas, mas acho que está bem resumido nesse artigo do Insights de Evan Bottcher. Minha equipe valoriza práticas como programação em pares, desenvolvimento orientado a testes (TDD), integração contínua e refatoração. Estas não são apenas palavras de ordem para nós; nós as incorporamos ao nosso dia a dia como pessoas engenheiras.Ao mesmo tempo, acredito que as regras de acompanhamento não-crítico são perigosas, e é por isso que aprecio o fato de falarmos e debatermos por que essas práticas são importantes. Como podemos, como defensores da qualidade, entregar nossos valores se não examinarmos o que a qualidade realmente significa? O TDD está nos dando um feedback rápido nessa situação específica? Realmente faz sentido se concentrar tanto em testes unitários de nossos componentes React? Por que devemos adotar um estilo mais funcional de programação?
Não, nós nem sempre escrevemos nossos testes primeiro, as implantações ainda me estressam, e acumulamos muitas dívidas de tecnologia devido a decisões de design menos que ideais. No entanto, entendemos a importância da excelência em software e tentamos ao máximo manter práticas de engenharia sólidas, sendo ao mesmo tempo realistas quanto aos recursos que temos.
Seguir essas práticas me ajudou a perceber por que elas são tão importantes e me tornou um engenheiro melhor. Ter colegas de equipe que valorizam a qualidade — e pensar criticamente sobre o que isso significa — mudou completamente a maneira como penso em escrever código. E como nossa equipe de engenharia é tão pequena e autônoma, a cultura de engenharia da Thoughtworks que trazemos para a DN está quase inteiramente sob nosso controle.
Modelo de Crescimento v0.4
Crescimento Profissional = Nível de Contribuição + Interesse no Trabalho + Velocidade + Cultura de Engenharia
Uma das coisas que eu não gosto na indústria de tecnologia é o complexo de superioridade machista e autoritário que tantos desenvolvedores parecem ter. Ter membros da equipe assim pode realmente prejudicar a autoestima, especialmente para pessoas que experimentam aspectos da síndrome do impostor.Eu não posso expressar o quão importante tem sido poder fazer perguntas, admitir ignorância e mostrar vulnerabilidade. Quando comecei na DN, fiquei impressionado com o número de conceitos de JavaScript e React que não entendia. Passei muito tempo pessoal me aperfeiçoando, mas alguns conceitos foram realmente difíceis de entender.
Felizmente, eu tinha uma pessoa desenvolvedora front-end ultra-talentosa como um treinadora que estava feliz em responder minhas perguntas e me fornecer apoio para continuar meu aprendizado. Eu nunca me senti julgado por minhas lacunas no conhecimento, o que me permitiu ser aberto e honesto sobre onde eu estava — e onde eu queria estar. Esse suporte não apenas acelerou meu crescimento em JavaScript e React, mas também abriu caminhos de aprendizado impulsionados por interesse genuíno.
Modelo de Crescrimento v0.5
Crescimento Profissional = Nível de Contribuição + Interesse no Trabalho + Velocidade + Cultura de Engenharia + Suporte
DN é uma plataforma de notícias suportada pelo público, o que significa que sua independência editorial nunca é comprometida por interesses corporativos ou governamentais. Encorajo todo mundo a assistir o show em algum momento. Jornalistas da DN entrevistam especialistas sobre eventos atuais, bem como muitas pessoas cujas experiências muitas vezes não são ouvidas.
No clima político de hoje, as principais notícias muitas vezes parecem entretenimento, com os mesmos comentaristas políticos falando sobre as experiências de outros. Dados os laços econômicos da mídia corporativa, discernir o que é factual e o que não é se tornou cada vez mais difícil. É por isso que ter mídia independente é fundamental para uma democracia real.
Com todas as coisas ridículas que aconteceram em 2018, significou para mim o mundo que eu poderia aparecer para trabalhar todos os dias em uma organização com a qual eu me sinto alinhada, escrevendo código para um produto em que acredito.
Modelo de Crescimento v1.0
Crescimento Profissional = Nível de Contribuição + Interesse no Trabalho + Velocidade + Cultura de Engenharia + Suporte + Crença no Produto
Este é o meu modelo atual, e é assim que planejo avaliar oportunidades futuras. À medida que progrido na carreira e trabalho com diferentes organizações e equipes, tenho certeza de que esse modelo vai mudar. A importância de cada atributo evoluirá e novos (agora negligenciados ou ocultos) emergirão.Esses modelos mentais me ajudam a determinar o que realmente valorizo. Seja como eu decido passar meu fim de semana, como eu controlo meu dinheiro ou apenas tentando descobrir o que me faz feliz, acho valioso isolar atributos significativos. O problema ocorre quando faço suposições sobre atributos que não são verdadeiros. O que funciona para outra pessoa nem sempre funciona para mim, e o que fez sentido para mim há quatro anos não pode mais fazer, porque sou uma pessoa diferente agora. É por isso que é importante questionar continuamente nossas crenças e processos de tomada de decisão.
E, finalmente, uma dica rápida: aguarde o novo Democracy Now! Aplicativos para Android a iOS estarão disponíveis em breve.
Aviso: As afirmações e opiniões expressas neste artigo são de responsabilidade de quem o assina, e não necessariamente refletem as posições da Thoughtworks.