有关标准化工具和流程的建议

适用于此 Power Platform Well-Architected 卓越运营清单建议:

OE:04 遵循行业验证的开发和测试做法,优化软件开发和质量保证流程。 为了明确指定角色,请跨组件(如工具、源代码管理、应用程序设计模式、文档和样式指南)标准化做法。

本指南介绍有关定义软件开发工具和流程标准的建议。 定义一致的做法可以产生高效的工作负荷团队和高质量的工作。 高性能团队使用经过行业验证的工具和流程来最大程度地减少浪费的工作量和潜在的代码错误。

关键设计策略

优化开发做法的第一步是标准化工具和流程。 如果可能,使用经过行业验证的解决方案,而不是开发自己的解决方案。 对于标准化的所有工具和流程,请实施培训,以便团队可以有效地使用它们。

若要定义有助于优化开发做法的标准,请考虑以下建议。

使用可用于平台的工具

优先使用 Power Platform Tools,然后使用已知且成熟的现成工具并标准化其使用。 高效的工程团队采用一流的工具。 避免开发用于计划、开发、测试和协作的解决方案。 选择满足工作负荷要求的工具。

工具应提供以下功能:

  • 工作计划和积压工作管理
  • 版本控制和存储库
  • 部署管道
  • 正在测试
  • 代码开发和评审

在某些情况下,一个工具或一套工具可能提供多个功能。 确保您了解工具的功能及其局限性,以便它们能够满足您在各个功能方面的要求。

确定是应投资平台的高级功能还是工具的高级版本。 与高级工具提供的功能相比,请考虑开发自己的解决方案所需的时间和精力。 考虑一次性成本与定期成本。 在大多数情况下,现成工具可为团队提供更高的价值。 例如,托管环境提供现成功能来设置制作者加入消息或提前限制共享。 自己构建这些功能需要开发和持续的维护工作,这可能比投资托管环境的成本更高。

在可行的情况下使用人工智能工具。 AI 工具可帮助进行代码开发、评审和优化。

建立共同开发的治理框架

建立有效的共同开发治理框架,以确保创建者定义的项目和融合团队的一致性和可重复性。

标准化源代码管理系统和做法

采用源代码管理控制系统,如 Azure DevOps。 Azure DevOps 为支持团队提供开发人员服务,以便规划工作、协作开发代码以及构建和部署应用程序。 从包含您的应用和自定义项的开发环境中导出解决方案,解压缩解决方案,并将组件存储在源代码控制系统中。

确保解决方案版本的准确性,遵循在 Azure Boards 中为您的团队实施 Scrum 实践中规定的冲刺和开发人员指南。 拉取请求的测试结果可以采用屏幕截图或视频的形式,用于描述正在构建的功能。 自动执行拉取请求治理流程有助于确保代码质量,而无需手动审查基本检查(例如解决方案版本)。

创建模板,提高效率并促进一致性。 团队运作的各个方面都能从标准化和简化中获益,从入门任务和故事审查演示到工作项目模板,这些模板旨在节省时间,并在定义用户故事、功能、错误和任务时为团队提供指导。

评估指标以量化有效性

开发和质量保证团队仅在量化其有效性时才能改进。 为了量化有效性,他们必须确定衡量开发人员速度的指标并定义关键绩效指标 (KPI)。

这些指标的示例包括:

  • 前置时间:任务或用户故事从积压到生产部署所需的时间。
  • 平均解决时间:修复代码中的错误或缺陷所花费的平均时间。
  • 变更失败率:导致失败的更改百分比。

为了帮助利益干系人和工作负荷团队轻松跟踪速度,请使用仪表板或其他报告工具可视化 KPI。

标准化工作负荷团队编写、评审和记录代码的方式

使用样式指南标准化工作负荷团队编写、评审和记录代码的方式。 标准样式使协作变得简单,并有助于新开发人员加入。 为了有效工作,新开发人员需要了解工作负荷团队的运作方式。 具有明确定义的标准的样式指南可以简化其培训流程。

样式指南应涵盖:

  • 解决方案、项目、控件、操作、环境、分支和生成的命名约定
  • 错误处理标准
  • 常见模式或库

跟踪体系结构决策,以帮助团队保持对工作负荷的全新理解,并允许新团队成员了解在工作负荷生命周期内做出的设计决策。 在架构决策文档中包括所考虑的工具和技术、决策的原因以及决策中考虑的功能和非功能性需求。 记录决策,避免重复解释或重新与新成员或利益干系人进行讨论。

实施解决技术债务的标准和指南

平台和技术快速变化,会定期推出新的特性和功能。 采用一种思维模式,即技术债务是工作负荷团队的可交付结果所必需的。 这种思维模式激励团队定期考虑和解决技术债务,以避免积累。 将技术债务作为积压工作中的定期任务解决。 确保您有适当的流程来与平台更改(包括新功能和弃用)保持同步,并制定如何应对工作负载更改的行动计划。

例如,产品功能可能即将弃用或替换为不同的版本。 工作负荷团队必须优先完成向新功能的转换,以避免影响工作负荷。 团队可能会生成自定义解决方案或控件,随着时间的推移,这些解决方案或控件将成为平台的一部分。 您的工作负载团队必须过渡到该平台功能,这样可以降低技术债务并维护您自己的工作负载。

使用经过行业验证的应用程序设计模式,确保应用程序可靠、高效、安全。 与为应用程序开发自己的解决方案相比,使用这些模式可节省时间和精力。 选择有利于工作负荷的模式。 定期查看设计模式,以确保在工作负荷发展时使用正确的模式。

实现左移测试方法

通过尽早且经常在整个开发流程中执行单元测试来实现左移测试方法。 在每个开发环境中频繁测试有助于开发人员对其应用程序充满信心。

若要通过左移方法帮助创建测试策略,请考虑以下原则:

  • 尽可能在最低级别编写测试。 支持具有最少外部依赖项的测试,并在生成过程中运行测试。
  • 只需编写一次测试,即可在包括生产在内的所有地方运行测试。 编写可在每个开发环境中运行的测试,而无需考虑特定于一个环境的因素,例如加密的机密或配置。
  • 为测试设计工作负载。 开发应用程序时,请将可测试性作为一项要求。
  • 考虑测试所有权,测试所有权基于工作负载所有权。 您的工作负载团队拥有正在测试的内容,不应依赖其他团队来测试其代码。
  • 尽可能实现测试自动化。 自动化代码可减轻工作负荷团队的负担,并强制实施一致的质量。

要求工作负荷团队了解与开发和质量保证相关的安全做法。 团队成员必须无一例外地遵循这些做法。 了解更多信息,请参阅确保开发生命周期安全的建议

Power Platform 便利化

Power Platform 中的管道旨在通过将 ALM 自动化和持续集成和持续交付 (CI/CD) 功能引入服务中,面向 Power Platform 和 Dynamics 365 客户广泛提供应用程序声明周期 (ALM)。

管道中的 Copilot 生成的部署注释会生成解决方案摘要并预填部署注释字段,让查看部署请求或记录的任何人都有足够的上下文来了解解决方案的作用及其包含的内容。

适用于 Azure DevOps 的 Microsoft Power Platform Build Tools 可用于自动执行与基于 Power Platform 生成的应用相关的常见生成和部署任务。

适用于 Power Platform 的 GitHub Actions 使开发人员能够生成自动化的软件开发生命周期工作流。 借助适用于 Microsoft Power Platform 的 GitHub Actions,您可以在存储库中创建工作流来构建、测试、打包、发布和部署应用;执行自动化;以及管理基于 Power Platform 构建的机器人和其他组件。

Power Apps 检查器 Web API 提供了一种机制,用于根据 Microsoft Dataverse 平台的自定义和扩展来运行静态分析检查。

Test Studio 允许您为画布应用程序构建端到端的 UI 测试。

使用 Azure Pipelines 自动执行测试

Power CAT 代码审查工具可让您执行代码审查。

Power CAT Copilot Studio 工具包允许您配置代理和测试。 通过针对 Copilot Studio 应用程序接口(Direct Line)运行单个测试,根据预期结果对代理响应进行评估。

ALM 加速器是一款开放源代码工具,由一组应用程序、脚本和管道组成,旨在自动执行持续集成/持续交付流程。

Microsoft Power Platform CLI (PAC CLI) 是一款命令行工具,主要支持 Power Platform 解决方案的导入和导出,以及对 Power Platform 解决方案源文件进行压缩和解压缩。 PAC CLI 可作为独立的命令行工具 Visual Studio Code 的扩展

可帮助您标准化开发做法的其他工具和服务包括:

  • Azure DevOps,这是一个服务集合,您可以用它来构建协作、高效和一致的开发实践。 Azure DevOps 捆绑以下解决方案:

    • Azure Pipelines,一种提供构建和发布服务的云服务,可为应用程序的 CI/CD 提供支持。
    • Azure Boards,基于网络的工作管理工具,支持 Scrum 和 Kanban 等敏捷实践。
    • Azure Repos,一款支持 Git 分布式版本控制系统和 Team Foundation 版本控制系统的版本控制工具。
    • Azure 测试计划,一款基于浏览器的测试管理解决方案,提供计划手动测试、用户验收测试、探索性测试和收集利益相关者反馈所需的功能。
  • GitHub 项目:一款工作管理工具,可用于创建看板、报告、仪表盘和其他功能。

代码开发治理

后续步骤