Recomendações para padronizar ferramentas e processos
Aplica-se a esta recomendação da lista de verificação de Excelência Operacional do Power Platform Well-Architected:
OE:04 | Otimize os processos de desenvolvimento de software e de garantia de qualidade seguindo práticas comprovadas do setor para desenvolvimento e teste. Para uma designação de função não ambígua, padronize práticas em componentes, como ferramentas, controle do código-fonte, padrões de design de aplicativos, documentação e guias de estilo. |
---|
Este guia descreve as recomendações para definir padrões para ferramentas e processos de desenvolvimento. Definir práticas consistentes leva a uma equipe de carga de trabalho eficiente e a um trabalho de alta qualidade. As equipes de alto desempenho usam ferramentas e processos comprovados pelo setor para minimizar o esforço desperdiçado e possíveis erros de código.
Estratégias-chave de design
O primeiro passo para otimizar as práticas de desenvolvimento é padronizar ferramentas e processos. Sempre que possível, use soluções comprovadas pelo setor em vez de desenvolver suas próprias. Para todas as ferramentas e processos padronizados, forneça treinamento para garantir que suas equipes possam usá-los com eficiência.
Para definir padrões que ajudem a otimizar suas práticas de desenvolvimento, considere as recomendações a seguir.
Usar as ferramentas disponíveis para a plataforma
Priorize o uso do Power Platform tools e de outra forma use ferramentas prontas conhecidas e desenvolvidas e padronize seu uso. Equipes de engenharia altamente eficazes adotam as melhores ferramentas da categoria. Evite desenvolver soluções para planejamento, desenvolvimento, teste e colaboração. Escolha ferramentas que atendam aos requisitos de sua carga de trabalho.
As ferramentas devem fornecer as seguintes funções:
- Planejamento de trabalho e gerenciamento de backlog
- Controle de versão e repositórios
- Pipelines de implantação
- Testes
- Desenvolvimento e revisão de código
Em alguns casos, uma ferramenta ou um conjunto de ferramentas pode fornecer várias funções. Certifique-se de entender os recursos de suas ferramentas e suas limitações para que elas atendam aos seus requisitos em todas as funções.
Determine se você deve investir em recursos premium da plataforma ou versões premium de ferramentas. Considere o tempo e o esforço de desenvolver suas próprias soluções em comparação com os recursos que as ferramentas premium oferecem. Considere os custos únicos versus os custos recorrentes. Na maioria dos casos, ferramentas prontas para uso fornecem maior valor à sua equipe. Por exemplo, os Ambientes Gerenciados oferecem recursos prontos para uso para definir uma mensagem de integração do criador ou limitar o compartilhamento de forma proativa. Criar esses recursos por conta própria requer desenvolvimento e esforço de manutenção contínua que podem ser mais caros do que investir em ambientes gerenciados.
Usar ferramentas de IA quando for prático. As ferramentas de IA podem ajudar no desenvolvimento, nas revisões e na otimização do código.
Estabeleça uma estrutura de governança para o codesenvolvimento
Estabelecer uma estrutura de governança de codesenvolvimento eficaz para garantir consistência e repetibilidade em projetos definidos pelo criador e equipes de fusão.
Padronize seu sistema e práticas de controle de origem
Adote um sistema de controle de código-fonte como Azure DevOps. O Azure DevOps oferece serviços do desenvolvedor para que as equipes de suporte planejem o trabalho, colaborem no desenvolvimento do código, além de criar e implantar aplicativos. Exporte uma solução do seu ambiente de desenvolvimento contendo seus aplicativos e personalizações, descompacte sua solução e armazene os componentes em seu sistema de controle de origem.
Verifique se o controle de versão da solução é preciso, seguindo as diretrizes de sprint e desenvolvedor estabelecidas nas Práticas Implementar Scrum para sua equipe no Azure Boards. Os resultados do teste da solicitação pull podem assumir a forma de capturas de tela ou vídeos que retratam a funcionalidade que está sendo criada. Automatizar o processo de governança de solicitação de recebimento ajuda a garantir a qualidade do código sem exigir uma revisão manual de verificações básicas, como versões de solução.
Crie modelos para oferecer eficiência e promover consistência. Todos os aspectos das operações da equipe se beneficiam da padronização e simplificação, desde tarefas de integração e apresentações de revisão de histórias até modelos de itens de trabalho projetados para economizar tempo e fornecer orientação às equipes ao definir histórias, recursos, bugs e tarefas de usuários.
Avaliar métricas para quantificar a eficácia
As equipes de desenvolvimento e garantia de qualidade só podem melhorar quando quantificam sua eficácia. Para quantificar a eficácia, eles devem identificar as métricas que medem a velocidade do desenvolvedor e definir indicadores-chave de desempenho (KPIs).
Exemplos dessas métricas incluem:
- Lead time: o tempo que leva para uma tarefa ou história de usuário passar da lista de pendências para uma implantação de produção.
- Tempo médio para resolução: o tempo médio gasto corrigindo bugs ou defeitos no código.
- Taxa de falha de alteração: a porcentagem de alterações que resultam em falha.
Para ajudar os stakeholders e a equipe de carga de trabalho a rastrear facilmente a velocidade, visualize os KPIs usando painéis ou outras ferramentas de relatório.
Padronize como sua equipe de carga de trabalho escreve, analisa e documenta códigos
Padronize como sua equipe de carga de trabalho escreve, analisa e documenta códigos usando um guia de estilo. Um estilo padrão facilita a colaboração e ajuda na integração de novos desenvolvedores. Para trabalhar de forma eficaz, os novos desenvolvedores precisam saber como a equipe de carga de trabalho opera. Um guia de estilo com padrões claramente definidos pode facilitar seu processo de treinamento.
O guia de estilo deve abranger:
- Convenções de nomenclatura para soluções, artefatos, controles, ações, ambientes, ramificações e compilações
- Padrões de tratamento de erros
- Padrões comuns ou bibliotecas
Acompanhe as decisões de arquitetura para ajudar as equipes a manter uma nova compreensão da carga de trabalho e permitir que os novos membros da equipe aprendam sobre as decisões de design tomadas durante o ciclo de vida da carga de trabalho. Inclua em seu documento de decisão de arquitetura as ferramentas e tecnologias que foram consideradas, o motivo de uma decisão e os requisitos funcionais e não funcionais que foram considerados nas decisões. Registre as decisões para evitar repetir explicações ou revisitar discussões com novos membros ou partes interessadas.
Implementar normas e diretrizes para lidar com a dívida técnica
A plataforma e a tecnologia mudam rapidamente, com novos recursos e capacidades sendo lançados regularmente. Adote uma mentalidade de que a dívida técnica é necessária para as entregas da sua equipe de carga de trabalho. Essa mentalidade motiva sua equipe a considerar e lidar com dívidas técnicas regularmente para evitar o acúmulo. Resolva a dívida técnica como uma tarefa recorrente regularmente na lista de pendências. Certifique-se de ter processos em vigor para se manter atualizado com as alterações de plataforma, tanto novos recursos quanto substituições, e trabalhe em um plano de ação para saber como lidar com as alterações em sua carga de trabalho.
Por exemplo, um recurso do produto pode ser preterido ou substituído por uma versão diferente. A equipe de carga de trabalho deve priorizar a conclusão da transição para o novo recurso para evitar afetar a carga de trabalho. A equipe pode criar uma solução ou controle personalizado, que com o tempo se torna parte da plataforma. Sua equipe de carga de trabalho deve fazer a transição para esse recurso de plataforma, o que reduz a dívida técnica e a manutenção de sua própria carga de trabalho.
Use padrões de design de aplicativos comprovados pelo setor para garantir que seu aplicativo seja confiável, eficiente e seguro. Use esses padrões para economizar tempo e esforço em vez de desenvolver suas próprias soluções para seu aplicativo. Escolha os padrões que beneficiam sua carga de trabalho. Revise regularmente os padrões de design para garantir que você use os padrões certos à medida que sua carga de trabalho evolui.
Implementar uma abordagem shift-left para testes
Implemente uma abordagem shift-left para o teste, realizando testes de unidade com antecedência e, muitas vezes, durante todo o processo de desenvolvimento. Testes frequentes em cada ambiente de desenvolvimento ajudam os desenvolvedores a ganhar confiança em seus aplicativos.
Para ajudar a criar sua estratégia de teste com uma abordagem de deslocamento para a esquerda, considere os seguintes princípios:
- Escreva testes no nível mais baixo possível. Favoreça testes com o menor número de dependências externas e execute testes como parte da compilação.
- Escreva testes uma vez e execute testes em todos os lugares, incluindo a produção. Escreva testes que você pode executar em todos os ambientes de desenvolvimento sem levar em conta fatores específicos de um ambiente, como segredos criptografados ou configurações.
- Projete sua carga de trabalho para testes. Ao desenvolver seu aplicativo, torne a capacidade de teste um requisito.
- Considere a propriedade do teste, que é baseada na propriedade da carga de trabalho. Sua equipe de carga de trabalho é proprietária dos testes e não deve depender de outras equipes para testar seu código.
- Automatize os testes o máximo que puder. O código automatizado alivia a carga de trabalho da equipe e impõe qualidade consistente.
Exija que sua equipe de carga de trabalho compreenda as práticas de segurança relacionadas ao desenvolvimento e à garantia de qualidade. Os membros da equipe devem seguir essas práticas, sem exceção. Saiba mais em Recomendações para proteger um ciclo de vida de desenvolvimento.
Facilitação do Power Platform
Os pipelines no Power Platform visam democratizar o gerenciamento do ciclo de vida do aplicativo (ALM) para clientes do Power Platform e do Dynamics 365, trazendo automação do ALM e recursos de integração contínua e entrega contínua (CI/CD) para o serviço.
As notas de implantação geradas pelo Copilot em pipelines geram um resumo da solução e preenchem previamente o campo de notas de implantação, fornecendo a qualquer pessoa que visualize a solicitação de implantação ou registre contexto suficiente para entender o que a solução faz e o que ela contém.
O Microsoft Power Platform Build Tools para Azure DevOps pode ser usado para automatizar tarefas comuns de compilação e implantação relacionadas a aplicativos criados no Power Platform.
GitHub Actions para Power Platform permitem que os desenvolvedores criem fluxos de trabalho de ciclo de vida de desenvolvimento de software automatizados. Com o GitHub Actions para Microsoft Power Platform, é possível criar fluxos de trabalho no repositório para compilar, testar, empacotar, lançar e implantar aplicativos; realizar automação e gerenciar bots e outros componentes compilados no Power Platform.
A API Web do verificador do Power Apps fornece um mecanismo para executar verificações de análise estática em relação a personalizações e extensões da plataforma do Microsoft Dataverse.
O Test Studio permite que você crie testes de UI completos para seu aplicativo de tela.
Automatizar testes com Azure Pipelines.
A Ferramenta de Revisão de Código do Power Cat permite que você execute revisões de código.
O Kit do Copilot Studio do Power CAT permite configurar agentes e testes. Ao executar testes individuais nas APIs DO Copilot Studio (Direct Line), as respostas do agente são avaliadas em relação aos resultados esperados.
O Acelerador do ALM é uma ferramenta de código aberto que consiste em um conjunto de aplicativos, scripts e pipelines projetados para automatizar o processo de integração/entrega contínua.
O Microsoft Power Platform CLI ( PAC CLI) é uma ferramenta de linha de comando que suporta a importação e exportação de Power Platform soluções, e empacotamento e desempacotamento de arquivos de origem de soluções do Power Platform. A PAC CLI está disponível como uma ferramenta de linha de comando autônoma ou como uma extensão do Visual Studio Code.
Outras ferramentas e serviços que podem ajudar você a padronizar suas práticas de desenvolvimento incluem:
O Azure DevOps, uma coleção de serviços que você pode usar para criar uma prática de desenvolvimento colaborativa, eficiente e consistente. O Azure DevOps empacota uma das seguintes soluções:
- O Azure Pipelines, um serviço de nuvem que fornece serviços de build e release para dar suporte à CI/CD de seus aplicativos.
- O Azure Boards, uma ferramenta de gerenciamento de trabalho baseada na Web que oferece suporte a práticas ágeis como Scrum e Kanban.
- O Azure Repos, uma ferramenta de controle de versão que dá suporte ao sistema de controle de versão distribuído Git e ao sistema de Controle de Versão do Team Foundation.
- O Azure Test Plans, uma solução de gerenciamento de testes baseada em navegador que fornece os recursos necessários para testes manuais planejados, testes de aceitação do usuário, testes exploratórios e coleta de comentários de participantes.
O GitHub Projects, uma ferramenta de gerenciamento de trabalho que você pode usar para criar quadros Kanban, relatórios, painéis e outras funções.
Informações relacionadas
Governança de codesenvolvimento