Estabelecer padrões de desenvolvimento

Concluído
Otimizar a produtividade padronizando as práticas de desenvolvimento, impondo portões de qualidade e acompanhando o progresso e o êxito através do gerenciamento sistemático de alterações.

A equipe de desenvolvimento é responsável por resolver os problemas de carga de trabalho antes do lançamento com o mínimo de atrito. Tenha em mente a eficiência do desenvolvedor e otimize para obter ciclos de resposta rápidos, desde a codificação até os resultados dos testes. Implemente processos eficazes e de tamanho adequado que planejem e padronizem as atividades técnicas e também gerem consenso entre a equipe e os stakeholders.

Cenário de exemplo

A Contoso Ticketing é uma pequena startup que fornece uma solução SAAS de linha de negócios (LOB) de emissão de tíquetes para empresas de médio porte. A integração de novos clientes é um processo complexo que requer personalizações de produtos e desenvolvimento personalizado para se integrar ao ambiente do cliente. A equipe de implementação usa o Azure DevOps como uma plataforma para colaboração e entrega, mas não segue nenhuma metodologia formal de desenvolvimento.

Adotar os padrões do setor para desenvolvimento

Use uma metodologia de desenvolvimento de software padrão do setor que esteja adequadamente ajustada às necessidades da sua carga de trabalho e ao tamanho da equipe. Mantenha uma lista de pendências que seja compartilhada entre todas as funções.

A adoção de uma metodologia bem conhecida define o ritmo do projeto. Ele remove as ambiguidades do processo, dando aos membros da equipe expectativas claras e responsabilidade.

Com o acompanhamento de uma lista comum, as tarefas podem ser refinadas e priorizadas com práticas padrão. O projeto terá mais chances de ser entregue no prazo.

As metodologias padrão ajudam no gerenciamento de riscos. Com as revisões granulares de marcos, os desenvolvedores podem resolver os possíveis problemas antes que eles se tornem obstáculos.

Desafio da Contoso

  • O principal produto da empresa tem ganhado popularidade e a equipe de integração está trabalhando em mais projetos de implementação simultâneos do que nunca. Para acompanhar o aumento da carga de trabalho, a equipe teve que aumentar seu número de funcionários.
  • O crescimento da equipe, aliado à falta de processos formais, levou a alguns desafios, como comunicação pouco clara entre os membros da equipe, reuniões aleatórias e improdutivas e ciclos de desenvolvimento pouco frequentes e não programados. Vários dos projetos de integração estão atrasados e a liderança da empresa pediu à equipe que fizesse as alterações necessárias para corrigir a situação.

Aplicando a abordagem e os resultados

  • Para superar esses desafios, a equipe decidiu adotar a metodologia scrum, uma estrutura ágil popular para o desenvolvimento de software.
  • O Scrum ajudará a equipe a resolver alguns dos problemas que está enfrentando. Entre outras coisas, o Scrum oferece uma estrutura clara e consistente para o processo de desenvolvimento, com funções, eventos, artefatos e regras predefinidos. Uma lista de pendências compartilhado e uma cadência de sprints de desenvolvimento curtos ajudariam a equipe a trabalhar em uma visão compartilhada e a fornecer valor aos clientes de forma regular e confiável.

Deslocar para a esquerda para testar

Tenha processos de garantia de qualidade que enfatizem os testes no início do ciclo de vida do desenvolvimento. Inclua todos os artefatos para procedimentos de teste planejados, incluindo componentes de aplicativos, infraestrutura e operações de plano de dados que fazem parte de uma atualização ou versão de recursos.

Trate os artefatos como imutáveis quando eles forem promovidos pelos ambientes, ganhando confiança cada vez que passarem por um portão de qualidade.

Sempre que possível, automatize as verificações de rotina.

A garantia de qualidade assegura que os requisitos funcionais e não funcionais foram atendidos com confiança, o que leva a um impacto positivo para o cliente.

Desafio da Contoso

  • A estratégia de teste funcional da equipe de carga de trabalho usa uma combinação de testes automatizados e manuais. Sua abordagem de teste não abrange todos os aspectos do sistema, como desempenho, segurança e usabilidade. Eles também não têm uma maneira consistente de implantar seu código em diferentes ambientes de forma totalmente automatizada, o que introduz variabilidade e incerteza.
  • O aumento no volume e na complexidade dos esforços de integração do cliente ampliou os desafios da sua estratégia de testes, levando a bugs frequentes, retrabalho e insatisfação do cliente.

Aplicando a abordagem e os resultados

  • A equipe de carga de trabalho embarca em um esforço para melhorar sua estratégia de testes e aumentar a consistência e a previsibilidade de seus pipelines de implantação.
  • Eles começam criando planos de teste para cada recurso ou personalização em desenvolvimento, abrangendo os requisitos funcionais e não funcionais. Eles usam o Azure DevOps para gerenciar seus casos de teste, dados de teste e resultados de teste. Eles estabelecem portões de qualidade em seus pipelines de implantação que verificam a qualidade do código, da configuração e da implantação antes de promover os artefatos para o próximo ambiente.
  • Depois de implementar essas melhorias, a equipe vê uma redução no número de implantações com falha, bem como no número de bugs e incidentes na produção. Como resultado, a qualidade, a velocidade de entrega e a satisfação do cliente aumentaram substancialmente.

Medir a eficiência do desenvolvimento

Relatar o progresso e as tendências para medir a eficiência. Acompanhe e informe as tendências de bugs, atualizações com falha, tempo de implantação e loops de comentários para promover melhorias em suas práticas de desenvolvimento.

Desafio da Contoso

  • A equipe de carga de trabalho implementou recentemente várias alterações para melhorar a qualidade e a previsibilidade dos processos de integração do cliente. No entanto, a empresa enfrenta o desafio de medir e relatar o impacto dessas alterações. Infelizmente, a empresa não dispõe de dados ou métricas confiáveis para mostrar o quanto a qualidade e a previsibilidade melhoraram, ou quais alterações contribuíram para a melhoria mais do que outras.
  • A empresa precisa de uma maneira de quantificar e comunicar os benefícios de seus investimentos em processos, para que possa priorizar seus recursos e esforços no futuro.

Aplicando a abordagem e os resultados

  • A equipe decide começar a aproveitar os recursos de relatório do AzDO, que já está usando, para poder quantificar as melhorias ao longo do tempo e priorizar a alocação de recursos para investimentos futuros.
  • Eles começam utilizando vários relatórios prontos para uso:
    • Relatórios de velocidade
    • Diagramas de fluxo cumulativo
    • Tendências de bugs: quantos bugs são criados, resolvidos e fechados ao longo do tempo e como eles afetam as métricas de qualidade.
    • Estatísticas de implantação: quanto tempo leva para entregar o software do código à produção e como ele se compara a metas e parâmetros de comparação.
  • A equipe também planeja desenvolver relatórios personalizados com os relatórios do Dashboard e do Power BI Analytics em um futuro próximo.

Verifique seu conhecimento

1.

Qual das opções a seguir é um exemplo de uma ferramenta padrão do setor para manter uma lista de pendências?

2.

Qual das estratégias a seguir pode ajudar você a aumentar a velocidade e a eficiência do seu desenvolvimento?

3.

Como a Contoso conseguiu identificar quais de suas recentes alterações de processo foram mais eficazes para melhorar sua qualidade e eficiência?