你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

有关正式化软件开发和管理的建议

适用于此 Azure Well-Architected 框架卓越运营清单建议:

OE:03 使软件构思和规划过程正式化。 从既定的行业和组织标准中取材。 使用常见的优先积压工作和足够详细的规范。 根据结果,推动规划过程中的持续改进。

本指南介绍根据既定标准管理软件开发实践的建议。 团队生成高质量软件的能力依赖于结构化、协作的开发规划方法。 产品所有者和经理必须能够清楚地了解开发人员在开发周期中随时执行的工作,并向利益干系人阐明这些工作。 相反,开发人员必须通过编写精良的功能、用户情景和验收条件来了解开发周期的目标。 既定标准定义了应如何执行开发实践,并允许工作负载团队进行有效协作,从而降低目标和预期混淆的风险。

关键设计策略

将软件开发实践规范化,以帮助确保产品所有者、项目经理和开发人员了解每个冲刺的目标,并为利益干系人提供一致的质量。 若要查看有关开发实践的指南,请参阅 持续集成指南

开发规划标准

  • 协作:定义对工作负荷的建议更改的过程应该是协作工作。 工作负荷的大多数更改会影响多个函数和/或组件,因此让尽可能多的工作负载团队成员参与有助于确保不会遗漏重要注意事项,并且每个人都知道对特定域的影响。 协作还有助于明确定义更改的范围,以及如何将完成更改所需的任务划分为明确定义的工作项,因为跨领域具有专业知识的较大团队将能够为所需的工作量提供经验支持的估计。

  • 工具:使用久经行业验证的工具和流程,如 敏捷Scrum看板。 开发自己的工具和流程是一项重大任务,需要花费大量时间和开发周期,否则可能会花费在工作负载上。 大多数经验丰富的 DevOps 工程师和产品所有者都熟悉这些类型的工具和流程,因此采用它们的学习曲线应该最小。 同样,新员工的入职流程也将受益于使用标准工具和流程,因为他们可能已经接触过相同的工具和流程。

权衡:如果敏捷方法过于规范,则敏捷方法可能会变得过于严格。 努力在定义完善的标准和创新之间取得平衡。

  • 部署:计划使用频繁的小型迭代部署,而不是大型的不频繁部署。 使用此方法有助于使用户情景和工作项从项目管理的角度来看易于管理,并降低部署失败时发生大规模问题的风险。

  • 术语:标准化 已完成 的开发周期的定义,以帮助确保成功完成支持功能(包括测试、文档和辅助功能)。

  • 通信:为产品所有者和项目经理定义标准协议,以便在内部和外部推广即将发布的版本。 例如,可以建立一个标准,以便与外部各方就即将发布的版本进行通信。 该标准可能规定,应在发布前两周发送通信,并在发布前 24 小时发送提醒。

  • 用户情景:标准化用户情景的模板。 确保每个用户情景都是从最终用户的角度编写的离散工作单元。 编写良好的用户情景应具有以下特征:

    • 每个用户情景应完全相互独立。 使用户情景彼此独立,可避免与重叠工作混淆,并帮助团队了解给定用户情景的工作是否依赖于任何其他用户情景的工作,这有助于计划和确定优先级。

    • 每个用户情景都是可协商的。 最终用户和工作负载团队成员的观点对于捕获可在短时间内完成的现实用户情景至关重要。

    • 用户情景对最终用户很有价值。 从最终用户的角度编写用户情景时,可以捕获他们感兴趣的更改,这将为他们的体验增加价值。 将用户情景分解为工作项时保持此焦点有助于确保每个部署都提供更好的体验。

    • 用户情景所需的工作量是可以高度自信地估计的。 如果无法接近给定用户情景所需的小时数,则规划将很困难,错过最后期限的可能性会增加,这可能会导致对其他计划工作的级联影响。

    • 编写良好的用户情景很小,因此可以在几周内完成。 较小范围的故事有助于保持其可估计性和可管理性,并有助于使工作项可完成。

    • 用户情景应可测试。 如果无法测试某个功能是否已交付,最终用户就不能确信目标已实现。 即使尚未为给定用户情景编写测试,也应该清楚地了解如何开发测试来证明功能的交付。

  • 验收条件:标准化验收条件的模板。 确保验收条件专门与用户情景相关,并且可以使用一个或多个验收测试明确证明。

  • 跟踪:确保开发过程可跟踪。 应清楚地跟踪生产工作负荷的状态和相关代码,并将其追溯到质量保证测试、验收标准、用户情景和功能。 在某些情况下,例如医疗保健等,详细跟踪也可能是法规要求。

  • 评审:通过开发周期回顾和事后分析定期对开发实践执行内部审核。 过程反射应该无责备,并应专注于可以作为改进应用的学习。 确保团队反映用户情景和任务在定义必要任务方面的有效性以及时间估计的准确性。

  • 报告:为提供侧重于更改的有用指标的利益干系人标准化报表。 通过专注于更改,可以跟踪产品加速和减速。 有用的指标可以包括以下内容中的更改:

    • 采用的每月增长率。

    • 性能。

    • 训练时间。

    • 事件的频率。

    报告不应用作评估个人工作的工具,因此请避免为每个工程师使用故事点或代码行等指标。

Azure 简化

Azure Boards是一项基于 Web 的服务,使团队能够在整个开发过程中规划、跟踪和讨论工作。 它非常适合基于敏捷的开发实践。

GitHub 项目 是一种可自定义的项目管理工具,可以使用 GitHub 中的问题和拉取请求来组织项目和集成。

卓越运营清单

请参阅完整的建议集。