Do silício ao software: uma viagem de descoberta e liderança em DevOps

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Cansado do trabalho isolado e dos prazos falhados? A nossa entrevista com David Brooks, da Copado, destaca o poder da colaboração para alcançar o sucesso em DevOps.

CTO interview with David Brooks discussing the journey of DevOps discovery and leadership Featured Image

Embora o DevOps seja amplamente reconhecido por simplificar a entrega de software e aumentar a qualidade, criar uma equipa verdadeiramente eficaz vai além da implementação de uma única ferramenta. É uma combinação estratégica dos elementos certos: cultura, processos, colaboração e tecnologia. Este artigo explora os componentes essenciais de uma equipa DevOps de alto desempenho e apresenta ideias sobre como as organizações podem integrá-los para obter resultados ideais.

Para esta sessão de perguntas e respostas, falámos com David Brooks, Vice-Presidente Sénior de Evangelismo na Copado. Com 35 anos de experiência no Silicon Valley, juntou-se à Copado em 2018 para criar a área de Gestão de Produto e liderou a equipa de produto durante quatro anos. Brooks juntou-se à Salesforce.com em 2005 para lançar a AppExchange. Como Vice-Presidente de Produto, liderou as equipas que desenvolveram a plataforma Force.com durante os seus nove anos na Salesforce.

Muito obrigado por falar connosco! Antes de começarmos, pode partilhar a sua história? 

Obtive o meu mestrado em Engenharia Eletrotécnica pela Auburn University em 1984. O meu projeto de tese foi um sistema operativo multiprocessador tolerante a falhas para a defesa contra mísseis balísticos. 

Mudei-me para o Silicon Valley, onde trabalhei para oito empresas em fase de arranque, tendo três delas sido adquiridas com sucesso até agora. Também me juntei à Salesforce pouco depois de esta abrir o capital em 2005. Liderei as equipas que lançaram a AppExchange e, posteriormente, a plataforma Salesforce. Desempenhei sobretudo funções de liderança sénior em engenharia e gestão de produto, embora tenha sido fundador e diretor executivo de duas empresas. 

Nenhum de nós consegue alcançar o sucesso sem alguma ajuda ao longo do caminho. Há alguma pessoa em particular que o tenha ajudado a chegar onde está?

Há duas pessoas importantes. Chuck Comiso era o diretor executivo da Link Technologies, onde eu geria o desenvolvimento de produto. Era um gestor da HP à moda antiga. O Chuck ensinou-me bastante sobre a gestão de pessoas. Ted Elliott era o diretor executivo da JobScience e é atualmente o diretor executivo da Copado. O Ted ensinou-me a concentrar-me no que é importante e o que é necessário para fazer crescer uma empresa em fase de arranque.

Que três pontos fortes, competências ou características o ajudaram a chegar a este ponto da sua carreira? Como podem os outros desenvolver ativamente estas áreas em si próprios? 

Curiosidade, comunicação e criatividade. Sou naturalmente curioso e um aprendiz ao longo da vida, um dom que muito valorizo. Também tenho a capacidade de comunicar com as pessoas de uma forma que estas conseguem compreender. Falo chinês e aprendi a ser paciente com pessoas que falam inglês como segunda língua. Isto também se traduz na capacidade de explicar ideias técnicas a pessoas não técnicas.

As pessoas estão muitas vezes tão ocupadas a planear o que querem dizer a seguir que perdem a questão central de uma conversa. Por fim, como tenho interesses muito diversificados, consigo juntar ideias de formas inovadoras. Assim, a minha criatividade consiste mais na capacidade de sintetizar muita informação numa nova aplicação.

Que competências ainda está a tentar desenvolver?

Terá de ser a comunicação. Recentemente, assumi uma nova função como Evangelista Técnico, que exige que melhore a minha capacidade de comunicar as ideias fundamentais que distinguem a Copado. Também estou a liderar o nosso trabalho na China, por isso o meu chinês será posto à prova.

Falemos sobre ter uma equipa DevOps bem-sucedida. Que objetivos fundamentais pode uma equipa DevOps identificar para uma jornada de transformação digital?

Creio que a clareza e o respeito são fundamentais. Esclarecer o que precisa de ser feito é uma questão de prioridades e define claramente as histórias de utilizador e as funcionalidades individuais. Um excelente gestor de produto deve ser capaz de comunicar o “quê” e o “porquê”.

Começa por compreender profundamente o “porquê” e, em seguida, garantir que as equipas de desenvolvimento e de testes também o compreendem. Deve existir respeito mútuo entre os membros da equipa, em que cada um acredita que as suas opiniões são valorizadas e que as suas preocupações são ouvidas. Mas, depois, cada membro da equipa tem de cumprir as suas responsabilidades e conquistar essa confiança em cada sprint. 

Existem desafios ou armadilhas comuns que as equipas DevOps devam ter em consideração?

Demasiadas vezes, um responsável pelo produto faz um trabalho deficiente a compreender as necessidades dos utilizadores — não aquilo que estes pediram, mas aquilo de que precisam. Sempre me ensinaram a perguntar “porquê?” cinco vezes. Depois, compreenderá o que é verdadeiramente necessário e conseguirá comunicar isso ao resto da equipa.

O outro desafio surge quando os membros da equipa não são sinceros relativamente às discordâncias. Já vi programadores dizerem a um gestor de produto que algo não era tecnicamente possível apenas porque não achavam que fosse a decisão certa. Cada membro da equipa deve sentir que a sua opinião é valorizada e manifestar-se quando discorda. Em última análise, o líder da equipa tem de tomar uma decisão e o resto da equipa precisa de a apoiar.

Como podem a colaboração e a comunicação eficazes entre os membros da equipa aumentar a produtividade e o sucesso de uma equipa DevOps e que práticas podem facilitá-las?

É extremamente importante uma comunicação franca e aberta, na qual a opinião de todos seja valorizada e todos tenham a oportunidade de ser ouvidos. Compreender o porquê também é importante. Se um membro da equipa identificar uma forma melhor de cumprir o requisito, a equipa deve estar aberta à ideia. Isto resulta frequentemente numa solução melhor, entregue em menos tempo.

Que papel desempenha a CI/CD no DevOps e quais são as melhores práticas para implementar pipelines de CI/CD que garantam um processo de lançamento de software contínuo e fiável?

CI/CD consiste em lançar muitas pequenas alterações. Começa por definir Histórias de Utilizador de forma a que possam ser concretizadas em horas, não em dias, e lançadas para a fase seguinte sem causar problemas. Os testes funcionais e de segurança automatizados também são fundamentais.

As equipas devem adotar o desenvolvimento orientado por testes, para que a funcionalidade possa avançar rapidamente ao longo do pipeline. Devem ser estabelecidos controlos de qualidade em cada fase, para garantir que uma alteração não pode avançar enquanto não estiver concluída. A implementação de CI/CD verdadeiro em produção não é prática em algumas indústrias fortemente regulamentadas, mas isso não deve impedir a sua aplicação em todas as fases anteriores à produção.

De que forma a promoção de uma cultura e mentalidade DevOps contribui para o sucesso geral de uma equipa e que estratégias podem as organizações utilizar para promover esta cultura entre as suas equipas de desenvolvimento e operações?

Uma mentalidade DevOps significa que todos os membros da equipa têm o objetivo comum de entregar trabalho de qualidade até à produção. Os programadores não podem pensar que o seu trabalho termina quando enviam alterações para o repositório. A qualidade não é responsabilidade de uma só pessoa; é da responsabilidade de todos os membros da equipa. Isto, combinado com confiança e abertura à melhoria contínua, torna a equipa bem-sucedida.

Quais são os componentes essenciais de uma equipa DevOps bem-sucedida? 

1 . Confiança mútua—No início da minha carreira, trabalhei numa equipa em que os membros não confiavam plenamente uns nos outros. Questionavam constantemente as decisões dos outros e faziam alterações secretamente para “corrigir” problemas. Isto tornava o desenvolvimento mais lento e o trabalho na equipa muito desagradável. 

2 . Compromisso com os objetivos da equipa - O trabalho em equipa eficaz prospera com objetivos partilhados. Na minha experiência, as equipas mais bem-sucedidas vão além das conquistas individuais. Testemunhei programadores seniores que, depois de concluírem rapidamente as suas tarefas, ofereciam orientação e apoio aos programadores júnior. Este espírito de colaboração estendia-se ainda mais, com os programadores a ajudarem os engenheiros de testes a concluir a automatização dos testes. Como resultado, esta equipa cumpria consistentemente os seus compromissos e mantinha um ambiente de trabalho positivo

3 . Comunicação clara - Pode haver muito tempo e energia desperdiçados quando a equipa não comunica bem. Isto começa com uma compreensão adequada dos objetivos. Quando comecei a trabalhar com a metodologia ágil em 2006, achava que as reuniões de planeamento do sprint eram demasiado longas e que as reuniões diárias de acompanhamento eram ridículas. Não ajudava o facto de ter de usar a imagem de um galo durante a reunião para me lembrar de que era um observador e não podia falar.

Em retrospetiva, compreendo a importância de manter essas reuniões curtas, mas perderam-se oportunidades para esclarecer questões. Mais tarde na minha carreira, utilizávamos as reuniões diárias de acompanhamento para esclarecer dúvidas. Não queremos chegar ao fim do sprint apenas para descobrir que construímos algo incorreto.

4 . Melhoria contínua - Não há duas equipas iguais e nenhum processo único funcionará para todas as equipas. O movimento da Produção Lean deu aos trabalhadores de uma linha de montagem autonomia para alterarem o processo e torná-lo mais eficiente. Realizavam experiências e determinavam se as alterações tinham melhorado ou piorado as coisas. O mesmo se aplica aos processos de desenvolvimento de software. A equipa deve medir os resultados utilizando ferramentas como o Mapeamento do Fluxo de Valor para compreender os problemas reais e, depois, estar disposta a alterar o processo para um que faça sentido e continue a cumprir as regras de conformidade da empresa.

5 . Espaço seguro para novas ideias - A única forma de conseguir que todos os membros da equipa partilhem as suas ideias é fazer com que se sintam seguros ao fazê-lo. Não existem perguntas ou ideias estúpidas. Muitas vezes, uma ideia parecerá impossível de implementar, mas, se questionar práticas antigas, descobrirá que ninguém sabe por que motivo foram implementadas. A pior resposta que alguma vez ouvi foi: “Porque sempre fizemos assim.” A necessidade de melhoria contínua significa que é preciso estar aberto a novas formas de pensar. Pode rejeitar 90% das novas ideias, mas esses 10% podem ter um impacto significativo.

Ferramentas de monitorização DevOps para ajudar as equipas

Que tendências emergentes prevê no panorama DevOps que poderão ter um impacto significativo nas estratégias de transformação digital no futuro?

IA generativa, sem dúvida. A utilização de produtos Copilot para gerar código e scripts de testes aumentará significativamente a produtividade. Mas é necessário começar com um bom conjunto de requisitos, pelo que assistiremos a melhorias consideráveis nas ferramentas de apoio ao planeamento.

A maioria dos nossos esforços futuros estará concentrada em garantir que fazemos as coisas certas e compreendemos o impacto e as dependências. A IA generativa facilitará a documentação de uma versão e elevará a nossa capacidade de apoiar os utilizadores finais, gerando serviços de ajuda em tempo real e atualizados de acordo com o estado atual das aplicações.

Se pudesse inspirar um movimento que fizesse o maior bem possível ao maior número de pessoas, qual seria? 

Uau! Penso que tudo se resume a alguns princípios bastante básicos. Trate os outros como gostaria de ser tratado, ou seja, respeitem-se mutuamente. Assuma a responsabilidade pelos seus compromissos e cumpra o que promete, ou seja, tenha integridade. Concentre-se no sucesso das partes interessadas; ajude-as a ter sucesso e conquiste a sua confiança.

Principais conclusões

A construção de uma equipa de DevOps de elevado desempenho exige um esforço deliberado e contínuo. Ao dar prioridade aos principais componentes — cultura, processos, colaboração e tecnologia — as organizações podem desbloquear todo o potencial do DevOps.

  • Avalie o seu estado atual e identifique áreas a melhorar.
  • Invista em formação e workshops para promover uma cultura de DevOps colaborativa.
  • Implemente ferramentas e automatize processos para simplificar os fluxos de trabalho.
  • Meça continuamente o progresso e adapte a sua abordagem com base nos resultados.

Para obter mais entrevistas e informações sobre DevOps, subscreva a newsletter do The CTO Club.

Katie Sanders
As a data-driven content strategist, editor, writer, and community steward, Katie helps technical leaders win at work. Her 15 years of experience in the tech space makes her well-rounded to provide technical audiences with first-hand operating wisdom so senior tech leaders can get clarity. Tech leaders want to learn from peers who’ve been there. Katie surfaces hard-won lessons that help leaders scale systems, teams, and strategy in the face of disruption. Katie is an Executive Editor at Black & White Zebra. She nurtures a large and diverse community of technical experts and writers, and she knows that a thriving community doesn't grow without thoughtfulness, advocacy, and intention. Interested in being reviewed? Find out more here.
Follow the author: