如何在产品模式组织中管理项目

在理想状态下,产品模式组织 由松散耦合的、自治的团队组成,这些团队能够快速响应明确和不明确的用户需求。然而,有时会出现需要跨多个团队协调响应的机会。如果管理不善,结果将导致收入损失、客户不满意和团队能力浪费。我们将响应这些机会的组织举措称为项目。在本文中,我们将通过一个失败项目的示例,分享我们在产品模式组织中管理项目的经验。

2020 年 1 月 23 日


Photo of Luiza Nunes

Luiza Nunes 是 Thoughtworks 的项目经理。在她九年的科技行业经验中,她还曾担任软件开发人员、测试工程师和学习与领导力发展主管。通过与全球不同客户合作,Luiza 能够应用和尝试多种软件开发和项目管理最佳实践,以帮助她的团队和客户取得成功。

Photo of James Lewis

James Lewis 是 Thoughtworks 的首席顾问。在职业生涯中,James 主要与数字规模化企业合作,要么担任后端微服务团队的首席工程师,要么担任顾问,通过制定和执行技术战略来帮助改进架构和交付流程。他对工程卓越与业务成果之间的平衡很感兴趣。


为什么项目如此困难?

产品模式 中运营的组织使用持久性的、思想-构建-运行团队来解决持续存在的业务问题,从而持续为客户创造价值。随着时间的推移,通过消除其价值流中的浪费,这些组织以一种减少跨多个团队协调需求的方式构建自身,这通常会导致 微服务 系统架构。以这种方式运营的组织通常具有反映其架构的组织结构;拥有自己的工作积压的小型团队,拥有和运营提供其产品功能或业务能力的系统。

然而,有时会出现需要在组织的多个领域构建新功能和能力的机会,从而需要跨团队协调才能交付价值。这些举措中涉及的协调工作就是我们所说的项目。

项目——在交付客户价值需要跨多个团队进行协调的情况下——对产品模式组织来说是一个真正的挑战。这是因为

  • 很难确定交付项目价值所需的运营模式变化;
  • 它们可能会挑战产品团队中常见的自治文化,因为项目通过标准化跨多个工作流的交付流程而受益;
  • 适合单个产品团队的领导风格可能无法转化为项目级别,在项目级别,需要协调多个具有不同优先级的团队并对其负责。

根据我们的经验,我们观察到产品模式组织中既有成功的项目,也有不成功的项目。以下是一个虚构的例子,它描述了在一个这样的组织中协调跨团队工作的困难,灵感来自我们遇到的真实问题。

示例:一家数字优先银行想要进入新的客户细分市场

一家位于南美洲的现代金融科技公司已经为日常交易消费者建立了一家成功的数字优先银行。作为一家初创公司,它以敏捷原则为基础,并随着其架构的增长而扩展了其文化。

它现在在其产品部门雇用了大约 200 人,组织结构类似于广为宣传的 Spotify 模型,其中小队和部落与底层的模块化产品架构保持一致。

经过几个月的用户研究,该银行意识到它处于有利地位,可以向新的客户细分市场提供其服务;企业客户。由于这种洞察力,该组织决定组建一个团队,目的是在几个月内发布新产品。

图 1:企业银行产品 MVP 交付的预期项目时间表

组织内现有产品团队的三位领导被确定为协调工作:设计主管、技术主管和产品经理。经过几个月的努力,三人组进行了一项探索,并制定了一个计划,以确定第一阶段交付的具体细节,从而定义了 MVP 用户旅程和高级故事地图。

用户目标
任务
注册企业银行
  • 将企业银行产品添加到产品目录
登录主页
  • 创建企业银行主页
  • 创建企业银行登录
  • 向客户 API 添加企业银行功能
  • 向身份验证 API 添加企业银行功能
查看最近的交易
  • 创建企业银行交易历史页面
  • 向交易 API 添加企业银行功能

该项目的 MVP 包含一个新的企业账户产品、以企业客户身份登录的能力以及查看企业账户交易的能力。在确定 MVP 用户旅程后,三人组确定了需要交付该范围的现有产品团队。

团队
所有权
Web UI
Web 前端
客户
客户 CRM、API 和数据库
交易
交易 API 和数据库
身份验证
身份验证和授权平台
目录
产品目录 API 和数据库

这些团队是该组织产品团队的典型代表:自治和自我管理。每个参与的团队都拥有一个适合他们的特定交付流程;一些团队使用结构化的敏捷流程,从产品路线图开始,导致带有估计的史诗和故事。而另一些团队则更习惯于使用松散定义的目标,将其分解成小的任务。

为了维护自我组织的文化,三人组选择分别向每个产品团队展示产品愿景,并让他们自己弄清楚为了适应新的客户细分市场,他们需要做出哪些改变才能交付。这加上团队之间不一致的交付方法,意味着三人组无法预见每个高级用户故事中隐藏的依赖关系数量。

将企业银行产品添加到产品目录创建企业银行登录创建企业银行交易历史页面
Web UI登录页面查看交易页面
客户支持新的用户支持新的用户支持新的用户
交易支持新的用户支持新的用户
身份验证支持新的用户支持新的用户
目录新的企业银行产品
表格突出显示每个团队需要为用户价值的一部分做出贡献

为了从经验中学习,在项目结束时,团队进行了一次回顾,以发现他们面临的挑战的根本原因。他们发现了以下内容

  • 运营模式没有改变以反映价值流的变化,由于三人组不愿挑战自我组织的文化,交付团队在本地进行了优化,而不是整体优化客户价值的流动;
  • 组织的领导者没有被授权利用他们的影响力来帮助项目,因为很难获取有关项目状态的信息;
  • 进度更新侧重于单个交付团队的更新,而不是解决客户需求的更广泛的整体工作解决方案,这是一个错失的协调和关注机会,团队没有意识到他们对项目的贡献;
  • 风险管理被视为一项隐含的任务,假设在交付团队内部进行管理,但不是一项明确的项目级工作。这意味着在交付日期之前出现了许多意外情况;
  • 团队之间未经管理的依赖关系和缺乏跨团队协作导致交付团队之间出现紧张关系,这降低了工作环境并影响了个人士气;
  • 项目领导团队没有改变他们的沟通风格以适应情况,团队和领导层没有完全分享背景和项目目标。存在一种基于每个人都拥有完成工作所需信息的假设而产生的错误理解感;
  • 由于上述其他问题,团队的整体动力和责任感受到损害

在产品模式组织中管理项目的最佳实践

虽然是假设性的,但上面的例子描述了我们在产品模式组织响应跨团队协调、类似项目的机遇时所见到的常见挑战。我们将在本文的其余部分解释一些我们在处理类似于上面描述的项目时成功使用的策略、实践和原则。

在开始时投入时间,为项目成功奠定基础

项目的开始提供了一个自然的暂停点,可以在其中运行集中式研讨会,为团队和项目成功奠定基础。在项目启动结束时,业务利益相关者和团队成员应该了解该举措及其重要性、他们在其中的作用、交付方式以及第一个版本的范围。在像这样的项目启动中提前投入时间是针对数月交付延迟的适当风险缓解措施。我们建议留出时间来运行一系列研讨会,以提供以下成果

  • 让所有利益相关者就需要做什么以及为什么要做达成一致(包括对当前运营模式的任何更改);
  • 定义一致的工作方式、仪式和最佳实践;
  • 与所有参与的团队分享业务、技术和客户背景;
  • 通过明确个人的角色、责任和动机来建立团队之间的信任;
  • 为在团队中建立同理心和理解奠定基础;
  • 重点关注交付过程中存在的风险、依赖关系、假设和复杂性。

以下是一个旨在解决这些问题的启动会议时间安排示例:

周一周二周三周四周五
上午背景介绍(所有利益相关者)目标架构非功能性需求工作方式展示(所有利益相关者)
下午用户旅程映射RAIDs(风险、假设、问题、依赖关系)权衡滑块故事映射和发布计划团队郊游(所有利益相关者)

选择适合项目的领导风格

根据组织的不同,产品部门的当前文化可能无法接受程序交付所需的紧迫性和流程标准化程度。因此,作为解决方案倡导者的项目领导者可能会发现,他们需要根据计划的需要调整自己的领导风格。

例如,情境领导模型提供了一种有用的描述,说明了不同领导状态下的一些常见沟通风格(参见侧边栏)。在理想状态下,自组织产品团队的领导者将参与并授权他们的团队。但是,由于该项目可能需要改变运营模式,从而挑战所涉及的产品团队的自组织性质,因此领导者可能需要调整自己的风格,并比平时花更多时间进行澄清和定义。

除了改变他们的沟通风格外,项目领导者还需要让团队对支持新运营模式所需的那些变化负责。一个常用的工具来传达责任和问责制是责任分配矩阵(参见 RACI 矩阵侧边栏)。类似的东西可以帮助团队成员了解他们在维护流程标准和参加关键项目会议方面对他们的期望。

认真管理依赖关系和风险

团队之间的依赖关系(称为积压耦合)在项目交付中很常见,因为多个团队将负责交付解决方案的不同离散部分。主动管理这些依赖关系的一个好做法是在项目交付之前,用旨在解耦各个团队积压的活动来提前加载项目交付,以使团队能够更自主地交付。

例如,为了减少我们示例中产品团队之间的积压耦合,项目团队可能会决定将其前几个迭代用于围绕构建一个步行骨架(参见下图 7)进行集中工作。假设有一个成熟的持续交付设置,步行骨架可以部署到生产环境中,并在功能标志后面,使未来的项目进度更新能够专注于步行骨架的演变,因为产品团队添加了更多保真度和范围深度。以下是一个发布计划示例,显示了步行骨架集中团队在产品路线图中的位置。

步行骨架发布 1发布 2
集中团队所有屏幕的低保真 UI 桩 API 模拟静态数据
Web UI基于桩构建的登录页面 基于桩构建的查看交易页面
客户完整的企业客户支持
交易完整的企业客户支持
身份验证完整的企业客户支持
目录完整的企业客户支持
新的发布计划

在我们上面的示例中,步行骨架将包含整个 MVP 用户旅程,但几乎没有投入时间来提高用户界面的保真度。此外,所有 API 集成都将被桩化,任何数据都将被模拟和硬编码。步行骨架的意图不是供客户使用,而是让产品团队之间相互耦合的工作在团队继续交付自己的积压之前得到解决。此外,一旦构建了步行骨架,它就允许所有团队持续集成他们的代码,从而降低了后期集成的风险。

项目交付将存在许多其他风险,因此,在正常的迭代周期中积极管理风险对于成功至关重要。积极的风险管理并不总是标准产品交付周期的一部分(如上面的示例所示),因此领导团队可能需要一些纪律才能在整个交付过程中保持势头。

制定强大的沟通策略

项目管理中的大部分协调工作都花在沟通上,以便

  • 确保所有相关利益相关者都得到通知,并有机会提出问题和提出问题;
  • 促进团队之间的沟通,以帮助缓解交付中的瓶颈;
  • 将障碍暴露给项目领导团队,以便他们能够帮助缓解这些障碍。

由于项目中需要进行这种沟通开销,因此项目领导层应该寻求制定一个强大的沟通策略,其中包含满足每个利益相关者群体需求的接触点。以下是一个沟通策略示例

接触点目的受众节奏
项目站立会议将障碍暴露给项目领导层每个产品团队的代表每周两次
项目诊所征求反馈并回答任何感兴趣方的疑问任何对问题感兴趣的方每周
展示庆祝进展并向利益相关者展示进展所有项目利益相关者每次迭代
更新电子邮件异步沟通以进行状态更新组织每次迭代
项目全体会议向公司提供状态更新组织与组织全体会议一致

投资于有助于信息辐射的可视化工件

诸如物理项目墙(参见下图 9)之类的视觉工件可以用作项目的信息辐射器,不仅有利于关键利益相关者,而且有利于整个公司。

项目墙在开始时可以被视为一个孤立的计划,但通过保持其最新状态并强制围绕它进行对话,也可以创建新的组织习惯和纪律。物理墙的一个有趣的额外好处是它们可以促进团队之间的协作和问责制。此外,项目墙可以通过让公司中的其他人快速获取信息,而无需与任何人安排时间,从而帮助他们提出问题。

进行中已完成状态障碍
集中团队

低保真 UI

桩 API

Web UI

查看交易页面

登录页面

绿色

客户

企业客户 API

琥珀色

对身份验证的未来依赖

交易

添加企业客户交易类型

绿色

目录

添加企业产品

绿色

身份验证

企业客户的新身份验证

琥珀色

可能会阻止客户

理想的项目墙包含足够的信息,以便一目了然地提供状态更新。从上面的示例中,我们可以看出集中团队已经完成了工作并解散,交付团队现在正在处理他们的可交付成果,其中一个团队需要一些帮助来消除未来的障碍。

不要害怕为管理项目定义明确的角色

我们认为,项目管理的纪律对于确保任何涉及多个团队协作和协调以交付价值的计划成功至关重要。但是,实际的角色定义和职责将取决于组织环境和项目复杂性,因此我们更愿意将此角色称为“解决方案倡导者”,而不是项目经理。从根本上说,需要有人负责计划的整体健康状况,将他们的工作重点放在以下战略要素上

  • 持续确保团队之间的一致性;
  • 确保团队和外部利益相关者之间的沟通顺畅;
  • 保持相关和关键信息新鲜;
  • 管理项目依赖关系和风险。

重要的是要确保该角色的职责对所有相关人员明确,最好是在项目启动时。我们在产品模式组织中引入解决方案倡导者时观察到的一种风险是,产品团队成员和解决方案倡导者最终可能会承担重叠的职责,从而降低了两个角色的有效性。如前所述,解决方案倡导者应该专注于项目的战略方面,而不是专注于所涉及团队的战术产品交付任务。以下 RACI 矩阵显示了角色之间职责的分离

解决方案倡导者产品经理技术主管设计主管交付团队
项目交付A/RRRRR
依赖关系和风险管理A/RRRRC/I
迭代计划IA/RRRR
沟通A/RC/IC/IC/IC/I
故事写作IA/CCCR

请注意解决方案倡导者和产品交付领导层和团队之间的问责制分离。

结论

正如我们所讨论的,一旦确定了一个项目,就会清楚地表明需要改变运营模式才能为客户创造价值。虽然我们列出了许多可以使项目走上成功之路的策略、实践和原则,但没有灵丹妙药。无论你选择什么机制,都要确保你与项目参与者建立一个反馈循环,以便在必要时学习和适应。


重大修订

2020 年 1 月 23 日:发布文章的剩余部分

2020 年 1 月 21 日:发布管理依赖关系和制定沟通策略的部分。

2020 年 1 月 14 日:发布在开始时投入时间和领导风格实践的部分

2020 年 1 月 13 日:发布第一部分