Uma abordagem de desenvolvimento de software centrada em quem desenvolve
18 de fevereiro de 2022
0 minutos de leituraNos últimos anos, a “ideia de que toda empresa é uma empresa de tecnologia [marca] uma mudança fundamental no nosso setor” (Suzie Prince, diretora de produto de DevOps da Atlassian). O enorme protagonismo do desenvolvimento como ofício ampliou o público e deu muito mais voz à perspectiva de quem desenvolve. Essa transição foi discutida em várias palestras da SnykCon no ano passado — e trouxe novos insights sobre como os desenvolvedores transformaram o setor e criaram uma abordagem nova e melhor para o desenvolvimento de software.
O que os desenvolvedores precisam da organização
As ferramentas e a cultura da empresa influenciam muito nossa produtividade e nossa forma de trabalhar. Quando temos autonomia, aumentam o investimento e a motivação da equipe. O programa de pesquisa State of DevOps da DORA (DevOps Research and Assessment) concluiu que “organizações transformadoras que oferecem mais liberdade de escolha aos desenvolvedores têm, de fato, um desempenho melhor”. Ninguém conhece nossas necessidades melhor do que nós. Por isso, é fundamental dar aos desenvolvedores mais opções de ferramentas e estruturas de equipe com as quais trabalham no dia a dia.
As conversas da SnykCon 2021 sobre a abordagem e a autonomia dos desenvolvedores se basearam em três princípios.
Os desenvolvedores precisam de ferramentas que simplifiquem seu trabalho.
Os desenvolvedores precisam de integração perfeita com outras ferramentas e os fluxos de trabalho que já usam.
A cultura da empresa deve dar autonomia para que eles assumam a responsabilidade pelo próprio trabalho.
Ferramentas que facilitam o trabalho
Na sessão da SnykCon com Gareth Rushgrove (vice-presidente de produto da Snyk), Suzie Prince (diretora de produto de DevOps da Atlassian) começou explicando que os desenvolvedores querem ferramentas que “permitam trabalhar com eficiência e alcançar bons resultados no dia a dia”. Muitas vezes, isso significa automatizar o máximo possível para reduzir o esforço em tarefas demoradas e repetitivas. Rushgrove, que também já foi desenvolvedor, resumiu: os desenvolvedores procuram “a oportunidade de usar coisas [que sejam] mais fáceis”. Em meio a tantas tarefas sob sua responsabilidade, devemos priorizar ferramentas fáceis de usar e estratégias que simplifiquem o trabalho do dia a dia.
Esse princípio vale tanto para a segurança de aplicações quanto para o desenvolvimento. Para implementar a segurança desde o início do ciclo de desenvolvimento e incentivar os desenvolvedores a adotar práticas de codificação segura, precisamos de ferramentas que atendam às suas necessidades e simplifiquem o aprendizado sobre segurança. Ari Kalfus (líder de segurança de aplicações da Rally Health) abordou o tema em sua sessão da SnykCon sobre insights de segurança que levam à ação. A equipe dele usa o Conftest, do Open Policy Agent, para testar dados de configuração. Eles criaram mensagens de erro personalizadas no Conftest para que os desenvolvedores recebessem orientações práticas sobre o motivo da falha no teste. Kalfus orienta a equipe a “criar a política e depois adicionar uma mensagem que explique aos desenvolvedores exatamente o que está errado na PR e o que precisam fazer para corrigir”. “Se você não orienta os desenvolvedores, não chegou nem à metade do caminho” para dar o suporte necessário (Kalfus).

Ferramentas com integração perfeita
Não há duas equipes de desenvolvimento que trabalhem da mesma forma. Mesmo dentro de uma organização, cada equipe tem seus próprios métodos e um ecossistema de ferramentas adaptado às tarefas específicas que realiza. As ferramentas que conquistam os desenvolvedores são aquelas que melhor se encaixam em seus ecossistemas complexos.
Uma característica essencial de boas ferramentas é partir do princípio de que você usará outros softwares junto com elas. Como explicou Rushgrove, “os desenvolvedores não querem uma única ferramenta que faça tudo”. Quando têm liberdade para escolher suas ferramentas, a compatibilidade com uma ampla variedade de softwares é indispensável. Outra característica importante é a facilidade de adoção. “Se outra área da organização levar muito tempo para integrar [a ferramenta] ao seu fluxo de trabalho, você provavelmente vai escolher outra.” (Rushgrove) Uma abordagem centrada em quem desenvolve prioriza a conclusão do trabalho, em vez do esforço de preencher formulários e entrar em contato com outros departamentos para obter permissões e aprovações.

Liderança servidora e autonomia das equipes
À medida que o setor deixa para trás a arquitetura hierárquica, concebida por especialistas isolados, e adota uma arquitetura mais evolutiva, o processo de desenvolvimento se divide em partes menores — dando aos desenvolvedores mais espaço para criar e escolher. Essa mudança ganhou força com a adoção de metodologias ágeis, nas quais “as pessoas e suas interações são mais importantes” do que a hierarquia de gestão (Prince). No início do movimento DevOps, Rushgrove era desenvolvedor na área de operações. À medida que todas as empresas se tornaram empresas de tecnologia, ele viu “engenheiros, desenvolvedores, profissionais de operações e de software chegarem a cargos de gestão mais rápido do que imaginavam, esperavam ou até temiam. Eles trouxeram consigo a atitude de ‘quero que a gestão saia do meu caminho; então, como gestor, vou evitar atrapalhar’”. Essa mudança de mentalidade ajudou a derrubar barreiras de entrada em todo o setor e abriu caminho para que os desenvolvedores definissem suas próprias abordagens.
Esses princípios de gestão também se aplicam à parceria entre segurança e desenvolvimento. “Se você já viveu a realidade de fazer testes de segurança meses depois do desenvolvimento principal e viu quanto isso custava, fica motivado a agir mais cedo” (Prince). Essa é a força que impulsiona a implementação da segurança desde o início do ciclo de desenvolvimento. Com a descentralização e a crescente necessidade de entregar software com rapidez e segurança, aumentam também o acesso e as responsabilidades das equipes de desenvolvimento. Para proteger esse novo pipeline, a segurança também precisa seguir o caminho da descentralização. Como explicou Mike Milner (diretor global de tecnologia de segurança de aplicações da TrendMicro), “o papel principal da equipe de segurança é entender o que os desenvolvedores estão criando e quais novas ameaças podem surgir”. Ao passar a triagem diária para os desenvolvedores, damos a eles autonomia para estabelecer práticas de codificação segura e liberamos os profissionais de segurança para se concentrarem em “[dar] às equipes de desenvolvimento tempo para investigar, implementar uma correção adequada e realmente colocá-la em produção” (Milner).

Equipes de desenvolvimento autônomas
Para formar equipes de desenvolvimento com autonomia, é importante que a gestão “ouça o que a equipe está tentando alcançar e ajude seus integrantes a resolver o problema por conta própria” (Prince). Líderes, gestores e profissionais de segurança estão ali para ajudar as equipes de desenvolvimento a avançar, não para dar a resposta todas as vezes. Dar aos desenvolvedores a oportunidade de escolher ferramentas que atendam às suas necessidades e autonomia para orientar suas próprias equipes cria uma cultura de responsabilidade que ajuda a organização a manter a produtividade e a segurança por muitos anos.
Há muitas ferramentas no mercado que dizem colocar as necessidades dos desenvolvedores em primeiro lugar, mas nenhuma faz isso tão bem quanto a Snyk. Seja para proteger o código da sua aplicação em tempo real, buscar vulnerabilidades em dependências de código aberto e imagens de contêineres ou encontrar e corrigir configurações incorretas na nuvem, conte com a Snyk. Nossa inteligência de segurança de ponta ajuda você a desenvolver com rapidez e manter tudo seguro. Cadastre-se e proteja seus projetos gratuitamente hoje mesmo.
Comece a participar de desafios de Capture the Flag
Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.
