原文出处:https://www.scaledagileframework.com/built-in-quality/
"Inspection does not improve the quality, nor guarantee quality. Inspection is too late. The quality, good or bad, is already in the product. Quality cannot be inspected into a product or service; it must be built into it.” —W. Edwards Deming
内建质量
内建质量实践确保每个增量的每个解决方案元素在整个开发过程中都符合适当的质量标准。 企业能够以最短的可持续交付时间提供新功能并适应快速变化的业务环境,这取决于解决方案的质量。因此,内建质量是SAFe核心价值之一应该不足为奇。但内建质量并非SAFe独有。相反,它是精益敏捷思维模式的核心原则,它有助于避免与召回,返工和缺陷修复相关的延迟成本。内建质量理念应用系统思维来优化整个系统,确保整个价值流的快速流动,并保证每个人的工作质量。
敏捷宣言也注重质量:“持续关注技术卓越和良好的设计提高敏捷性。”[。本文中的许多实践都受到极限编程(XP)的启发和描述。这些实践有助于敏捷团队确保他们构建的解决方案具有高质量,可以轻松适应变化,并且可以进行测试,部署和恢复。这些实践的协作性质以及对频繁验证的关注,创造了一种新兴的文化,其中工程和工艺是关键的业务推动者。
软件,硬件和固件都具有相同的内建质量目标和原则。但是,工作物理和经济学在硬件和固件方面有所不同,需要不同的实践。它们包括更加注重建模和仿真,以及更多探索性的早期迭代,更多的设计验证以及频繁的系统级集成。
详述
当企业需要响应变化时,基于良好技术基础的软件和系统更容易改变和适应。对于大型解决方案,这更为关键,因为即使是微小缺陷和错误假设的累积效应也会产生不可接受的后果。 实现高质量的系统是一项严肃的工作,需要持续的培训和承诺,但投资是由其许多商业利益所保证的:
- 提高客户满意度
- 提高速度和交付可预测性
- 更好的系统性能
- 提高创新,扩展和满足合规性要求的能力
以下部分总结了实现软件内建质量,硬件和固件的推荐做法。
软件实践
当企业必须快速响应变化时,高质量的软件和系统更易于修改和调整。许多受XP启发的实践,以及对频繁验证的关注,创造了一种新兴的文化,其中工程和工艺是关键的业务推动者。这些做法包括: 持续集成(CI) - 将每个开发人员工作空间的代码合并到一个主要代码分支中的做法,每天多次。这降低了延迟集成问题的风险及其对系统质量和程序可预测性的影响。团队至少每天执行本地集成。但为了确认工作正在按预期进行,每次迭代应至少完成一次或两次完整的系统级集成。
测试优先 - 是一组实践,鼓励团队在实现代码之前深入思考预期的系统行为。测试优先方法可以进一步分为两类:
1) 测试驱动开发(TDD),开发人员首先编写自动化单元测试,运行测试以观察失败,然后编写通过测试所需的最少代码
2)验收测试驱动开发(ATDD),其中故事和功能验收标准表示为自动验收测试,可以连续运行以确保随着系统的发展继续验证。
重构 - 这是一种“重构现有代码体系的规范技术,在不改变其外部行为的情况下改变其内部结构。”重构是紧急设计和敏捷性的关键推动因素。为了保持系统的稳健性,团队通过一系列小步骤不断重构代码,为未来的发展奠定了坚实的基础。
结对工作 - 敏捷团队可以使用各种技术进行配对,其中许多技术可以组合使用。根据XP的规定,一些团队使用结对编程进行所有代码开发。其他人将开发人员和测试人员放在一起; 随着故事的完成,每个人都会回顾对方的工作。仍然,其他人在需要时配对,开发人员为关键代码段配对,重构遗留代码,开发接口定义以及系统级集成挑战。配对工作也是重构,CI,测试自动化和集体所有权的重要基础。它还减少或消除了实施后代码审查和返工的需要。
集体所有权 - 这种做法邀请所有团队成员共同理解并负责解决方案。“任何开发人员都可以更改任何代码行来添加功能,修复错误,改进设计或重构。”这对于具有大量代码库的解决方案至关重要,特别是如果只有原始开发人员可以进行更改。实际上,这与依赖专家有类似的效果,延迟将决定当天。没有集体所有权,就没有集体知识,导致维持或增强解决方案的风险更高。
敏捷架构 - 通过将新兴设计与有意架构相平衡,敏捷架构实践可实现增值交付。这避免了Big Design Upfront(BDUF)和阶段门控方法的“开始 - 停止 - 启动”性质。创建 Architectural Runway 是实现敏捷架构的主要工具之一。该跑道由支持实施优先的近期特征所必需的代码,组件和技术基础设施组成,无需过多的重新设计和延迟。
**DevOps和持续交付管道的作用 **
从规划到交付, DevOps 思维模式和实践通过构建和自动化持续交付管道来增加开发和IT运营之间的协作。文化的这种转变以及自动化提高了部署的频率和质量。在SAFe中,该管道包含四个要素:持续探索,持续集成,持续部署和按需发布。 DevOps只是认识到手动流程是快速交付价值,高质量,提高生产力和安全性的敌人。自动化还可以快速创建可重复的开发和测试环境和流程,这些环境和流程是自我记录的,因此更易于理解,改进,保护和审计。整个连续输送管道实现自动化,以最高质量实现快速,精益的价值流。
** 质量管理体系的作用**
合规性是指允许团队应用精益敏捷开发方法来构建具有最高质量的系统,同时确保满足任何法规,行业或其他相关标准的策略,活动和工件。 为了满足合规性要求,组织必须证明其系统符合其预期目的,并且没有意外的有害后果。此外,客观证据必须证明该系统符合这些标准。精益质量管理系统(QMS) - 定义批准的实践,政策和程序 - 用于构建高保证系统。这些系统旨在确保开发活动和结果符合所有相关法规和质量标准,并提供必要的文档证明。