|
系统团队:整体大于其各部分的总和。4
整体大于其各部分的总和。 ——亚里士多德,转述自《形而上学》 系统团队 系统团队是一个专门的敏捷团队,协助构建和支持敏捷开发环境,包括开发和维护持续交付管道。它们还可以支持资产集成、端到端解决方案测试、DevOps 思维方式和实践、部署和按需发布。 详 现代软件系统日益复杂,会极大地影响向客户交付价值的速度、质量和流程。当今基础设施最明显的特征是它“多样化到断层”。开发人员很容易失去注意力,将时间分散在管理与高度复杂的软件开发工具链相关的问题和交付客户价值之间。 此外,每个人在任何时候脑海中都能掌握多少信息都有认知限制。拥有系统团队的主要原因是提高 ART 的速度、质量和生产力,同时又不损害团队提供新解决方案价值的能力。敏捷团队的工作量不断增加。除了创造新的解决方案价值外,团队还应该不断测试、部署、发布甚至运营解决方案。为了提高效率并实现规模经济,ART 可能需要系统团队的帮助,以便他们可以将大部分时间集中在解决方案开发上。 系统团队通过构建和维护敏捷开发环境基础设施来加快 ART 的速度并减少开发团队的认知负担,例如: 创建和维护持续交付管道工具链。该工具链包括持续集成、自动化构建(包括验证测试)、部署和发布。 为开发、用户验收测试、解决方案演示、部署和生产创建平台和环境。 促进与第三方(如托管和数据服务提供商)合作的技术要素。 确保 ART 具有针对基础架构的有意架构,并且团队使用标准工具和 DevOps 实践。 责任 图 1 说明了系统团队的五个主要职责领域。但是,需要注意的是,虽然此处突出显示了这些职责,但系统团队和敏捷团队共享这些职责。否则,系统团队可能会成为瓶颈,敏捷团队将无法完全实现端到端的价值交付。以下各节将逐一介绍这些领域。 注意:随着 ART 实现 CDP 工具链的自动化并学习如何独立和共同交付价值,对专门系统团队的需求可能会减少。随着时间的流逝,系统团队的知识被分散到ART中,团队开始集体承担其更广泛的职责。但是,对于较大的解决方案,专业专业知识更有可能保留在一个或多个系统团队中,如下面的解决方案培训部分所述。 建筑开发基础设施 强大的技术基础设施支持高 ART 速度,因此系统团队可以: 创建和维护 CDP 工具链 – 这包括自动执行持续集成、构建和验证测试、部署和发布工具 创建平台和环境 – 在云或本地创建用于开发、解决方案演示和用户验收测试的环境 促进协作的技术方面 – 充当与第三方(如数据、服务、供应商或托管服务提供商)的联络人 支持解决方案集成 复杂的解决方案还要求系统团队支持解决方案集成,这可能涉及以下活动: 版本管理 – 确定并帮助维护版本控制和管理的决策和策略 创建和运行集成脚本 – 创建和运行解决方案级构建和集成脚本,或在尚不存在自动化的情况下手动集成 参加各种同步事件 – 系统团队的大部分工作来自其他敏捷团队,因此各种同步事件(例如,PO、教练、架构或团队同步)可以帮助他们在这项工作成为关键的紧急情况之前跟上培训的需求 协助端到端测试 系统团队还可以执行一些支持敏捷团队的测试职责: 创建新的自动化测试场景 – 许多团队可能没有端到端测试功能的基础结构或知识。系统团队提供环境,帮助团队创建自动化测试,以支持新的或现有的功能。他们甚至可能编写一些更复杂的测试场景。 提供数据集 – 创建可重用的测试数据,并在版本控制下对其进行维护。 组织和管理测试用例 – 将各个团队设计的测试用例组织到有序的测试套件中,确定耗时测试的优先级,并改进测试基础结构。 执行手动测试 – 协助团队对复杂场景(例如端端测试和探索性测试)以及一些自动化尚不可行的跨系统功能执行手动测试。 进行系统集成测试 – 协助开发团队验证不同系统之间的集成。他们测试构成最终产品的各种集成,包括软件组件之间以及软件和硬件之间的集成。 创建冒烟测试 – 帮助创建构建验证测试,使开发人员能够快速、独立地验证其构建。 测试解决方案性能 – 帮助创建和运行 NFR 测试(例如,安全性、可靠性、性能和可用性),并帮助系统和解决方案架构师识别系统缺陷和瓶颈。 支持系统和解决方案演示 ART 在每次迭代结束时进行系统演示,在类似生产的环境(通常是暂存环境)中测试和评估完整的解决方案,以接收利益相关者的反馈,并在基础架构和数据与生产密切相关的环境中测试解决方案。同样,解决方案演示展示了多个 ART 和供应商的联合开发工作,为客户和其他利益相关者提供价值。 系统团队支持 ART 或解决方案培训,以计划、准备和执行系统和解决方案演示: 规划演示 – 与敏捷团队合作,定义他们将在每次迭代结束时演示的内容,并准备所需的环境和基础架构。 集成资产 – 支持集成来自敏捷团队的资产和工件。 执行端到端解决方案演示 – 协助产品经理、产品负责人和其他人运行演示,主要是端到端方案。 设置和测试演示环境 – 准备可靠地演示新解决方案功能所需的技术环境。此外,每个新的解决方案增量都可能需要系统团队向演示环境添加扩展,包括新接口、第三方组件、仿真工具和其他环境资产。 系统团队经常帮助培训进行必要的投资(在DevOps、CDP等方面),以便及时进行系统演示。 促进发布 系统团队支持 ART 和解决方案培训,以规划、准备、部署和发布解决方案。活动可以包括以下内容: 发布治理 – 协助 ART 利益相关者规划、管理和治理解决方案发布。它们还帮助敏捷团队确保他们符合任何法规、行业或其他相关标准和合规性。 准备发布 – 将解决方案打包和部署为 DevOps 和 CDP 活动的一部分。这包括使用各种技术(例如功能切换)来打开和关闭功能。 发布解决方案 – 帮助培训将解决方案一次性、增量或发布给不同的客户群。 稳定和操作 – 与运营部门协作,以确保解决方案从功能和非功能需求 (NFR) 的角度运行良好。 测量 – 帮助训练仪表并量化新发布的功能是否提供预期值,并评估 CDP 的运行状况和效率。 学习 – 帮助收集来自各种来源的反馈,并为 CDP 的下一个循环做好准备。 解决方案培训中的系统团队 对于需要解决方案培训结构的大型多 ART 开发价值流,系统团队对于支持更大规模的集成和发布挑战至关重要。根据开发价值流的范围和复杂性,系统团队的结构有三种主要模式: 每个 ART 有一个系统团队,负责协调解决方案集成和验证 解决方案培训的系统团队和每个 ART 的单独系统团队 一个系统团队负责整个解决方案系列,可以履行其所有 ART 的职责 决定使用哪种组织模式取决于上下文。因素包括开发价值流中的 ART 结构、解决方案的体系结构、分支和集成策略、系统可测试性和开发基础结构。 平衡解决方案集成和测试工作 系统团队永远无法成为应对 CDP 工具、基础设施和集成挑战的完整解决方案。他们需要与其他敏捷团队协作,与共同的愿景保持一致,以实施DevOps和CDP。高效的解决方案开发需要共享知识、最佳实践以及通用基础结构和工具,以帮助降低复杂性。 如图 2 所示,最大化 ART 速度涉及在敏捷团队和系统团队之间建立最佳平衡。随着成熟度和自动化程度的提高,集成责任的最佳点向左转移,团队可以达到更高程度的自主性和责任感。 |