Recomendações para padronizar ferramentas e processos
Aplica-se a esta recomendação da lista de verificação do Power Platform Well-Architected Operational Excellence:
OE:04 | Otimize os processos de desenvolvimento de software e garantia de qualidade seguindo práticas comprovadas pela indústria para desenvolvimento e testes. Para uma designação de funções inequívoca, normalize práticas em diversos componentes, tais como ferramentas, controlo de origem, padrões de estrutura da aplicações, documentação e guias de estilo. |
---|
Este guia descreve as recomendações para definir padrões para ferramentas e processos de desenvolvimento. A definição de práticas consistentes leva a uma equipa de carga de trabalho eficiente e a um trabalho de alta qualidade. As equipas de alto desempenho utilizam ferramentas e processos comprovados pelo setor para minimizar o esforço desperdiçado e potenciais erros de código.
Principais estratégias 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 as suas próprias. Para todas as ferramentas e processos padronizados, forneça formação para garantir que as suas equipas possam usá-los de forma eficiente.
Para definir padrões que ajudem a otimizar as suas práticas de desenvolvimento, considere as seguintes recomendações.
Utilizar ferramentas disponíveis para a plataforma
Priorize o uso do Power Platform Tools e use ferramentas conhecidas e maduras e padronize o seu uso. As equipas de engenharia altamente eficazes adotam as melhores ferramentas da categoria. Evite desenvolver soluções para planeamento, desenvolvimento, testes e colaboração. Escolha ferramentas que atendam aos requisitos para a sua carga de trabalho.
As ferramentas devem fornecer as seguintes funções:
- Planeamento de trabalho e gestão de tarefas pendentes
- Controlo de versões e repositórios
- Pipelines de implementação
- A testar
- 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 que compreende as capacidades e limitações das suas ferramentas para que estas satisfaçam os seus requisitos em todas as funções.
Determine se deve investir em recursos premium da plataforma ou versões premium das ferramentas. Considere o tempo e o esforço de desenvolver as suas próprias soluções em comparação com as funcionalidades que as ferramentas premium fornecem. Considere os custos únicos versus custos recorrentes. Na maioria dos casos, as ferramentas prontas a utilizar proporcionam maior valor à sua equipa. Por exemplo, os Ambientes Geridos oferecem caraterísticas de origem para definir uma mensagem de inclusão do criador ou para limitar a partilha proativamente. A criação destas caraterísticas por si próprio requer desenvolvimento e esforço contínuo de manutenção que pode ser mais caro do que investir em Ambientes Geridos.
Utilize ferramentas de IA quando for prático. As ferramentas de IA podem ajudar no desenvolvimento, nas revisões e na otimização de códigos.
Estabelecer uma estrutura de governação para o codesenvolvimento
Estabeleça uma estrutura de governação de codesenvolvimento eficaz para garantir consistência e repetibilidade em projetos definidos pelo criador e equipas de fusão.
Padronizar o seu sistema e práticas de controlo de origem
Adote um sistema de controlo do código fonte como Azure DevOps. O Azure DevOps fornece serviços de programadores para equipas de suporte para planear trabalho, colaborar no desenvolvimento de código e criar e implementar aplicações. Exportar uma solução a partir do ambiente de desenvolvimento que contém as suas aplicações e personalizações, desempacotar a solução e armazenar os componentes no sistema de controlo de origem.
Certifique-se de que o controlo de versões da solução é preciso, seguindo as diretrizes de programador e sprint definidas em Implementar práticas de Scrum para a sua equipa no Azure Boards. Os resultados do teste do pedido Pull podem assumir a forma de capturas de tela ou vídeos que retratam a funcionalidade que está a ser criada. A automatização do processo de governação de pedidos de pull ajuda a garantir a qualidade do código sem necessitar de uma revisão manual de verificações básicas, tais como versões de solução.
Crie modelos para fornecer eficiência e promover a consistência. Todos os aspetos das operações da equipa beneficiam da padronização e simplificação, desde as tarefas de integração e apresentações de revisão de história até aos modelos de itens de trabalho concebidos para economizar tempo e fornecer orientação às equipas ao definir histórias de utilizadores, caraterísticas, erros e tarefas.
Avaliar métricas para quantificar a eficácia
As equipas de desenvolvimento e de garantia da qualidade só podem melhorar quando quantificam a sua eficácia. Para quantificar a eficácia, eles devem identificar as métricas que medem a velocidade do programador e definir indicadores chave de desempenho (KPIs).
Exemplos destas métricas incluem:
- Tempo de espera: o tempo que leva para uma tarefa ou história de utilizar a passar do registo de tarefas pendentes para uma implementação de produção.
- Tempo médio até à resolução: o tempo médio gasto a corrigir erros ou defeitos no código.
- Taxa de falhas de alteração: a percentagem de alterações que resultam numa falha.
Para ajudar os intervenientes e a equipa de carga de trabalho a controlar facilmente a velocidade, visualize os KPIs utilizando dashboards ou outras ferramentas de relatório.
Padronize a forma como a sua equipa de carga de trabalho escreve, revê e documenta o código
Padronize a forma como a sua equipa de carga de trabalho escreve, revê e documenta o código utilizando um guia de estilo. Um estilo padrão facilita a colaboração e ajuda a integrar novos programadores. Para trabalhar de forma eficaz, os novos programadores precisam de saber como funciona a equipa de carga de trabalho. Um guia de estilo com normas claramente definidas pode facilitar o seu processo de formação.
O guia de estilo deve abranger:
- Convenções de nomenclatura para soluções, artefactos, controlos, ações, ambientes, ramos e compilações
- Padrões de tratamento de erros
- Padrões ou bibliotecas comuns
Monitorize as decisões de arquitetura para ajudar as equipas a manter uma compreensão atualizada da carga de trabalho e permitir que novos membros da equipa conheçam as decisões de design tomadas durante o ciclo de vida da carga de trabalho. Inclua no seu documento de decisão de arquitetura as ferramentas e as tecnologias que foram consideradas, o motivo de uma decisão e os requisitos funcionais e não funcionais que considerados nas decisões. Registe decisões para evitar repetir explicações ou revisitar debates com novos membros ou partes interessadas.
Implementar normas e orientações para fazer face à 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 equipa de carga de trabalho. Essa mentalidade motiva a sua equipa a considerar e lidar com dívidas técnicas regularmente para evitar a acumulação. Aborde a dívida técnica como uma tarefa regularmente recorrente nas tarefas pendentes. Certifique-se de que tem processos implementados para se manter atualizado com as alterações na plataforma, tanto de novas caraterísticas como de preterimentos, e trabalhe num plano de ação para resolver as alterações à sua carga de trabalho.
Por exemplo, uma funcionalidade do produto pode ser preterida ou substituída por outra versão. A equipa da carga de trabalho tem de dar prioridade à conclusão da transição para a nova caraterística para evitar afetar a carga de trabalho. A equipa pode criar uma solução ou controlo personalizado que, com o tempo, se torna parte da plataforma. A sua equipa da carga de trabalho tem de fazer a transição para essa caraterística da plataforma, o que reduz a dívida técnica e a manutenção da sua própria carga de trabalho.
Utilize padrões de conceção de aplicações comprovados pela indústria para garantir que a sua aplicação é fiável, com um bom desempenho e seguro. Utilize estes padrões para poupar tempo e esforço em vez de desenvolver as suas próprias soluções para a sua aplicação. Escolha os padrões que beneficiam a sua carga de trabalho. Reveja regularmente os padrões de design para garantir que utiliza os padrões corretos à medida que a carga de trabalho evolui.
Implementar uma abordagem de teste de desvio para a esquerda
Implemente uma abordagem de desvio para a esquerda aos testes ao executar testes de unidade cedo e, com frequência, durante todo o processo de desenvolvimento. Testes frequentes em cada ambiente de desenvolvimento ajudam os programadores a ganhar confiança nas suas aplicações.
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 na produção. Escreva testes que possam ser executados em todos os ambientes de desenvolvimento sem ter em conta fatores específicos de um ambiente, como segredos ou configurações encriptados.
- Projete a sua carga de trabalho para testes. Ao desenvolver a sua aplicação, faça da capacidade de teste um requisito.
- Considere a propriedade do teste, que se baseia na propriedade da carga de trabalho. A sua equipa da carga de trabalho é proprietária dos respetivos testes e não deve depender de outras equipas para testar o código.
- Automatize os testes o máximo possível. O código automatizado alivia a carga de trabalho da sua equipa e impõe uma qualidade consistente.
Exija que a sua equipa de carga de trabalho compreenda as práticas de segurança relacionadas com o desenvolvimento e a garantia de qualidade. Os membros da equipa devem seguir estas práticas sem exceção. Obtenha mais informações em Recomendações para garantir um ciclo de vida de desenvolvimento.
Facilitação do Power Platform
Os Pipelines no Power Platform visam democratizar a gestão do ciclo de vida das aplicações (ALM) para os clientes do Power Platform e do Dynamics 365 ao integrar a automatização ALM e as capacidades de integração e entrega contínuas (CI/CD) no serviço.
As notas de implementação geradas pelo Copilot em pipelines geram um resumo da solução e preenchem previamente o campo de notas de implementação, dando a qualquer pessoa que veja o pedido de implementação ou registe contexto suficiente para compreender o que a solução faz e o que contém.
Podem ser utilizadas Ferramentas de Compilação do Microsoft Power Platform para Azure DevOps para automatizar as tarefas comuns de compilação e implementação relacionadas com as aplicações criadas no Power Platform.
O GitHub Actions para o Power Platform permite aos programadores criar fluxos de trabalho de ciclo de vida de desenvolvimento de software automatizados. Com as Ações GitHub para o Microsoft Power Platform, pode criar fluxos de trabalho no seu repositório para criar, testar, empacotar, lançar e implementar aplicações; executar automatização; e gerir bots e outros componentes criados no Power Platform.
A API Web do verificador do Power Apps fornece um mecanismo para executar verificações de análise estática em personalizações e extensões na plataforma do Microsoft Dataverse.
O Test Studio permite compilar testes de IU integrais para a sua aplicação de tela.
Automatizar os testes com Pipelines do Azure.
A Ferramenta de Revisão de Código Power CAT permite efetuar revisões de código.
O Kit Power CAT Copilot Studio permite configurar agentes e testes. Ao executar testes individuais em relação às APIs do Copilot Studio (Direct Line), as respostas de agente são avaliadas em relação aos resultados esperados.
O ALM Accelerator é uma ferramenta de código aberto que consiste num conjunto de aplicações, scripts e pipelines estruturados para automatizar o processo de integração contínua/entrega contínua.
Microsoft Power Platform CLI (PAC CLI) é uma ferramenta de linha de comandos que suporta a importação e a exportação de soluções do Power Platform e o empacotamento e descompactação de ficheiros de origem de soluções do Power Platform. O PAC CLI está disponível como uma ferramenta de linha de comandos autónoma ou como uma extensão para o Visual Studio Code.
Outras ferramentas e serviços que podem ajudá-lo a padronizar as suas práticas de desenvolvimento incluem:
Azure DevOps, uma coleção de serviços que pode utilizar para criar uma prática de desenvolvimento colaborativa, eficiente e consistente. O Azure DevOps agrupa as seguintes soluções:
- Pipelines do Azure, um serviço de cloud que fornece serviços de compilação e versões para suportar CI/CD das suas aplicações.
- Azure Boards, uma ferramenta de gestão de trabalho baseada na Web que suporta práticas ágeis como Scrum e Kanban.
- Azure Repos, uma ferramenta de controlo de versões que suporta o sistema de controlo de versões distribuído Git e o sistema de Controlo de Versões de Team Foundation.
- Azure Test Plans, uma solução de gestão de testes baseada no browser que fornece as capacidades necessárias para testes manuais planeados, testes de aceitação do utilizador, testes exploratórios e recolha de comentários das partes interessadas.
GitHub Projects, uma ferramenta de gestão de trabalho que pode usar para criar quadros Kanban, relatórios, painéis e outras funções.
Informações relacionadas
Governação do codesenvolvimento