如何在产品模式组织中管理项目
在理想状态下,产品模式组织 由松散耦合的、自治的团队组成,这些团队能够快速响应明确和不明确的用户需求。然而,有时会出现需要跨多个团队协调响应的机会。如果管理不善,结果将导致收入损失、客户不满意和团队能力浪费。我们将响应这些机会的组织举措称为项目。在本文中,我们将通过一个失败项目的示例,分享我们在产品模式组织中管理项目的经验。
2020 年 1 月 23 日
为什么项目如此困难?
在 产品模式 中运营的组织使用持久性的、思想-构建-运行团队来解决持续存在的业务问题,从而持续为客户创造价值。随着时间的推移,通过消除其价值流中的浪费,这些组织以一种减少跨多个团队协调需求的方式构建自身,这通常会导致 微服务 系统架构。以这种方式运营的组织通常具有反映其架构的组织结构;拥有自己的工作积压的小型团队,拥有和运营提供其产品功能或业务能力的系统。
然而,有时会出现需要在组织的多个领域构建新功能和能力的机会,从而需要跨团队协调才能交付价值。这些举措中涉及的协调工作就是我们所说的项目。
项目——在交付客户价值需要跨多个团队进行协调的情况下——对产品模式组织来说是一个真正的挑战。这是因为
- 很难确定交付项目价值所需的运营模式变化;
- 它们可能会挑战产品团队中常见的自治文化,因为项目通过标准化跨多个工作流的交付流程而受益;
- 适合单个产品团队的领导风格可能无法转化为项目级别,在项目级别,需要协调多个具有不同优先级的团队并对其负责。
根据我们的经验,我们观察到产品模式组织中既有成功的项目,也有不成功的项目。以下是一个虚构的例子,它描述了在一个这样的组织中协调跨团队工作的困难,灵感来自我们遇到的真实问题。
示例:一家数字优先银行想要进入新的客户细分市场
一家位于南美洲的现代金融科技公司已经为日常交易消费者建立了一家成功的数字优先银行。作为一家初创公司,它以敏捷原则为基础,并随着其架构的增长而扩展了其文化。
它现在在其产品部门雇用了大约 200 人,组织结构类似于广为宣传的 Spotify 模型,其中小队和部落与底层的模块化产品架构保持一致。
经过几个月的用户研究,该银行意识到它处于有利地位,可以向新的客户细分市场提供其服务;企业客户。由于这种洞察力,该组织决定组建一个团队,目的是在几个月内发布新产品。
图 1:企业银行产品 MVP 交付的预期项目时间表
组织内现有产品团队的三位领导被确定为协调工作:设计主管、技术主管和产品经理。经过几个月的努力,三人组进行了一项探索,并制定了一个计划,以确定第一阶段交付的具体细节,从而定义了 MVP 用户旅程和高级故事地图。
- 将企业银行产品添加到产品目录
- 创建企业银行主页
- 创建企业银行登录
- 向客户 API 添加企业银行功能
- 向身份验证 API 添加企业银行功能
- 创建企业银行交易历史页面
- 向交易 API 添加企业银行功能
该项目的 MVP 包含一个新的企业账户产品、以企业客户身份登录的能力以及查看企业账户交易的能力。在确定 MVP 用户旅程后,三人组确定了需要交付该范围的现有产品团队。
这些团队是该组织产品团队的典型代表:自治和自我管理。每个参与的团队都拥有一个适合他们的特定交付流程;一些团队使用结构化的敏捷流程,从产品路线图开始,导致带有估计的史诗和故事。而另一些团队则更习惯于使用松散定义的目标,将其分解成小的任务。
为了维护自我组织的文化,三人组选择分别向每个产品团队展示产品愿景,并让他们自己弄清楚为了适应新的客户细分市场,他们需要做出哪些改变才能交付。这加上团队之间不一致的交付方法,意味着三人组无法预见每个高级用户故事中隐藏的依赖关系数量。
将企业银行产品添加到产品目录 | 创建企业银行登录 | 创建企业银行交易历史页面 | |
---|---|---|---|
Web UI | 登录页面 | 查看交易页面 | |
客户 | 支持新的用户 | 支持新的用户 | 支持新的用户 |
交易 | 支持新的用户 | 支持新的用户 | |
身份验证 | 支持新的用户 | 支持新的用户 | |
目录 | 新的企业银行产品 |
为了从经验中学习,在项目结束时,团队进行了一次回顾,以发现他们面临的挑战的根本原因。他们发现了以下内容
- 运营模式没有改变以反映价值流的变化,由于三人组不愿挑战自我组织的文化,交付团队在本地进行了优化,而不是整体优化客户价值的流动;
- 组织的领导者没有被授权利用他们的影响力来帮助项目,因为很难获取有关项目状态的信息;
- 进度更新侧重于单个交付团队的更新,而不是解决客户需求的更广泛的整体工作解决方案,这是一个错失的协调和关注机会,团队没有意识到他们对项目的贡献;
- 风险管理被视为一项隐含的任务,假设在交付团队内部进行管理,但不是一项明确的项目级工作。这意味着在交付日期之前出现了许多意外情况;
- 团队之间未经管理的依赖关系和缺乏跨团队协作导致交付团队之间出现紧张关系,这降低了工作环境并影响了个人士气;
- 项目领导团队没有改变他们的沟通风格以适应情况,团队和领导层没有完全分享背景和项目目标。存在一种基于每个人都拥有完成工作所需信息的假设而产生的错误理解感;
- 由于上述其他问题,团队的整体动力和责任感受到损害。
在产品模式组织中管理项目的最佳实践
虽然是假设性的,但上面的例子描述了我们在产品模式组织响应跨团队协调、类似项目的机遇时所见到的常见挑战。我们将在本文的其余部分解释一些我们在处理类似于上面描述的项目时成功使用的策略、实践和原则。
在开始时投入时间,为项目成功奠定基础
项目的开始提供了一个自然的暂停点,可以在其中运行集中式研讨会,为团队和项目成功奠定基础。在项目启动结束时,业务利益相关者和团队成员应该了解该举措及其重要性、他们在其中的作用、交付方式以及第一个版本的范围。在像这样的项目启动中提前投入时间是针对数月交付延迟的适当风险缓解措施。我们建议留出时间来运行一系列研讨会,以提供以下成果
- 让所有利益相关者就需要做什么以及为什么要做达成一致(包括对当前运营模式的任何更改);
- 定义一致的工作方式、仪式和最佳实践;
- 与所有参与的团队分享业务、技术和客户背景;
- 通过明确个人的角色、责任和动机来建立团队之间的信任;
- 为在团队中建立同理心和理解奠定基础;
- 重点关注交付过程中存在的风险、依赖关系、假设和复杂性。
以下是一个旨在解决这些问题的启动会议时间安排示例:
周一 | 周二 | 周三 | 周四 | 周五 | |
---|---|---|---|---|---|
上午 | 背景介绍(所有利益相关者) | 目标架构 | 非功能性需求 | 工作方式 | 展示(所有利益相关者) |
下午 | 用户旅程映射 | RAIDs(风险、假设、问题、依赖关系) | 权衡滑块 | 故事映射和发布计划 | 团队郊游(所有利益相关者) |
选择适合项目的领导风格
根据组织的不同,产品部门的当前文化可能无法接受程序交付所需的紧迫性和流程标准化程度。因此,作为解决方案倡导者的项目领导者可能会发现,他们需要根据计划的需要调整自己的领导风格。
例如,情境领导模型提供了一种有用的描述,说明了不同领导状态下的一些常见沟通风格(参见侧边栏)。在理想状态下,自组织产品团队的领导者将参与并授权他们的团队。但是,由于该项目可能需要改变运营模式,从而挑战所涉及的产品团队的自组织性质,因此领导者可能需要调整自己的风格,并比平时花更多时间进行澄清和定义。
除了改变他们的沟通风格外,项目领导者还需要让团队对支持新运营模式所需的那些变化负责。一个常用的工具来传达责任和问责制是责任分配矩阵(参见 RACI 矩阵侧边栏)。类似的东西可以帮助团队成员了解他们在维护流程标准和参加关键项目会议方面对他们的期望。
认真管理依赖关系和风险
团队之间的依赖关系(称为积压耦合)在项目交付中很常见,因为多个团队将负责交付解决方案的不同离散部分。主动管理这些依赖关系的一个好做法是在项目交付之前,用旨在解耦各个团队积压的活动来提前加载项目交付,以使团队能够更自主地交付。
例如,为了减少我们示例中产品团队之间的积压耦合,项目团队可能会决定将其前几个迭代用于围绕构建一个步行骨架(参见下图 7)进行集中工作。假设有一个成熟的持续交付设置,步行骨架可以部署到生产环境中,并在功能标志后面,使未来的项目进度更新能够专注于步行骨架的演变,因为产品团队添加了更多保真度和范围深度。以下是一个发布计划示例,显示了步行骨架集中团队在产品路线图中的位置。
步行骨架 | 发布 1 | 发布 2 | |
---|---|---|---|
集中团队 | 所有屏幕的低保真 UI 桩 API 模拟静态数据 | ||
Web UI | 基于桩构建的登录页面 基于桩构建的查看交易页面 | ||
客户 | 完整的企业客户支持 | ||
交易 | 完整的企业客户支持 | ||
身份验证 | 完整的企业客户支持 | ||
目录 | 完整的企业客户支持 |
在我们上面的示例中,步行骨架将包含整个 MVP 用户旅程,但几乎没有投入时间来提高用户界面的保真度。此外,所有 API 集成都将被桩化,任何数据都将被模拟和硬编码。步行骨架的意图不是供客户使用,而是让产品团队之间相互耦合的工作在团队继续交付自己的积压之前得到解决。此外,一旦构建了步行骨架,它就允许所有团队持续集成他们的代码,从而降低了后期集成的风险。
项目交付将存在许多其他风险,因此,在正常的迭代周期中积极管理风险对于成功至关重要。积极的风险管理并不总是标准产品交付周期的一部分(如上面的示例所示),因此领导团队可能需要一些纪律才能在整个交付过程中保持势头。
制定强大的沟通策略
项目管理中的大部分协调工作都花在沟通上,以便
- 确保所有相关利益相关者都得到通知,并有机会提出问题和提出问题;
- 促进团队之间的沟通,以帮助缓解交付中的瓶颈;
- 将障碍暴露给项目领导团队,以便他们能够帮助缓解这些障碍。
由于项目中需要进行这种沟通开销,因此项目领导层应该寻求制定一个强大的沟通策略,其中包含满足每个利益相关者群体需求的接触点。以下是一个沟通策略示例
接触点 | 目的 | 受众 | 节奏 |
---|---|---|---|
投资于有助于信息辐射的可视化工件
诸如物理项目墙(参见下图 9)之类的视觉工件可以用作项目的信息辐射器,不仅有利于关键利益相关者,而且有利于整个公司。
项目墙在开始时可以被视为一个孤立的计划,但通过保持其最新状态并强制围绕它进行对话,也可以创建新的组织习惯和纪律。物理墙的一个有趣的额外好处是它们可以促进团队之间的协作和问责制。此外,项目墙可以通过让公司中的其他人快速获取信息,而无需与任何人安排时间,从而帮助他们提出问题。
进行中 | 已完成 | 状态 | 障碍 | |
---|---|---|---|---|
集中团队 |
低保真 UI 桩 API | |||
Web UI |
查看交易页面 |
登录页面 |
绿色 | |
客户 |
企业客户 API |
琥珀色 |
对身份验证的未来依赖 | |
交易 |
添加企业客户交易类型 |
绿色 | ||
目录 |
添加企业产品 |
绿色 | ||
身份验证 |
企业客户的新身份验证 |
琥珀色 |
可能会阻止客户 |
理想的项目墙包含足够的信息,以便一目了然地提供状态更新。从上面的示例中,我们可以看出集中团队已经完成了工作并解散,交付团队现在正在处理他们的可交付成果,其中一个团队需要一些帮助来消除未来的障碍。
不要害怕为管理项目定义明确的角色
我们认为,项目管理的纪律对于确保任何涉及多个团队协作和协调以交付价值的计划成功至关重要。但是,实际的角色定义和职责将取决于组织环境和项目复杂性,因此我们更愿意将此角色称为“解决方案倡导者”,而不是项目经理。从根本上说,需要有人负责计划的整体健康状况,将他们的工作重点放在以下战略要素上
- 持续确保团队之间的一致性;
- 确保团队和外部利益相关者之间的沟通顺畅;
- 保持相关和关键信息新鲜;
- 管理项目依赖关系和风险。
重要的是要确保该角色的职责对所有相关人员明确,最好是在项目启动时。我们在产品模式组织中引入解决方案倡导者时观察到的一种风险是,产品团队成员和解决方案倡导者最终可能会承担重叠的职责,从而降低了两个角色的有效性。如前所述,解决方案倡导者应该专注于项目的战略方面,而不是专注于所涉及团队的战术产品交付任务。以下 RACI 矩阵显示了角色之间职责的分离
解决方案倡导者 | 产品经理 | 技术主管 | 设计主管 | 交付团队 | |
---|---|---|---|---|---|
项目交付 | A/R | R | R | R | R |
依赖关系和风险管理 | A/R | R | R | R | C/I |
迭代计划 | I | A/R | R | R | R |
沟通 | A/R | C/I | C/I | C/I | C/I |
故事写作 | I | A/C | C | C | R |
请注意解决方案倡导者和产品交付领导层和团队之间的问责制分离。
结论
正如我们所讨论的,一旦确定了一个项目,就会清楚地表明需要改变运营模式才能为客户创造价值。虽然我们列出了许多可以使项目走上成功之路的策略、实践和原则,但没有灵丹妙药。无论你选择什么机制,都要确保你与项目参与者建立一个反馈循环,以便在必要时学习和适应。
重大修订
2020 年 1 月 23 日:发布文章的剩余部分
2020 年 1 月 21 日:发布管理依赖关系和制定沟通策略的部分。
2020 年 1 月 14 日:发布在开始时投入时间和领导风格实践的部分
2020 年 1 月 13 日:发布第一部分