有关标准化工具和流程的建议
适用于此 Power Platform Well-Architected 卓越运营清单建议:
OE:04 | 遵循行业验证的开发和测试做法,优化软件开发和质量保证流程。 为了明确指定角色,请跨组件(如工具、源代码管理、应用程序设计模式、文档和样式指南)标准化做法。 |
---|
本指南介绍有关定义软件开发工具和流程标准的建议。 定义一致的做法可以产生高效的工作负荷团队和高质量的工作。 高性能团队使用经过行业验证的工具和流程来最大程度地减少浪费的工作量和潜在的代码错误。
关键设计策略
优化开发做法的第一步是标准化工具和流程。 如果可能,使用经过行业验证的解决方案,而不是开发自己的解决方案。 对于标准化的所有工具和流程,请实施培训,以便团队可以有效地使用它们。
若要定义有助于优化开发做法的标准,请考虑以下建议。
使用可用于平台的工具
优先使用 Power Platform Tools,然后使用已知且成熟的现成工具并标准化其使用。 高效的工程团队采用一流的工具。 避免开发用于计划、开发、测试和协作的解决方案。 选择满足工作负荷要求的工具。
工具应提供以下功能:
- 工作计划和积压工作管理
- 版本控制和存储库
- 部署管道
- 正在测试
- 代码开发和评审
在某些情况下,一个工具或一套工具可能提供多个功能。 确保您了解工具的功能及其限制,以便它们满足您在各个职能部门的要求。
确定是应投资平台的高级功能还是工具的高级版本。 与高级工具提供的功能相比,请考虑开发自己的解决方案所需的时间和精力。 考虑一次性成本与定期成本。 在大多数情况下,现成工具可为团队提供更高的价值。 例如,托管环境提供现成功能来设置制作者加入消息或提前限制共享。 自己构建这些功能需要开发和持续的维护工作,这可能比投资托管环境的成本更高。
在可行的情况下使用 AI 工具。 AI 工具可帮助进行代码开发、评审和优化。
建立共同发展的治理框架
建立有效的协同开发治理框架,以确保制作者定义的项目和融合团队的一致性和可重复性。
标准化源代码管理系统和做法
采用源代码管理控制系统,如 Azure DevOps。 Azure DevOps 为支持团队提供开发人员服务,以规划工作、协作进行代码开发以及构建和部署应用程序。 从包含您的应用和自定义项的开发环境中导出解决方案,解压缩解决方案,并将组件存储在源代码控制系统中。
确保解决方案版本控制准确无误,遵循在 Azure Boards 中为团队实施 Scrum 做法中规定的冲刺(sprint)和开发人员准则。 拉取请求的测试结果可以采用屏幕截图或视频的形式,用于描述正在构建的功能。 自动执行拉取请求治理流程有助于确保代码质量,而无需手动审查基本检查(例如解决方案版本)。
创建模板以提高效率并提升一致性。 团队运营的所有方面都受益于标准化和简化,从入职任务和故事审查演示文稿到 旨在节省时间并为团队在定义用户故事、功能、错误和任务时提供指导的工作项模板 。
评估指标以量化有效性
开发和质量保证团队仅在量化其有效性时才能改进。 为了量化有效性,他们必须确定衡量开发人员速度的指标并定义关键绩效指标 (KPI)。
这些指标的示例包括:
- 提前期:任务或用户情景从积压工作到生产部署所需的时间。
- 平均解决时间:修复代码中的 bug 或缺陷所花费的平均时间。
- 更改失败率:导致失败的更改的百分比。
为了帮助利益干系人和工作负荷团队轻松跟踪速度,请使用仪表板或其他报告工具可视化 KPI。
标准化工作负荷团队编写、评审和记录代码的方式
使用样式指南标准化工作负荷团队编写、评审和记录代码的方式。 标准样式使协作变得简单,并有助于新开发人员加入。 为了有效工作,新开发人员需要了解工作负荷团队的运作方式。 具有明确定义的标准的样式指南可以简化其培训流程。
样式指南应涵盖:
- 解决方案、项目、控件、操作、环境、分支和生成的命名约定
- 错误处理标准
- 常见模式或库
跟踪架构决策,以帮助团队保持对工作负载的新理解,并允许新团队成员了解在工作负载生命周期内做出的设计决策。 在您的架构决策文档中包括考虑的工具和技术、决策的原因以及决策中考虑的功能和非功能要求。 记录决策,避免重复解释或重新与新成员或利益干系人进行讨论。
实施解决技术债务的标准和指南
平台和技术快速变化,会定期推出新的特性和功能。 采用一种思维模式,即技术债务是工作负荷团队的可交付结果所必需的。 这种思维模式激励团队定期考虑和解决技术债务,以避免积累。 将技术债务作为积压工作中的定期任务解决。 确保您有适当的流程来保持与平台更改(新功能和弃用)保持同步,并制定如何应对工作负载变化的行动计划。
例如,产品功能可能即将弃用或替换为不同的版本。 工作负载团队必须优先完成到新功能的过渡,以避免影响工作负载。 团队可能会构建自定义解决方案或控件,随着时间的推移,它将成为平台的一部分。 您的工作负载团队必须过渡到该平台功能,这样可以减少技术债务并维护您自己的工作负载。
使用经过行业验证的应用程序设计模式来确保您的应用程序可靠、高性能且安全。 与为应用程序开发自己的解决方案相比,使用这些模式可节省时间和精力。 选择有利于工作负荷的模式。 定期查看设计模式,以确保在工作负荷发展时使用正确的模式。
实现左移测试方法
通过尽早且经常在整个开发流程中执行单元测试来实现左移测试方法。 在每个开发环境中频繁测试有助于开发人员对其应用程序充满信心。
若要通过左移方法帮助创建测试策略,请考虑以下原则:
- 在尽可能低的级别编写测试。 支持具有最少外部依赖项的测试,并在生成过程中运行测试。
- 编写一次测试,并在任何地方运行测试,包括生产环境。 编写可在每个开发环境中运行的测试,而无需考虑特定于一个环境的因素,例如加密的机密或配置。
- 设计用于测试的工作负载。 开发应用程序时,请将可测试性作为一项要求。
- 考虑基于工作负载所有权的测试所有权。 您的工作负载团队拥有它的测试,不应依赖其他团队来测试其代码。
- 尽可能自动化测试。 自动化代码可减轻工作负荷团队的负担,并强制实施一致的质量。
要求工作负荷团队了解与开发和质量保证相关的安全做法。 团队成员必须无一例外地跟随这些做法。 有关详细信息,请参阅 保护开发生命周期的建议。
Power Platform 便利化
管道旨在通过 Power Platform 将 ALM 自动化以及持续集成和持续交付(CI/CD)功能引入服务,为 Power Platform Dynamics 365 客户实现应用程序生命周期管理(ALM)的大众化。
Copilot 在管道中生成的部署说明 会生成解决方案摘要并预填部署说明字段,为查看部署请求或记录的任何人提供足够的上下文来了解解决方案的作用及其包含的内容。
Microsoft Power Platform Build Tools for Azure DevOps 可用于自动执行与所构建 Power Platform应用程序相关的常见构建和部署任务。
GitHub Actions 使 Power Platform 开发人员能够构建自动化的软件开发生命周期工作流。 借助适用于 Microsoft Power Platform 的 GitHub Actions,您可以在存储库中创建工作流来构建、测试、打包、发布和部署应用;执行自动化;以及管理基于 Power Platform 构建的机器人和其他组件。
Power Apps Checker Web API 提供了一种机制,用于针对平台的 Microsoft Dataverse 自定义项和扩展运行静态分析检查。
Test Studio 允许您为画布应用程序构建端到端 UI 测试。
使用 Azure Pipelines 自动执行测试。
Power CAT Code Review Tool 允许您执行代码审查。
Power CAT Copilot Studio Kit 允许您配置 Copilot 和测试。 通过针对 Copilot Studio API()Direct Line 运行单个测试,将根据预期结果评估 Copilot 响应。
ALM Accelerator 是一个开源工具,由一组应用程序、脚本和管道组成,旨在自动化持续集成/持续交付过程。
Microsoft Power Platform CLI( PAC CLI)是一个命令行工具,支持解决方案的 Power Platform 导入和导出,以及打包到解决方案源文件和从 Power Platform 解决方案源文件解包。 PAC CLI 可作为 独立的命令行工具 使用,也可作为 Code Visual Studio 的扩展使用。
可帮助您标准化开发做法的其他工具和服务包括:
Azure DevOps,这是一组服务,可用于构建协作、高效且一致的开发实践。 Azure DevOps 捆绑以下解决方案:
- Azure Pipelines,一种云服务,提供生成和发布服务以支持应用程序的 CI/CD。
- Azure Boards,一种基于 Web 的工作管理工具,支持 Scrum 和看板等敏捷实践。
- Azure Repos,一种支持 Git 分布式版本控制系统和 Team Foundation 版本控制系统的版本控制工具。
- Azure Test Plans,一种基于浏览器的测试管理解决方案,提供计划内手动测试、用户验收测试、探索性测试和收集利益干系人反馈所需的功能。
GitHub Projects,一种工作管理工具,可用于创建看板、报告、仪表板和其他功能。