Vamos encarar. A experiência do desenvolvedor é uma palavra da moda. Isso significa que se fala muito em termos gerais, com muito pouca substância ou definição.
É por isso que fui inspirado a iniciar o - uma iniciativa para trazer mais textura e definição para a discussão da experiência do desenvolvedor. Em cada “episódio”, faço 10 perguntas a um líder do setor sobre a experiência do desenvolvedor para obter suas percepções e opiniões sobre esses tópicos específicos. Em seguida, publico essas discussões e as compartilho com a comunidade.
Com quase 20 entrevistas em meu currículo, agora há material suficiente para começar a agregá-lo de maneiras úteis e descobrir algumas tendências interessantes e temas recorrentes.
Este é o melhor guia para criar uma grande cultura de engenharia. Uma das perguntas que fiz nas entrevistas do Projeto DevX é “quais são os principais ingredientes para uma grande cultura de engenharia”.
É uma pergunta importante porque, no final das contas, tudo na sua empresa será afetado - para o bem ou para o mal - pela cultura que você criou. Como disse : “a cultura come a estratégia no café da manhã, porque a cultura permite que suas equipes ajam de maneiras previsíveis em circunstâncias imprevisíveis”.
Então, o que é cultura exatamente? Boa pergunta. Deliberadamente, deixei essa parte aberta à interpretação, e as respostas foram igualmente abrangentes. Alguns entrevistados se concentraram nos próprios desenvolvedores. Outros se concentraram nas empresas e na política da empresa. Alguns deram conselhos técnicos ou profissionais, outros deram dicas de relacionamento interpessoal e comunicação.
E este é o primeiro e talvez o mais importante ponto de todos. Uma cultura de engenharia verdadeiramente excelente precisa equilibrar vários itens em paralelo.
As especificidades podem variar por organização e por situação, mas o denominador comum é a necessidade de uma abordagem de construção de cultura tridimensional.
Então, espero que você goste deste guia de experiência do desenvolvedor para construir uma grande cultura de engenharia, coletado e adaptado das entrevistas do The DevX Project.
Vários recursos do DevX Project ecoaram a importância de criar uma cultura de liberdade e autonomia para os desenvolvedores.
Como disse da : “Acho que realmente se apóia no que Dan pink fala em seu livro “Drive - A surpreendente verdade sobre o que nos motiva”. Ele apresenta autonomia, domínio e propósito como fatores-chave de motivação. Então, quando você dá aos desenvolvedores a autonomia para dominar seu ofício, eles também desenvolvem um propósito que cria uma grande cultura... E não force ferramentas para os engenheiros. Acho que você deveria deixar seus engenheiros escolherem suas próprias ferramentas. Capacite-os com autonomia e propriedade.”
acrescentou: “O mais importante para mim é a liberdade de tomar decisões. Muitas empresas, acredito, estão tratando os engenheiros como se fossem crianças - segurando suas mãos, dizendo-lhes o que fazer. Agora você pode atravessar a rua, agora você precisa parar. Agora você move para a esquerda agora você vai para a direita. Para mim, isso pode ser realmente esmagador para qualquer criatividade e capacidade de aprendizado entre os desenvolvedores. Isso é devastador porque acredito que a maior parte do nosso trabalho como desenvolvedores é pensar e descobrir as coisas. Escrever código é fácil. Uma vez que você saiba o que escrever e supondo que tenha pelo menos um entendimento básico de sintaxe e coisas assim, escrever código é a parte mais fácil do processo. Descobrir o que escrever e como escrever - essa é a parte complexa. E se não dermos liberdade suficiente para as pessoas descobrirem essas coisas, acabamos com os resultados que não queríamos - as coisas não funcionam porque os desenvolvedores eram apenas robôs que faziam exatamente o que você mandava, sem qualquer pensamento ou criatividade própria”.
Os benefícios da autonomia do desenvolvedor não se limitam a decisões técnicas. Também pode ajudar a promover melhores relacionamentos interpessoais entre os membros da equipe. Seif Lotfy enfatizou os benefícios de criar relacionamentos autênticos e explicou que “Além do relacionamento superprofissional, dê à equipe a liberdade de se movimentar e ser eles mesmos e apreciar uns aos outros por quem eles são”.
Autonomia significa permitir que as pessoas sejam as melhores e autênticas versões de si mesmas. E quando isso acontece, muitas vezes traz resultados positivos para a equipe e para a empresa.
Também ajuda, como disse , se você puder “contratar pessoas inteligentes com quem é divertido trabalhar”.
Dar autonomia aos desenvolvedores se encaixa com a necessidade de os desenvolvedores assumirem propriedade proativa e responsabilidade por seu trabalho.
De acordo com Liran Haimovitch, propriedade e responsabilidade são dois dos elementos mais importantes em qualquer grande cultura.
enfatizou que essa propriedade deve ser “propriedade proativa”: “Item nº 9 na lista de da Amazon - “um viés para a ação”. Eu sinto que isso é importante neste contexto, porque muitas coisas não são feitas se você não as assumir proativamente. Portanto, isso é realmente importante para uma cultura de engenharia saudável.”
Seif Lotfy refletiu que é importante que os desenvolvedores se comuniquem e pergunte por quê: “Certifique-se de entender o pensamento que foi usado nas abordagens e decisões de outras pessoas. Dessa forma, mesmo discordando, você pode levar tudo em consideração e tentar encontrar o melhor caminho possível a seguir.
acrescentou que isso não deveria depender de alguém pedindo uma explicação. Você deve construir uma cultura que ofereça o “porquê” desde o início:
“Compartilhe seu conhecimento e explique por que você optou por x e não por y. Dessa forma, as pessoas podem aprender com você e adotar suas melhores práticas e sua linha de pensamento única no dia a dia também.”
Um valor semelhante e não menos importante é a transparência.
Amir Shevat explicou: “A transparência é muito importante. Isso significa criar um ambiente no qual os engenheiros possam ter uma visão geral - para onde estamos indo, por que estamos fazendo o que estamos fazendo. Criar esse tipo de ambiente para desenvolvedores permitirá que eles criem códigos melhores.”
Quando a comunicação e a transparência são mantidas adequadamente, você também ganha outro ingrediente chave da cultura em “Integridade”. Como disse Amir: “Se você acha que algo não está certo, fale. Os processos podem e devem mudar e evoluir para melhor.”
da Wilco, ofereceu uma perspectiva semelhante: “A chave é sempre pensar no que podemos melhorar: em nosso sistema, processos, produto, estilo de código, ferramentas de monitoramento e outros. Existem inúmeros aspectos na construção de um sistema e nunca será perfeito, mas devemos sempre procurar maneiras de melhorar.” É assim que a comunicação, a transparência e a integridade se manifestam em uma boa cultura de engenharia.
Swyx e sugeriram que um feedback sem culpa e uma cultura post-mortem são críticos.
Nas palavras de Swyx: “Quando você envia coisas e mantém as coisas em produção, lembre-se de que as coisas sempre quebrarão. Portanto, ter uma cultura pós-morte sem culpa também é importante.”
Isso também foi repetido por Amir Shevat, que acrescentou que todos na equipe devem estar abertos para receber feedback: “Como regra geral, os engenheiros que estão abertos ao feedback uns dos outros são muito melhores em seu trabalho.
E como você pode alcançar uma cultura de culpa zero? De acordo com Seif Lotfy, ele começa trabalhando em suas suposições subjacentes: “É importante desenvolver uma suposição subjacente de que todos têm boas intenções. Isso é particularmente importante com equipes distribuídas que estão em fusos horários e horários diferentes.”
Se todos assumirem que todos os outros têm boas intenções e cada membro da equipe estiver aberto a feedback sem culpa - a equipe estará bem posicionada para fazer as coisas com eficácia.
da colocou desta forma: “Uma grande cultura é baseada em confiança e compreensão. Ambos são construídos ao longo do tempo com base em experiências compartilhadas.”
Não surpreendentemente, a colaboração como um ingrediente-chave para a cultura de engenharia foi uma mensagem que ecoou em várias de nossas entrevistas.
Como disse , do : “Você precisa colaborar com outras pessoas para encontrar as melhores soluções e garantir que o objetivo final seja alcançado”.
E Amir Shevat explicou: “Acho que uma equipe de pessoas que colaboram sempre superará uma equipe menos colaborativa, mesmo quando essa equipe menos colaborativa estiver repleta de engenheiros individuais “incríveis”. Eu pessoalmente fiz parte de equipes de engenharia que não eram tão colaborativas. Eles tinham engenheiros incríveis, incríveis, mas eles realmente não compartilhavam o que estavam fazendo. É muito mais benéfico quando as pessoas começam a colaborar, compartilhar, fornecer feedback e falar sobre as interfaces entre o que cada pessoa está trabalhando.”
Paixão pelo artesanato e pelo produto
da , disse: “Acho que a melhor coisa que uma equipe pode ter é uma paixão genuína pelo produto que está construindo. Tendo trabalhado em projetos nos quais investi e não investi, a diferença no moral (e, portanto, na produção) é incrível. Quando os engenheiros realmente se preocupam com o que estão fazendo, acho que a cultura melhora dez vezes. Contrate pessoas inteligentes que queiram trabalhar em seu projeto.”
Amir Shevat enfatizou a importância do profissionalismo na criação de uma grande cultura de engenharia: “Sempre pense nas necessidades da empresa. Isso deve se aplicar a todos os aspectos do seu trabalho… E embora ser técnico seja ótimo e até necessário, treinar sua mentalidade de negócios realmente ajudaria a criar uma cultura em que a preferência não é dada apenas às soluções mais técnicas, mas sim às soluções que ajudam a alcançar o melhor resultado para a empresa.”
da concordou: “Para mim, os principais ingredientes para uma grande cultura de engenharia são: Pessoas legais. Sem muito ego. Profissionalismo e orgulho no ofício. Esses elementos estabelecem um ambiente criativo e, sem esses ingredientes, é difícil criar uma cultura positiva e produtiva.”
De uma perspectiva mais técnica, Swyx aconselhou que as equipes enfatizassem sua documentação: “Uma boa documentação ou cultura de documentação de design também é muito importante. Em outras palavras, antes de implementar algo, você deve obviamente tentar projetá-lo, pensar nas proposições e concordar com todos sobre as coisas de alto nível. Mas uma boa cultura leva isso um passo adiante. Isso significa que todo mundo realmente lê o documento quando o recebe. E isso é bem raro. Portanto, uma boa cultura de documentação significa boa redação e também boa leitura, para que você detecte problemas de design e expectativas incompatíveis mais cedo ou mais tarde.”
Amir Shevat destacou o valor de uma cadência de entrega saudável: “Ter uma cadência de entrega saudável também é muito importante para a cultura de engenharia, porque quando uma equipe continua a entregar, ela é capaz de colher regularmente os benefícios da felicidade e satisfação de seu trabalho.”
Barak Shoester também encorajou as equipes a “otimizar a velocidade da iteração”.
E Jason Bosco disse: “Alguns dos principais ingredientes para mim são: Reduzir o tempo que leva entre um engenheiro escrever o código e os usuários usá-lo, combinado com reversões sem esforço…”
Embora isso tenha aparecido de uma forma ou de outra em muitas de nossas entrevistas, da e colocou bem: “A humildade está em alta para mim e isso não é apenas para a engenharia, mas para as culturas de trabalho em geral. Os membros da equipe devem estar dispostos e prontos para ajudar os outros, criando um ambiente onde ninguém sinta que uma pergunta é estúpida demais para ser feita.”
Acho que há muitas respostas clichês que eu poderia dar aqui e, até certo ponto, sinto que há muitos desenvolvedores mais experientes que poderiam responder melhor. Então, uma última coisa que vou apresentar é que, quando uma equipe é orientada para a missão, e toda essa equipe está cantando a mesma folha de hinos, coisas incríveis podem acontecer.
E nas palavras de Gil Tayar: “Para mim, os principais ingredientes para uma grande cultura de engenharia são: Pessoas legais. Sem muito ego. Profissionalismo e orgulho no ofício.”
Obviamente, um bom engenheiro precisa ter uma certa base de capacidade técnica. Mas, ao formar e gerenciar uma equipe, são esses fatores adicionais que garantirão que eles se mantenham em padrões elevados, permaneçam curiosos, permaneçam positivos e se esforcem continuamente para melhorar.
E é disso que se trata uma grande cultura de engenharia.
Gosta do que vê aqui? Quer ser destaque? Confira nosso para outros ótimos recursos e inscreva-se para compartilhar sua própria experiência de desenvolvedor.
Publicado também .