|
内置质量:质量不能被检查到产品或服务中;它必须内置在其中。28
检验不能提高质量,也不能保证质量。检查为时已晚。质量,无论好坏,都已经在产品中了。质量不能被检查到产品或服务中;它必须内置在其中。 ——W·爱德华兹·戴明 内置质量 内置质量是一组实践,有助于确保敏捷团队在业务和技术领域的产出在创造客户价值的整个过程中符合适当的质量标准。 详 为了支持业务敏捷性,企业必须不断响应市场变化。推动业务价值的工作产品的质量直接决定了团队交付解决方案的速度。尽管工作产品因领域而异,但它们可能涉及软件、硬件设计、脚本、配置、图像、营销材料、合同和其他元素。建立在遵循标准的稳定基础上的产品更容易改变和适应。对于大型解决方案来说,内置质量更为重要,因为即使是微小的缺陷和错误的假设的累积效应也可能造成不可接受的后果。 建立质量需要持续的培训和承诺。但其好处值得投资,包括: 更高的客户满意度 提高速度和交付可预测性 更好的系统性能 提高创新、扩展和满足合规性要求的能力 内在质量与 SAFe 原则 6 中描述的价值快速流动有关:让价值不间断地流动。通过将学习转移到时间轴上,可以加速问题发现并采取纠正措施。改进的协作、工作流程自动化、更频繁的交付和更快的客户反馈支持更快的学习过程。 SAFe 在五个关键领域应用内置质量。每个领域都有一套质量实践,从普遍适用的通用实践到特定于一个或几个领域的实践。 图 1 提供了 SAFe 中内置质量的综合视图。 本文的其余部分将更详细地介绍图 1 的组件。 内置质量域 内置质量实践因应用它们的领域而异。尽管创造客户价值的内置质量方法背后的意图相同,但实际实践反映了其环境和背景的复杂性。以下是 SAFe 中的内置质量域: 业务功能 业务职能包括营销、销售、人力资源、财务、供应链管理和其他非 IT 学科。除了日常操作外,每个功能还包括复杂的工作,需要特定的质量输出才能成功。例如,创建新的营销活动或制定新的人力资源政策涉及某些质量期望。 软件应用程序 软件是业务敏捷性、扩展业务的能力以及在数字时代更好地竞争的重要贡献者。但是,要抓住这些机会,就需要在提供解决方案时保持可预测的质量。 IT系统 IT 基础设施为当今企业解决方案领域的庞大生态系统提供支持。解决方案越复杂,IT 系统必须越复杂才能维持它们。为了支持企业的可靠运行,IT系统需要大量的质量标准,因此需要适当的质量实践。 硬件 当用于计算机技术时,硬件通常是指电缆、显示器、集成电路和计算机系统的其他有形元素。但更一般地说,硬件是指具有具体物理特性的设备:质量、尺寸和物质。示例包括电机、齿轮、工具、底盘、外壳以及简单或复杂的机构。由于其更改成本明显更高,硬件系统需要一种独特的质量方法。 信息物理系统 信息物理系统是复杂的系统,其中多个物理元素由软件算法控制。例子包括机器人、飞机和汽车。这些是世界上最复杂的系统之一,通常包括复杂的电气、机械、光学、流体、感官和其他子系统。它们的复杂性和故障的高影响强调了质量在此类系统中的至关重要性。 基本的敏捷质量实践 基本的敏捷质量实践可以应用于任何领域的工作产品。它们已经证明了自己的价值,并为知识工作者提供了一个共同的起点,以了解和改进使自己和客户受益的工件、工作产品、系统和服务的质量属性。以下各节介绍了一组五种 SAFe 基本敏捷质量实践。 向左移动学习 每一次开发工作都涉及许多未知数,这些未知数会随着开发的进展和团队学习新的事实而浮出水面。如果学习发生在过程的后期,潜在的问题将严重影响解决方案,并导致重大的返工和延迟。然而,如果学习发生得更早,或者向左移动,问题就会更早显现出来,从而能够以最小的影响采取纠正措施(图2)。 向左移动学习不仅意味着某些操作在时间轴上发生得更早,还意味着一些基本过程的结构发生了变化。例如,测试优先的方法需要摆脱传统测试。相反,在实现所需的求解函数之前,会尽可能创建测试。 配对和同行评审 结对工作描述了一种做法,其中两个知识工作者实时协作处理同一资产。通常,一个充当驱动者,直接推进工作产品,而另一个充当导航器,提供实时评估和反馈。团队成员经常转换角色。由于工作成果将包含每个成员的共享知识、观点和最佳实践,因此结对可以创造并保持更高的质量。随着队友们相互学习,整个团队的技能组合都会得到提升和拓宽。此外,同行评审有助于在一个团队成员检查另一个团队成员的工作成果时发现质量问题。例如,许多围绕软件的治理流程都要求将同行评审作为一项合规活动。 集体所有权和T型技能 集体所有权是一种质量实践,其中单个团队成员具有更新任何相关资产所需的技能和权限。这种方法减少了团队之间的依赖关系,并确保任何单个团队成员或团队都不会阻碍价值交付的快速流动。任何个人都可以添加功能、修复错误、改进设计或重构,因为工作产品不归某个团队或个人所有。集体所有权由鼓励一致性的质量标准支持,使每个人都能够理解和维护每个组件的质量。“T型技能”进一步实现了集体所有权。T 型技能的特征是在某个领域拥有丰富的经验,但在其他领域也具有广泛的技能。T型技能也代表了与他人良好合作的能力。 工件标准和完成定义 组织创建和维护的资产必须遵守有助于确保其对业务价值的标准。这些标准可能反映了工件的构建方式或它们必须表现出的属性。标准通常是特定组织和解决方案环境所独有的,逐渐出现,经常验证,并通过多个反馈周期进行纠正。为了有效地维护工件标准,团队必须了解其存在的动机。工件设计实践和自动化的有效使用有助于促进标准。制定生产工件标准涉及应用完成定义 (DoD),这是确保工作产品完整和正确的基本方法。每个团队、培训和企业都应该构建适合其需求的 DoD。 工作流程自动化 工作流往往有许多手动步骤。从一个工人到另一个工人的交接、搜索感兴趣的资产以及按照标准手动检查资产只是其中的几个例子。事实是,所有这些手动步骤都容易出错,并导致流程延迟。如果团队花时间投资于支持活动的自动化程度更高的管道,则其中许多任务都可以自动化。由于降低了执行成本和对标准的内在遵守,自动化提供了可观的收益。当然,这可以逐步完成,它通常从建立看板系统开始,然后注意可以自动化的步骤。有时,第一步只是在项目更改状态时设置自动通知。更简单的是,许多这样的系统被设计为真正的拉动系统,工人只需检查系统,根据其状态查看哪些工作可供他们使用。在这种情况下,切换是自动的,不需要单独的通信开销来了解工作产品的状态。 企业质量标准 以上各节描述了一组可以应用于每个业务领域的五种基本的敏捷质量实践。实际上,业务运营的每个方面——会计和财务、法律、销售、开发、人力资源、营销、运营、生产等——都受到内部或外部实施的质量标准的约束,这些标准通常与合规性要求相关联。每个业务功能都会产生特定的输出,这些输出必须满足与该上下文相关的质量标准。 无论您的业务职能如何,通过敏捷性实现质量的步骤都包括以下内容: 组织成敏捷团队,接受培训并进行迭代。 为您的职能定义标准和合规性策略。 就工作流的项目和活动的完成 (DoD) 定义达成一致。 实施基本的敏捷质量实践。 测量和学习。将敏捷质量实践进一步专业化到您的特定职能部门。 坚持不懈地改进。 敏捷软件开发质量实践 软件很可能是应用内置质量最丰富、定义最好的领域。这是出于必要性,因为软件极其复杂和无形。您无法触摸或看到它,因此传统的检查、测量和测试方法是不够的。如果质量不是地方性的,那么它就根本不可能存在。为了应对这一新挑战,许多新的质量实践(如上述实践)都受到极限编程 (XP) 的启发,它热衷于快速提高质量。他们已经证明了自己的价值,现在已经开始影响其他领域的质量实践。下面的实践非常适用于软件开发,我们将在该上下文中描述它们,但它们也可以应用于其他领域。 持续集成 构建大规模价值需要知识工作者逐步构建系统,从而导致频繁的小更改。必须不断检查每个冲突和错误,并与系统的其余部分集成,以确保兼容性和向前推进。持续集成 (CI) 为开发人员提供了快速反馈(图 3)。每个更改都会快速构建、集成,然后在多个级别进行测试。CI 可自动执行在不同环境中测试和迁移更改的过程,并在测试失败时通知开发人员。 团队内部和团队之间的持续集成至关重要,使他们能够快速识别和解决代码库所有部分的问题。 测试优先实践 敏捷团队在基于流程的快速系统中运行,以快速开发和发布高质量的业务能力。敏捷团队不是在最后执行大部分测试,而是尽早定义并执行许多测试,并且通常将其作为集成过程的一部分。使用测试驱动开发 (TDD) 为小代码单元定义测试,使用行为驱动开发 (BDD) 为故事、功能和功能验收标准定义测试,使用精益用户体验为功能或功能收益假设定义测试(图 4)。构建质量可确保敏捷开发的频繁更改不会引入新的错误,同时实现快速、可靠的执行。 重构 不断变化的技术和不断发展的业务目标使得维护和不断增加业务价值变得困难。然而,未来有两条道路: 不断向现有代码库添加新功能,最终达到无法维护的“丢弃”状态 不断重构系统,为高效交付当前业务价值和未来业务价值奠定基础 重构在不改变其外部行为的情况下改进代码区域的内部结构或操作更好。通过持续的重构,企业在软件资产上的投资的使用寿命可以大大延长,使用户能够在未来几年内从价值流中受益。但是重构需要时间,而且投资回报不是立竿见影的,因此容量规划考虑因素必须留出时间和精力。有关详细信息,请参阅有关重构的扩展指南文章。 持续交付 持续交付提供了在客户需要时向客户释放价值的能力。这是通过持续交付管道(CDP)实现的,它包含四个方面:持续探索、持续集成、持续部署和按需发布。CDP 使组织能够将其当前管道映射到新结构中,并使用不懈的改进来为客户提供价值。反馈循环在内部、内部和步骤之间以及客户和企业之间的外部循环,推动改进。内部反馈循环通常以流程改进为中心;外部循环通常以解决方案改进为中心。这些改进共同创造了协同效应,确保企业“以正确的方式构建正确的东西”,并经常为市场提供价值。此外,SAFe DevOps 还具有建立快速可靠的价值交付机制的关键实践领域。 持续交付可帮助 SAFe 团队按需发布。然而,以质量发布需要一个特定的、可扩展的完成定义,这有助于确保内置必要的质量。图 5 显示了一个示例: 为了支持安全实践,团队为每个版本生成软件物料清单 (SBOM),描述商业和开源组件和依赖项,以确保没有漏洞。 敏捷架构 敏捷架构是一组价值观、实践和协作,支持系统的主动、演进设计和架构。它采用DevOps思维方式,允许系统的架构不断发展,同时支持当前用户的需求。 敏捷架构通过协作、紧急设计、有意架构和设计简单性来支持敏捷开发实践。它还支持针对可测试性、可部署性和可更改性进行设计。快速原型设计、基于集合的设计、领域建模和去中心化创新反过来又支持敏捷架构。 Architectural Runway 的基本概念允许敏捷团队和培训人员为未来的业务能力和特性提供有效的支持,同时逐步验证底层架构假设。 IT 系统质量实践 每个现代企业都依赖于正常运行的 IT 系统来实现其业务成功。随着越来越多的业务工作流由 IT 提供支持,确保 IT 系统的可靠性、可扩展性、安全性和安全性变得越来越重要。它需要一种强大的方法来构建这些系统的质量。下面介绍了特定于 IT 的质量实践示例。 基础架构即代码 确保 IT 生态系统质量的关键挑战之一来自始终如一地定义和维护配置。配置通常表示数百甚至数千个环境参数,这些配置会不同步,并导致企业解决方案环境的不同部分出现问题。“基础架构即代码”是一种以编程方式控制这些配置的方法,因此在一致和集成地定义、采购和维护配置方面,从自动化中充分受益。容器化是基础架构即代码的一个很好的推动者,因为它允许将编程接口应用于执行环境的各个方面。此外,使用“不可变基础架构”(一种在需要时重新构建 IT 组件而不是在生产中修改的方法)迫使组织通过正式重新定义环境并重新部署更改的组件来显式控制对环境的所有更改。 NFR 和 SLA IT 基础架构必须为执行环境提供某些质量,以支持业务运营所必需的系统。这些质量属性包括安全性、可靠性、性能、可维护性和可伸缩性(非功能性需求或 NFR)等。此外,还必须确保相关的服务级别协议 (SLA),例如平均故障前时间 (MTBF) 和平均修复时间 (MTTR)。在 SAFe 中,NFR 和 SLA 是通过早期和持续的测试以及及时的纠正措施逐步实现的。确保系统满足其 NFRS 和 SLA 要求,需要仪器以及主动构建和使用架构跑道。 遥测和监视 为了应对意外的负载、安全攻击、硬件、软件和网络故障,需要一系列选项,从降级或删除服务到增加服务容量。遥测和日志记录功能使组织能够了解和微调其体系结构和操作系统,以满足预期的负载和使用模式。有效的监视要求通过 CDP 部署的所有功能的全栈遥测都处于活动状态。监控可确保在生产中可以预测或快速解决系统性能问题。 网络安全标准 IT 环境必须满足日益严格的质量标准,以防止未经授权的访问、使用、披露或破坏。实现全面网络安全的活动范围包括: 技术支持(数据加密、简化的身份管理等) 频繁的测试和验证(审计、渗透测试等) 员工的培训和正确习惯 测试所有新资产的各种漏洞 经常针对受影响组件的现有解决方案的 SBOM 查看新的漏洞警报,并提供修补程序或修补程序 自动化治理 DevOps 和相关方法、实践和工具的最新进展为 IT 团队自动化治理提供了新的机会。自动化治理取代了繁琐、手动和容易出错的活动,并专门满足安全性、合规性和审计需求。有关此主题的更多信息,请参阅参考文献 :Investments Unlimited, A Novel about DevOps, Audit Compliance, and Thriving in the Digital Age。 配置管理、审计、安全测试(在构建和部署期间)的自动化以及不可变的基础架构有助于减少可能导致系统漏洞的人为错误。 敏捷硬件工程质量实践 确保硬件系统和组件的质量很复杂,因为更改的成本会随着时间的推移而增加,并且硬件质量问题的影响很大。这可能包括灾难性的现场故障、大量制成品的召回以及昂贵的现场更换或维修。这种风险迫使组织在开发工程硬件系统和子系统时有效地应用内置质量实践。组织使用多种技术来确保硬件系统的内置质量,如下所述。 建模和仿真 在敏捷中,目标是尽快构建和学习。虚拟环境中的建模和仿真以及原型环境中的快速建模有助于将学习向左转移,如图 6 所示。 对电气和机械计算机辅助设计 (CAD) 和 MBSE(见下文)中使用的数字模型进行分析和仿真可以快速、经济地测试变化。数字孪生将多个虚拟模型与从操作系统中的遥测数据中收集的数据相结合,以改进模型并更好地预测系统未来的行为方式。图 6 中的反馈循环显示了来自其他环境的数据如何验证和改进数字环境。一些航空航天和汽车产品甚至使用模型仿真进行认证,从而大大减少了更改的时间和成本。 快速原型制作 虚拟环境无法显示所有问题。物理原型是真正的“弯曲金属”硬件的低成本替代品。它们提供更高保真度的反馈,仅在物理环境中可用。示例原型实践包括: 木材和其他低保真模型 试验板电气元件 3D打印的机械和电气部件(PCB、线束) 增材制造越来越多地用于降低快速实验和原型制作的成本。“增材制造使用数据计算机辅助设计 (CAD) 软件或 3D 对象扫描仪来指导硬件以精确的几何形状逐层沉积材料。顾名思义,增材制造可以添加材料来创建对象。相比之下,当您通过传统方式创建对象时,通常需要通过铣削、机加工、雕刻、成型或其他方式去除材料。 许多拥有“打印”机械和电气零件的设备和知识的组织可以在一天内生产和运输它们。使用增材制造制造的零件现在正在投入生产。 信息物理系统质量实践 信息物理系统要求组织有效地处理硬件组件和管理其行为的软件。此外,由于此类系统直接在现实世界中运行,因此质量问题的影响可能很大,并且通常需要遵守法规。 基于模型的系统工程 基于模型的系统工程 (MBSE) 是开发一组相关数字模型的实践,这些模型有助于定义、设计和记录正在开发的系统。这些模型提供了一种有效的方式来探索、更新系统方面,并将其传达给利益相关者,同时显著减少或消除对传统文档的依赖。通过使用模型尽早测试和验证系统特性,它们有助于及时了解属性和行为,从而实现对需求和设计决策的快速反馈。 频繁的端到端集成 在软件领域,持续集成是持续交付的核心:它是验证整个系统中的变更和验证假设的强制功能。敏捷团队投资于自动化和基础设施,以构建、集成和测试每个开发人员的更改,并提供有关错误的即时反馈。 大型网络物理系统的持续集成更具挑战性,因为: 交货时间长的物料可能不可用 集成跨越组织边界 自动化很少是端到端的 物理定律规定了某些局限性 相反,频繁的端到端集成解决了集成与延迟知识和反馈的交易成本之间的经济权衡(图 7)。 目标是频繁地进行部分集成,每个 PI 至少集成一个完整的解决方案。 |