JA

A batalha pela velocidade é vencida na arena do DevOps

por Andrew AGERBAK, Jon Brock, Kaj Burchardi, Steven Alexander Kok e Arne Weiner
Artigo
Saved To Meu conteúdo salvo
Download Artigo
DevOps é fundamental para empresas com uso intensivo de software. Aqui estão cinco princípios para garantir que você possa atingir a velocidade necessária. Essa realidade levou muitas empresas a fazer investimentos substanciais em

For software-intensive businesses, the fast, effective delivery of new offerings is not only a driver of competitive advantage but also a critical capability for long-term survival. This reality has prompted many companies to make substantial investments in DevOps , que inclui práticas, processos e ferramentas para melhorar a qualidade e a velocidade do ciclo de vida de desenvolvimento e integração de software. Infelizmente, até agora, esses investimentos não costumam se traduzir em resultados tangíveis que satisfazem as partes interessadas e clientes internos.

The fast, effective delivery of new offerings is not only a driver of competitive advantage but also a critical capability for long-term survival.

Em nosso trabalho com clientes, vimos em primeira mão os desafios que as empresas enfrentam ao aproveitar ao máximo seus investimentos em DevOps-e como esses esforços para melhorar o modelo operacional de entrega de software podem ter sucesso. O principal problema é que a maioria das empresas possui muitos silos e transferências no ciclo de vida do desenvolvimento (entre clientes e usuários, negócios, desenvolvimento, infraestrutura e operações e segurança) para atingir a velocidade necessária em seu desenvolvimento e integração de software. Para ajudar as empresas a investir efetivamente no DevOps, superar esses desafios e melhorar a velocidade para alcançar os resultados, sintetizamos nossa experiência em cinco princípios -chave para o sucesso.

Make Speed the Primary Metric

Broadly speaking, most companies invest in DevOps for three main reasons: Velocidade (às vezes emoldurado como tempo para o mercado), custo e qualidade. Mas, em nossa experiência, a velocidade é o fator mais crítico, porque, se bem feito, os outros dois se seguirão. A velocidade aumentada traz consigo agilidade e eficiência aprimoradas (que juntas reduzem os custos) e a capacidade de iterar e melhorar rapidamente (o que também aumenta a qualidade, desde que você tenha os processos de teste e feedback corretos). Uma definição melhor incorpora o tempo necessário para alcançar os resultados. Existem três princípios principais de velocidade:

Speed, or time to market, is sometimes too narrowly defined as time to deployment (meaning the time it takes to deploy a new feature in the market). A better definition incorporates the time needed to achieve outcomes. There are three core tenets of speed:

To leverage these tenets and improve cycle time, companies must also provide tools and services that minimize waste during development (such as simplifying toolchains and adding self-serve DevOps capabilities). In addition, it’s critical to enable and incentivize developers with a variety of training and clear DevOps development practices (including test automation, proper branching strategy, and feature toggles). Moreover, companies should streamline the operating model to maximize the quality and speed of feature builds. All of this requires effective, outcome-oriented governance.

Focus on Continuous Learning and Improvement

DevOps should not be siloed in the Função de tecnologia . É um esforço de ponta a ponta que precisa incluir a participação tecnológica e da NOntech. O objetivo é melhorar os resultados dos negócios, integrando o aprendizado e a melhoria contínuos nas operações diárias em todas as funções e partes interessadas envolvidas no Ciclo de Vida de Desenvolvimento de Software (SDLC). A melhoria contínua é fundamental para qualquer empresa competir em velocidade e em escala - assim como uma equipe de pit de fórmula 1, deve melhorar constantemente o carro se a equipe tiver alguma esperança de vencer a corrida.

DevOps não deve ser isolado na função de tecnologia. É um esforço de ponta a ponta que precisa incluir a participação tecnológica e da NOntech.

Para aplicar aprendizado contínuo à agilidade, eficiência e qualidade, a empresa deve elevar a importância de certos objetivos e os principais resultados (OKRs):

Uma boa maneira de medir se o compromisso de uma empresa com o aprendizado e a melhoria contínua é adequado é estudar o orçamento. Em nossa experiência, 10% a 20% do orçamento geral da tecnologia deve ser alocado para a melhoria contínua da produtividade da entrega. Esses investimentos do DevOps precisam se concentrar em três áreas principais:

alcançar esse tipo de investimento focado, em nossa experiência, é muito desafiador se uma empresa ainda estiver trabalhando com um modelo de entrega centrado no projeto. Isso ocorre porque os projetos geralmente são financiados para o escopo, portanto, há um incentivo limitado para melhorar o modelo de entrega. Mas se as empresas não cometem o suficiente de seu orçamento de mudança para esses objetivos, não atingirão a velocidade prevista para o resultado necessário para competir no reino digital. As implicações são sentidas em toda parte.

Consider DevOps a Transformational Undertaking

DevOps done right is far more than a technology implementation involving processes and toolchains: it’s a transformational endeavor, involving the whole technology operation (and often the business), to improve the entire delivery model. The implications are felt far and wide.

Organization. A empresa deve decidir a melhor forma de apoiar e aumentar os recursos do DevOps. Isso significa determinar o que federar, certificando -se de que as equipes de desenvolvimento individuais tenham os recursos certos; E o que centralizar, garantindo que a função central tenha a capacidade de apoiar as equipes de desenvolvimento individuais, à medida que melhoram seus métodos de auto-serviço e auto-gerenciamento de seus ativos. O conceito -chave aqui é estabelecer o DevOps como uma plataforma, o que significa que as equipes centrais não são um serviço compartilhado. Em vez disso, eles se concentram na criação de recursos e serviços que as equipes de desenvolvimento individuais podem usar para aumentar sua produtividade (e, finalmente, o tempo do ciclo). Como resultado, o limite entre o desenvolvimento de aplicativos e as operações deve eventualmente quebrar e pertencer às equipes: “Você o constrói, você o executa; você o quebra, conserta -o.”

To a large extent, using DevOps to improve delivery productivity requires that companies manage the context of application development, management, deployment, and monitoring (instead of individual projects). By “context,” we mean all aspects that affect development, including management and leadership practices, the operating model, architectural guardrails, and tooling. Managing the context also allows for a more effective transfer of ownership and accountability so that it’s as close as possible to application development and operating teams, which in turn accelerates decision making—and fulfills the principles and promises of ágil.

Process. As empresas precisam simplificar sua estrutura de controle e governança para reduzir as transferências e pontos de contato ineficientes. Em vez de verificar e testar o código, os funcionários no ambiente DevOps devem gerenciar máquinas altamente automatizadas (que dependem de muitos ativos críticos de terceiros) que fornecem esses controles. Por exemplo, o modelo de engenharia de confiabilidade do site (SRE) possui regras claras, governança, práticas técnicas e operacionais para supervisionar a qualidade geral da pilha de tecnologia. (Veja a barra lateral, “Um banco global estabelece SRE”.) O desafio é gerenciar consistentemente os controles necessários em escala em uma pilha de aplicativos altamente fragmentada, incluindo qualidade geral (como modelos SRE), segurança (a “SEC” de DevSecops), bem como monitoramento contínuo da infraestrutura e aplicações vivas (AI para operações [AIOs], AIOs], para o Monitoring Continuous da Infraestrutura e Aplicações Livas (AI para operações [AII],

Um banco global estabelece SRE
O BCG trabalhou com um banco global para suportar uma função de engenharia de confiabilidade do site (SRE), estabelecendo várias equipes pequenas que poderiam aplicar engenharia de software a infraestrutura e problemas operacionais. As equipes de SRE usam engenheiros com experiência em software para realizar trabalhos historicamente realizados por grupos de gerenciamento de produção. falhas sistematicamente. Esses princípios ajudam as equipes do SRE e outras partes interessadas a simplificar seus esforços de gerenciamento de produção. Criticamente, o banco se comprometeu a investir nessas equipes e neste currículo para melhorar a confiabilidade a longo prazo.

The bank’s SRE teams, each with different types of infrastructure and development experience, interact with their environment—production, development groups, testing teams, users—while applying seven key principles: simplify and modularize, measure everything, degrade services gracefully, embrace risk, set service-level objectives, automate, and respond to failures systematically. These principles help the SRE teams and other stakeholders streamline their production management efforts.

To help embed SRE culture into the bank’s teams, BCG designed a curriculum that addressed two broad areas: the hard skills necessary to define how engineering teams design and interact with platforms, and the soft cultural skills required to embrace risk and break organizational silos. Critically, the bank committed to investing in these teams and this curriculum to improve reliability over the long term.

Applications and Infrastructure. As empresas precisam empurrar o desenvolvimento em uma pilha de tecnologia modular, pode ser implantada automaticamente e possui altos níveis de controles de qualidade automatizados (como os oferecidos pelos modernos provedores de nuvem de hoje). Isso requer forte coordenação e engajamento entre as equipes de desenvolvimento e operações para projetar e gerenciar a pilha de aplicativos e infraestrutura. As equipes de desenvolvimento assumem a responsabilidade de escolher e projetar a pilha, enquanto as equipes de operações se concentram mais em fornecer a pilha e seus elementos como uma capacidade de autoatendimento para as equipes de desenvolvimento.

Services and Capability Sourcing. É importante gerenciar a evolução de serviços de terceiros. Tomemos, por exemplo, quando uma empresa terceiriza a gestão da infraestrutura local ou suporte e manutenção de aplicativos. Nesses casos, a empresa e o parceiro de terceirização precisam desenvolver um plano para automatizar gradualmente esses serviços - e colocar os termos e incentivos contratuais para que isso aconteça, em vez de apenas espremê -los por custo. É também sobre dados. Orquestrar o fluxo de trabalho para gerenciar os pipelines de dados de IA complexos e aprendizado de máquina requer o mesmo rigor que o gerenciamento de código. Além disso, bons dados de teste são cruciais para garantir a eficácia do controle de qualidade em diferentes ambientes - incluindo a produção, as equipes de desenvolvimento, as equipes de teste e os usuários. Mas, em nossa experiência, os dados geralmente não recebem a atenção adequada nos esforços do DevOps focados no gerenciamento de configurações, na automação de testes e no desenvolvimento contínuo de software.

Don’t Leave Data Behind

DevOps is not just about code; it’s also about data. Orchestrating the workflow to manage complex AI and machine-learning data pipelines requires the same rigor as managing code. Moreover, good test data is crucial to ensure the effectiveness of quality control across different environments—including production, development teams, testing teams, and users. But in our experience, data often doesn’t get the proper attention in DevOps efforts focused on configuration management, testing automation, and continuous software development.

DevOps não é apenas sobre código; É também sobre dados.

É importante alinhar melhorias no gerenciamento de dados com os DevOps e os esforços de arquitetura para garantir melhorias de ponta a ponta na velocidade. (Por exemplo, mesmo ao escolher pacotes comerciais de software no exterior que usam suas próprias lojas de dados para operar, as empresas precisam controlar seus próprios dados e não permitir que o fornecedor se torne o repositório mestre para dados do cliente.) Sem esse alinhamento, é difícil gerenciar dados de teste em diferentes ambientes de forma consistente. E se as equipes de dados forem forçadas a resolver esses problemas separadamente, o modelo de entrega se fragmentará. Por exemplo, às vezes os desenvolvedores são incertos sobre quais dados precisam ser registrados para fins de monitoramento de desempenho. Sua resposta é frequentemente se tornar excessivamente cautelosa sobre quais dados registrar-em alguns casos, sobrecarregar os serviços e a rede, criando problemas de latência e potencialmente instabilidade. Parceiros

DevOps guardrails and practices also have an impact on data. For example, developers are sometimes uncertain about what data needs to be logged for performance-monitoring purposes. Their response is often to become overly cautious about what data to log—in some cases, overloading the services and network, creating latency and potentially instability issues.

This is why it’s essential to consider early on how the end-to-end stack (architecture choices, data management, and tools to manage the stack) will work throughout the development life cycle and into live production.

Invest in People and Partners

Existe uma escassez geral de fortes talentos de engenharia (especialmente com os desenvolvedores modernos de desenvolvedores e nuvem). Mesmo quando as empresas podem encontrar um bom candidato externo, raramente encontram alguém que entende profundamente seu contexto de negócios, história e como impulsionar mudanças holísticas no modelo operacional da empresa. Portanto, além de lutar pelo talento externo certo, as empresas devem investir nas pessoas que já trabalham para elas, concentrando -se em treinamento e empoderamento.

Em nossa experiência, ter boas práticas de DevOps atrai talentos, enquanto a falta de um SDLC eficaz pode impulsionar o atrito. Trabalhamos com um cliente em que os desenvolvedores viram seu código entrar em contato com apenas uma semana e outro cliente, onde levou um ano. Não é de surpreender que o primeiro tenha conseguido contratar e reter talentos com muito mais facilidade. Infelizmente, esses contratos geralmente são gerenciados principalmente por custo. As empresas continuam pressionando as margens de seus fornecedores, reduzindo os incentivos de seus parceiros para investir ou cunhar em melhorias no modelo. Por exemplo, um fornecedor que fornece serviços de teste não tem incentivo inerente para automatizar esses serviços. Da mesma forma, se um parceiro fornecer manutenção e suporte de aplicativos, é provável que ganhe mais dinheiro quando a pilha funcionar mal. E se um fornecedor contratado para executar a infraestrutura for pago com base no uso, não estará inclinado a facilitar uma transição para serviços em nuvem ou racionalização de aplicativos, pois eles reduzirão o uso. O objetivo é criar progressivamente uma equipe que possa gerenciar a complexidade crescente (e às vezes pouco compreendida) das arquiteturas modulares e a infinidade de serviços e capacidades que vêm com a mudança para as paisagens de infraestrutura multicloud. É por isso que as transformações corporativas não podem tratar novas maneiras de trabalhar nos negócios e como empreendimentos separados. Empresas intensivas em software que implementam o AGILE sem um modelo operacional maduro de DevOps podem descobrir que sprints de duas semanas nos negócios podem ser prejudicadas por ciclos de liberação de software de nove meses. O DevOps é uma maneira de reunir negócios e tecnologia para realmente aumentar a velocidade do resultado, com a conseqüência sempre estimada de reduzir os custos e aumentar a qualidade. Andrew Agerbak

Companies also need to create incentives so that vendor partners will invest in continuous improvement—especially among the vendors supporting run services and managing legacy on-premises infrastructure. Unfortunately, these contracts are often managed primarily for cost. Companies keep pressuring their vendors’ margins, reducing their partners’ incentives to invest or coinvest in model improvements.

The service model itself can also discourage vendors from making these improvements. For example, a vendor providing testing services has no inherent incentive to automate these services. Similarly, if a partner provides application maintenance and support, it’s likely to make more money when the stack functions poorly. And if a vendor contracted to run the infrastructure is paid on the basis of usage, it won’t be inclined to facilitate a transition to cloud services or application rationalization since these will reduce usage.

Given these financial realities, companies need to think creatively about how to design contractual incentives to drive coinvestment in continuous improvement of the stack. The goal is to progressively create a team that can manage the increasing (and sometimes poorly understood) complexity of modular architectures and the plethora of services and capabilities that come with moving to multicloud infrastructure landscapes.


The delivery chain is only as fast as its slowest link. That’s why corporate transformations can’t treat new ways of working in business and IT as separate endeavors. Software-intensive businesses that implement agile without a mature DevOps-centric operating model may discover that two-week sprints in business can be hamstrung by nine-month software release cycles. DevOps is a way to bring business and technology together to truly boost speed to outcome, with the always-cherished consequence of reducing costs and increasing quality.

Authors

Alumnus

Andrew Agerbak

Alumnus

parceiro e diretor, tecnologia e transformação digital

Jon Brock

Parceiro e diretor, tecnologia e transformação digital
Londres

Diretor Gerente de Platinion

Kaj Burchardi

Diretor Gerente de Platinion
Amsterdã

parceiro & amp; Diretor Associado de Tecnologia & Amp; Transformação digital

Steven Alexander Kok

Diretor Parceiro e Associado, Tecnologia e Transformação Digital
Londres

Diretor Agile de Platinion

Arne Weiner

Diretor ágil da platinion
Platinion - Colônia

Conteúdo relacionado

Salvo para Meu conteúdo salvo
Download Artigo
= Salvo para Meu conteúdo salvo
Download Artigo