阿里巴巴DevOps实践指南(五)| 业务驱动的协作

阿里巴巴DevOps实践指南(五)| 业务驱动的协作

编者按:本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南》,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电子书,了解阿里十年DevOps实践经验。

明确需求层次以及每个层次承载的价值之后,接下来要做的是定义每个层次的协作过程,最终服务于“顺畅高质量地交付业务需求”这一目标。如何组织各个层次的协作,来达成这一最终目标?我们将从两个方面分别讲述:1)协作的层次以及各层次的定位和目标;2)以业务为源头驱动整体协作。

协作的层次以及各层次的定位和目标

如下图作所示,基于需求的层次关系,我们将协作自上而下分成三个层次。分别是业务运营层、产品交付层和技术实现层。这三个层次中,越向上越是业务和目标导向的,越向下越是技术和工程导向的。

阿里巴巴DevOps实践指南(五)| 业务驱动的协作
业务需求交付的三个层次

接下来,我们将分别讲述这三个层次的协作要点和目标。

业务运营层

业务运营层处于最上层,是驱动整体协作的源头核心。我们要建立的是业务驱动的协作模式——通过业务拉通和协调整体产品交付和技术工作。

业务运营层由业务人员负责,他们管理的核心对象是业务需求,目标是业务需求交付的效率和效果。

在业务运营层,首先要管理好业务需求的端到端的交付流程,包括:创建或接收业务需求;规划业务需求的发布和版本;管理跟踪业务需求交付;验收和发布业务需求;反馈和改进业务的设计和规划等。

向上,业务需求或者是向目标对齐,基于目标创建和规划业务需求;或者是响应客户诉求,将客户的诉求转化为业务需求。业务需求发布后,要能够基于其对接的目标和客户诉求形成反馈闭环。

向下,业务需求会拆分为产品需求,并分配至对应的产品交付团队。同时,还要协调相关产品需求的交付过程,对齐它们的进度,及时发现瓶颈问题,加速业务需求的实现。

为了保障业务的交付效率和有效性,业务运营层需要三个核心能力。

  • 业务规划能力:业务规划指的是基于业务目标、客户诉求、市场情况,结合资源约束等,做出取舍,决定做什么不做什么以及何时做;
  • 交付协调能力:基于业务需求拆分和分配产品需求,并协调产品需求的交付过程,发现和处理问题和瓶颈,最终保证业务需求的顺畅交付;
  • 业务反馈调整能力:在需求发布后即时收集用户和市场的定性及定量的反馈,并基于反馈调整后续的规划和业务演进,保证业务进化和迭代的有效性。

这三个能力形成完整的规划、交付、调整闭环。加速这一闭环并提高它的有效性,将帮助组织提升业务交付的效率和效果,更好地满足客户的诉求和达成业务目标,这也是业务运营层的长期目标。

产品交付层

产品交付层由产品交付团队负责,产品交付团队包括产品经理和开发团队。他们关注和管理的核心对象是产品需求,目标是提高产品需求的持续交付能力,包括速度、可预测性和质量,最终服务业务需求的交付。

在产品交付层,首先要管理好产品需求的端到端的交付流程,包括:接受拆分自业务需求的产品需求,或者规划产品需求;对产品需求进行排期或做出迭代计划;跟踪和管理产品需求交付过程;反馈和改进产品的交付效率。产品交付层,向上对接业务交付,向下对接技术和工程活动。

向上,产品交付要向业务交付对齐。首先,产品需求的内容、计划及进度向进行中的业务需求对齐,保障业务的交付速度和质量。其次,为了保障长期效率,产品还要面向未来规划和演进,如:面向未来业务发展的提前产品布局和准备;或者为了长期效率进行和消除技术债务的产品重构和沉淀。

向下,产品需求会被拆分为技术任务,由不同的人负责。产品交付层协调技术任务的进度,及时发现瓶颈和问题,确保产品需求的顺畅和高质量交付。

为了提高产品需求的交付效率,业务运营层需要建设三个核心能力:

  • 规划和演进能力:产品需求要响应即时的业务需求,还要关注长期的效率。
  • 排期和交付能力:决定需求的交付顺序和节奏,并管理交付过程,保证产品需求的快速交付。
  • 交付效能改进能力:改善团队的协作,产品的架构和设计,工程和技术实践等。

这三个能力构成从规划、交付到改进的闭环,确保产品交付的持续效率。

技术实现层

技术实现层由技术人员负责,包括开发、测试等。技术实现层关注的核心对象是系统(应用)的变更,他们基于产品需求拆分任务或创建变更,并完成开发、测试、联调和变更发布。

在技术实现层,首先应该为开发者提供良好的工具、环境和机制,让他们可以高效的完成工作,并保障交付的质量。以此为基础,技术实现层的工作要向产品交付对齐,对齐各自的工作,尽快完成和交付产品需求。

综上所述,基于需求的结构,我们将需求的交付工作分为三个层次。每个层次都有负责角色,他们要专注完成自己的工作,同时更要能够相互协同,实现业务需求的顺畅和高质量交付。其中,业务既是驱动这一协作过程的源头,也是协作的目标。下一节我们将关注怎样让这一协作过程更高效和有效。

以业务为源头驱动整体协作

上面我们分析了协作的层次。每个层次都有自己的目标,有专门的负责角色,他们的管理对象以及工作任务不同,为了让他们能更高效的工作,他们应该有自己专属的协作空间。

阿里巴巴DevOps实践指南(五)| 业务驱动的协作
业务驱动的分层协作

上图展示了业务驱动协作方式,它按需求的层次将协作也分为三层,各个层相互连接构成整体。接下来我们将从三个方面加以阐述,分别是:1)为每个层次创建专属工作空间;2)连接各个层次,实现高效协同;3)以需求连接和结构化过程资产。

为每个层次的创建专属工作空间

负责角色 目标 管理对象 工作职责 工作空间
业务层 业务人员 响应和满足业务诉求达成业务目标 以业务需求为核心,同时关注其下属产品需求
  • 创建或接收业务需求
  • 规划业务需求的交付计划或版本
  • 拆分产品需求
  • 管理跟踪业务需求交付过程
  • 验收和发布业务需求
  • 反馈和改进业务的设计和规划
业务工作空间
产品层 产品交付团队(含产品经理及技术团队) 规划和交付产品需求满足业务交付的短期和长期需求 以产品需求为核心,同时关注其下属的技术任务
  • 接受或创建产品需求
  • 管理和跟踪产品需求的交付过程
  • 对产品需求进行排期或做出迭代计划
  • 拆分产品需求的技术任务
  • 反馈和改进产品的交付过程
产品交付空间
技术层 技术开发 完成技术任务并高质量和即时的交付需求 系统变更及其它个人任务
  • 接收、管理工作任务
  • 开发、联调和验证
  • 集成需求并变更系统
开发者工作台
总体目标 拉通端到端的交付过程,确保过程质量,对齐各个层次的工作,最终实现业务需求的顺畅和高质量交付。

针对不同角色的工作职责的工作空间

上表列举了各个层次特征。每个层次的负责人(或团队)不同,他们的目标、管理对象和工作职责不同。为了提高每个层次工作的效率和质量,他们应该有自己专属工作空间,具体包括:业务工作空间、产品交付空间和开发者工作台。这些空间可以在不同的数字化工具中配置。不同的研发管理工具的实现方式不同,它可能是一个独立的项目;也可以是逻辑的视图。

在数字化工具中,区分各个空间的是:1)支持不同的需求类型;2)不同需求类型有不同工作流(需求从开始到完成所要经历的阶段);3)各个空间应用不同的功能服务(如版本规划、迭代排期等)。

业务工作空间支持的需求类型是业务需求和产品需求,其中以业务需求为主,并基于业务需求拆分产品需求。在业务工作空间中清晰定义业务需求的工作流(参见图二示例)。业务工作空间中应用的典型功能服务有需求拆分、业务规划和业务复盘等。

产品交付空间支持的需求类型是产品需求和工作任务,其中以产品为主,并支持从产品需求拆分任务;在产品交付空间中要清晰定义业务需求的工作流(参见图二示例)。产品交付空间中应用的典型功能服务有迭代排期,任务拆分、进度统计等。

连接各个层次需求和需求流程,实现高效协同

以上各个层次的工作空间,可以专注于工作。同时,各个层次又是互相连接,构成有机整体的,下图反映其中的连接关系。下面将基于最典型的场景介绍各个层次的协作流程,以及它们之间的连接。

阿里巴巴DevOps实践指南(五)| 业务驱动的协作
各个层次的连接

业务人员工作在业务工作空间,管理需求的端到端的交付过程。他们创建、接受、分析和规划需求。规划好的业务需求会被拆分为产品需求,这通常由业务人员与各产品的产品经理共同完成。拆分的产品需求,被分配到对应的产品交付团队。

产品交付团队工作在产品交付空间,他们接受拆分的产品需求或者自主创建需求、进行产品设计和需求澄清、完成需求排期、拆分技术任务、开发并集成需求、完成部署。

技术开发人员工作在个人工作空间,他们接受或拆分技术任务、创建变更、进行系统开发和集成联调、提交代码、完成持续集成验证,发布变更。

业务工作空间和产品交付空间的联动关系是:1)业务需求拆分的产品需求会被分配到对应的产品交付空间,此时产品需求与业务需求维持归属关系;2)当下属的产品需求完成排期后,对应的业务需求会进入开发中状态;3)当业务需求所有下属产品需求完成后,业务需求进入“待验收”状态

产品交付空间和个人工作台的联动关系是:1)产品需求会分配到个人,需求拆分的任务也会分配到人。这些需求和任务都会自动出现在个人工作空间;2)个人对需求和任务的更新会自动体现到相应的产品和业务空间;3)当下属任务开始开发时,对应的产品需求会进入开发中状态;4)当产品需求所有下属的任务开发完成后,产品需求进入“待测试”状态。

这三个层次相互解耦,不同角色可以专注于各自的职责和目标,高效完成自己的工作。它们又相互连接,构成一个有机整体。通过这个有机的整体,我们以业务为驱动拉通端到端的交付过程,确保过程质量,对齐各个层次的工作,最终实现业务需求的顺畅和高质量交付。

以需求连接和结构化过程资产

需求交付是知识工作,过程中有大量的产出物,如:讨论的记录、临时或正式文档、UE/UI 的设计、代码、测试用例、应用变更记录等,这些都是重要的知识资产。

如何管理好这些资产的创建过程,并结构化的组织和索引它们?这是一个重要的挑战。它事关沟通和协作的效率,更关系到组织的智力资产的价值。

阿里巴巴DevOps实践指南(五)| 业务驱动的协作
交付过程中产出物与需求的关联

如上图所示,资产应该与研发过程中的价值单元相关联,所谓价值单元指的是前文介绍的需求的层次结构。在需求交付的价值流中,我们创建并与相关资产关联。如:业务需求创建时关联原始业务诉求的描述,业务需求的分析则关联相关的业务分析文档;产品设计过程中关联相关文档和测试用例;技术任务交付过程中关联相关的应用、变更和代码。

这一方面让研发的数字资产直接与客户价值打通,另一方面让它与价值的创造活动关联。打通这些信息间的连接,避免了信息孤岛,不仅提高沟通和协作效率,更让资产沉淀有序和结构化,便于信息的检索和使用,充分发挥研发过程数字资产的价值。

总结:整体的交付流程和反馈闭环

阿里巴巴DevOps实践指南(五)| 业务驱动的协作
整体交付流程和反馈闭环

以上我们定义并介绍了业务驱动的协作过程。如上图所示,这个过程包含业务、产品和技术三个方面。

第一是业务交付和反馈闭环(图中橙色部分),它的核心关注点是业务的快速响应和交付,以及业务目标的达成;第二个是产品交付和反馈闭环(图中蓝色部分),它的核心关注点是产品需求的快速交付,产品的演进,以及产品交付效能的持续提升;第三个是技术和工程实践(图中绿色部分),它的核心关注点是基础设置和技术及工程能力的持续改进,从而奠定产品和业务效能的基础。

这一交付过程既分层解耦又有机连接,帮助我们打通交付的各个环节和层次,它让整个组织协调一致,发挥最大的效率,实现对业务的精准响应和快速迭代进化。

免费下载《阿里巴巴DevOps实践指南》

阿里巴巴合伙人和业界多位大佬力荐、何勉、陈鑫等17位阿里资深技术专家联袂出品、阿里十年DevOps经验沉淀总结、阿里巴巴DevOps落地实践一本通。

前往:https://developer.aliyun.com/topic/devops,下载完整版电子书。

阿里巴巴DevOps实践指南(五)| 业务驱动的协作

上一篇:SLS数据处理实践:加工延迟篇


下一篇:技本功丨利用 Atomic 构建 React 项目工作流,so easy!