Adote a cultura DevOps

Concluído
Capacite as equipes de desenvolvimento e operações para melhorar continuamente o design e os processos de seus sistemas, trabalhando em conjunto com uma mentalidade de colaboração, responsabilidade compartilhada e propriedade.

DevOps é uma comunidade de prática onde a diversidade de perspetivas e habilidades direciona para uma missão. As equipas devem promover um ambiente colaborativo de conhecimento partilhado em vez de aprendizagem isolada. Use funções compartilhadas para se esforçar para superar as restrições de recursos.

Uma boa cultura de DevOps prospera com base na responsabilidade compartilhada. As equipes de desenvolvimento e operações devem alinhar seus objetivos e prioridades com as expectativas de seus clientes e manter o foco no negócio em mente. A equipe de desenvolvimento deve envolver a equipe de operações no ciclo de feedback para que as melhorias sejam impulsionadas a montante e outras equipes se beneficiem igualmente. Por outro lado, as equipes de operações são responsáveis por tornar a equipe de desenvolvimento bem-sucedida em seus resultados de negócios, compartilhando recursos e feedback que são relevantes para a carga de trabalho.

Ao mesmo tempo, as práticas de DevOps aplicam linhas claras de propriedade e responsabilidade a cada equipe. Independentemente de onde o aplicativo é executado, a equipe de carga de trabalho é responsável por esse aplicativo.

O DevOps otimiza as tarefas operacionais para que sejam eficazes, mas não onerosas. Para colher todos os benefícios do DevOps, a cultura deve otimizar processos através da tecnologia e ter processos para que as pessoas da organização promovam uma comunicação transparente.

Cenário de exemplo

O departamento de Recursos Humanos (RH) da Contoso está iniciando um projeto para desenvolver um novo aplicativo de linha de negócios (LOB) para uso interno do departamento. O aplicativo está atualmente em fase de planejamento, nenhum trabalho de design ou implementação foi iniciado ainda.

Colabore de forma eficiente

Use sistemas e ferramentas comuns que promovam um ambiente colaborativo para comunicação e acompanhamento do progresso.

Ferramentas e processos comuns permitem uma comunicação transparente. As equipes de desenvolvimento e operações se beneficiam da consciência situacional em vários ambientes, problemas comuns de suporte e desafios e vitórias gerais.

As equipes já estarão familiarizadas com os caminhos de escalonamento existentes se houver um incidente.

Uma lista de pendências compartilhada deixa claras as prioridades, como trabalhar em novos recursos ou corrigir bugs.

O desafio da Contoso

  • A Contoso tem três equipes técnicas que estarão envolvidas no desenvolvimento e manutenção do novo aplicativo: desenvolvimento, teste e operações. Atualmente, não existem ferramentas padrão de comunicação e acompanhamento de projetos que sejam usadas de forma consistente nessas equipes.
  • Historicamente, cada equipa tem sido capaz de selecionar as suas ferramentas de escolha. Alguns usam o Slack, enquanto outros usam o Microsoft Teams para mensagens internas. Alguns usam o Azure DevOps (ADO) e outros usam o Excel para controlar tarefas, e cada equipe usa um repositório de documentos diferente do resto para compartilhar conhecimento e procedimentos de resposta a incidentes.
  • Em projetos anteriores, a organização técnica geral tem lutado com comunicações e colaboração devido às ferramentas díspares que estão sendo usadas. No futuro, o RH da Contoso gostaria de melhorar a produtividade e evitar situações que poderiam atrasar o projeto, como as encontradas anteriormente.

Aplicação da abordagem e dos resultados

  • Os líderes das equipes técnicas se reuniram com os patrocinadores do projeto para escolher as ferramentas padrão que serão usadas no futuro. O grupo escolheu o ADO para gerenciar sua lista de pendências, repositório de código e pipeline de implantação. Eles também escolheram o Microsoft Teams para comunicações e colaboração.
  • O uso de um conjunto comum de ferramentas permite que as equipes de desenvolvimento, operações e teste permaneçam informadas e sincronizadas sobre o status dos vários ambientes, problemas comuns do projeto e realizações da equipe. Além disso, as equipes podem acessar informações sobre os caminhos de escalonamento estabelecidos em caso de incidentes a partir de um único local conhecido.
  • Uma lista de pendências compartilhada também ajuda a planejar uniformemente e permanecer alinhado nas prioridades, como o desenvolvimento de novos recursos ou a correção de bugs.

Adote a melhoria contínua

Construa uma mentalidade de aprendizagem e experimentação contínua ao longo do ciclo de desenvolvimento. Ofereça suporte ao compartilhamento de conhecimento entre equipes e mantenha a documentação para reutilização. Além disso, realize análises irrepreensíveis e reveja revisões pós-lançamento e/ou pós-incidente.

Através de mecanismos de experimentação, como testes A/B e desenvolvimento de provas de conceito, você pode incentivar a inovação, mantendo os custos baixos.

Partilhe conhecimento através da colaboração que torna a equipa proficiente em abordagens de design, ferramentas e processos.

Fazer retrospetivas após um projeto ajuda a identificar áreas de melhoria e a celebrar o sucesso.

O desafio da Contoso

  • Para facilitar ainda mais o compartilhamento de informações e promover uma cultura de colaboração e transparência, a equipe gostaria de ter uma fonte centralizada e facilmente acessível de verdade para a documentação do projeto. Entre outras coisas, isso seria útil se um novo desenvolvedor se juntasse à equipe e precisasse se atualizar rapidamente com o projeto.
  • De particular interesse para o RH da Contoso é o desejo de garantir que os aprendizados de incidentes que afetam a disponibilidade do aplicativo sejam capturados e compartilhados em toda a organização técnica para ajudar com incidentes futuros e evitar a recorrência tanto quanto possível.
  • Para evitar repetir erros do passado ao projetar a experiência do usuário do aplicativo, a equipe também quer usar uma abordagem mais ágil que permita levar em consideração o feedback real do usuário.

Aplicação da abordagem e dos resultados

  • A equipe constrói um wiki de compartilhamento de conhecimento no ADO onde todas as especificações de design serão publicadas juntamente com todos os procedimentos operacionais ativos, planos de resposta a incidentes e resultados retrospetivos.
  • Fazer retrospetivas irrepreensíveis após incidentes e cada iteração de desenvolvimento e documentar os aprendizados no wiki está ajudando a equipe do projeto a identificar áreas para melhoria e celebrar o sucesso.
  • A equipe adotou uma abordagem exploratória para o design da experiência do usuário para o novo aplicativo, aproveitando os testes A/B para encontrar a melhor experiência do usuário entre várias variantes propostas pelos consultores de UX, levando em consideração o feedback do usuário para tomar decisões baseadas em dados.

Codificar procedimentos de desenvolvimento e operações

Definir padrões para todos os procedimentos operacionais e de desenvolvimento e revisá-los e validá-los em uma cadência regular. Esses procedimentos incluem tarefas de rotina, processos fora de banda, exercícios e situações de emergência, escolha de ferramentas, procedimentos de monitoramento, planos de qualificação e até mesmo comunicação com as partes interessadas e divulgações ao cliente. Seja intencional e explícito sobre as suas decisões.

As normas adicionam previsibilidade às operações e tornam os processos e práticas escaláveis. Validar padrões é uma ótima maneira de desenhar pontos de melhoria.

Esteja preparado para situações de emergência e recuperação, realizando exercícios regulares.

Executar com precisão e permitir a governança para evitar anomalias que levam a riscos.

O desafio da Contoso

  • Um dos desafios que afetou a produtividade e a qualidade de saída da equipe de desenvolvimento no passado é a falta de padronização e consistência na base de código. Por exemplo, a ausência de uniformidade nas convenções de nomenclatura ou o uso de padrões de software comuns torna difícil para os membros da equipe entenderem o código uns dos outros, e isso afetou a eficiência.
  • Além disso, sem uma abordagem comum devidamente documentada para as operações, o pessoal operacional pode utilizar métodos diferentes para atingir o mesmo objetivo, o que gera ineficiência e confusão.
  • Motivada pelo sucesso que tiveram na implementação de outras melhorias de DevOps, a Contoso HR decidiu resolver esse problema como parte do próximo ciclo de desenvolvimento.

Aplicação da abordagem e dos resultados

  • A equipe de desenvolvimento se reúne durante o ciclo de desenvolvimento para chegar a um acordo sobre um conjunto de padrões de desenvolvimento a serem implementados. Eles documentarão as escolhas feitas e começarão a aplicá-las durante as revisões de código e por meio de ferramentas. Eles estão olhando para tópicos como: Formatação de código e convenções de nomenclatura, tratamento de erros, controle de versão e práticas de segurança. A equipe planeja prestar muita atenção às métricas de qualidade e relatórios que estão sendo gerados no ADO para quantificar o impacto que essas mudanças terão na qualidade e produtividade, para que possam provar o valor desses tipos de melhorias de DevOps para sua equipe de gerenciamento.
  • Da mesma forma, a equipe de operações dedica tempo durante o mesmo período para estender sua documentação existente de gerenciamento de rotina e práticas de solução de problemas e publicá-la no wiki. No futuro, a wiki servirá como uma única fonte de verdade, economizando tempo e energia que, de outra forma, seriam gastos em busca de informações.

Verifique o seu conhecimento

1.

Qual das seguintes opções é um benefício das equipes de operações e desenvolvimento que usam um conjunto comum de ferramentas?

2.

Qual dos seguintes é um exemplo de construção de uma mentalidade de aprendizagem e experimentação contínua?

3.

Verdadeiro ou falso: a Contoso sofria com a falta de padronização em seu conjunto de ferramentas.