在第一部分,我们分析了把平台定义为产品的情况。现在,我们来分析把产品领域定义为产品的情况。那些产品确实都有客户视角,但是我们有可能定义一个更宽泛的产品,然后那些产品就变成了宽泛产品定义下的产品领域。让我们进一步分成两种情况,一种是把解决方案定义为产品;另一种是把产品系列定义为产品。
把解决方案定义为产品
解决方案包括若干产品,它们之间交互产生客户价值。让我们来看两个例子。在电信网络中,无线接入网是一个解决方案,而基站和基站控制器是其中独立的产品,也就是网络解决方案中的网元。在电子商务中,电子商务平台给客户提供了端到端的解决方案,而购物、支付、物流是其中独立的产品,也就是整体解决方案中的元素。解决方案往往会演进成一个开发的生态系统。我们可以把解决方案重新定义为产品,那样在同一解决方案中的产品就变成了产品领域。
1. 产品化、同步和灵活性
虽然在解决方案中产品之间的关系与第一部分中阐述的应用产品和平台产品之间的关系有所不同,以下呈现的动态却很相似。
产品化是推动狭窄产品定义的一个关键驱动力,这由B1回路呈现。产品化的支持包括市场、销售、预算等。一旦这方面有差距,我们把原本只是属于同一产品的不同领域定义为独立的产品。这增加了产品导向,带来更好的产品化支持,最终关闭这方面的差距。
为了在解决方案层面交付价值,相关的部分必须同步起来。独立产品降低了相互之间的同步程度,从而延长了周期时间。更长的周期时间带来时间上的压力,它形成了对产品独立和狭窄产品定义的制约。这个动态由B2回路呈现。
产品独立也会在狭窄产品之间产生部门墙效应,这降低了整体的灵活性。当一个产品有更多高价值的工作时,是很难从另外产品调动团队工作到这个产品上的。当整个解决方案还是充满不确定性,并且整个组织的规模还较小时,我们会期望有更高的灵活性。因此,它也形成了对产品独立和狭窄产品定义的制约。这个动态由B3回路呈现。
与把平台产品化类似,在解决方案中形成独立的产品也最好通过涌现而非事先计划。过早的产品独立带来的问题比它解决的问题还更多些。
2. 局部创新和整体创新
局部创新和整体创新是另一对权衡。局部创新指的是在每一个狭窄产品内的创新,而整体创新指的是在解决方案层面的创新。
狭窄产品定义通过聚焦帮助推动局部创新,这由B4回路呈现。它是推动狭窄产品定义的驱动力。然而,产品独立产生部门墙效应,从而损害了同一解决方案中的产品间协作,降低了整体创新。当感知到整体创新不足时,我们可以通过定义宽泛的产品来降低部门墙效应,增进协作,从而提升整体创新。这个动态由B5回路呈现,它形成了对狭窄产品定义的制约。
也有组织选择不同的平衡回路来应对整体创新的不足。他们不是通过宽泛产品定义,而是通过创建跨产品的工作组来提升协作,以推动整体创新。这个动态由B6回路呈现。理论上来说这是个好主意,然而实践中把那些工作组的结果落实到各自独立的产品中是一个挑战。定义宽泛产品和创建工作组也是可以互补的。
把产品系列定义为产品
产品系列包括若干服务于同一市场但不同客户群的产品,比如一些是高端的,另一些是低端的。通常它们也会共享大部分的代码库。我们可以把产品系列重新定义为产品,那样在同一产品系列里的产品就变成了产品领域。
1. 关注、竞争和混乱
我们首先来分析与业务和客户相关的动态。对客户的关注能增加客户满意度,而让客户感到混乱则降低客户满意度。这里的竞争是指同个产品系列里的不同产品对业务和客户的竞争。
狭窄产品定义的一个驱动力是更好地服务客户。产品定义得越狭窄,那些对应的客户得到关注越多。这增加了客户满意度,从而客户压力得到释放。这个动态由B7回路呈现。
当同一产品系列里的每个产品都各自发展时,相互的对齐变弱。产品之间的竞争加剧,最终意识到对齐不足。这会触发重新定义一个宽泛的产品,从而增加对齐以使竞争可控。这个动态由B8回路呈现,它形成了对狭窄产品定义的制约。
有意思的是当对齐变弱时,客户感到的混乱也会加剧,因为他们可能使用同一产品系列里的多个产品,会收到不同的甚至是冲突的市场信息。这种混乱感使客户满意度降低。这个意外的后果由R1回路呈现。B7回路和R1回路一起构成了“饮鸩止渴”系统基模的动态。
2. 重复工作和通用组件
让我们再来分析与开发相关的动态。重复工作对开发成本有负面的影响,而通用组件则能降低成本。
当同一产品系列里的每个产品都各自发展时,它们之间的透明性变低,从而产生更少的通用组件,导致更多重复工作。重复工作增加了开发成本,因此成本压力变大。针对重复工作的一个解决方案是把产品系列定义为宽泛产品,而之前的产品就成了这个产品里的产品领域。这样做增加了透明性,以使更多的通用组件涌现成为可能,带来重复工作减少,进而开发成本降低,成本压力得以释放。这个动态由B9回路呈现,它形成了对狭窄产品定义的制约。
针对重复工作还有另一个常见的解决方案,就是围绕潜在的通用组件创建组织。这些组织驱动组件被使用,以使它们成为真正的通用组件,带来重复工作减少,进而开发成本降低,成本压力得以释放。这个动态由B10回路呈现。你可能已经注意到这本质上就是我们在第一部分阐述过的“平台是一个组件”的情况。
B9回路和B10回路是创建通用组件的两种不同方式,一种是通过透明性使它成为可能,另一种是定义它。在我的经验里,涌现通常比事先定义工作得更好。
总结
狭窄还是宽泛的产品定义是个很大的话题,有着非常多的上下文差异。这两篇文章(第一部分和第二部分)还远非全面。我总结一下其中涉及的主要权衡和陷阱。
- 产品化是狭窄产品定义的一个关键驱动力。因为正确的狭窄产品通常是涌现的,我们应当避免过早将它们分离出来。
- 周期时间和灵活性的考虑是对狭窄产品定义的主要制约。无论定义的是真正的产品还是只是平台组件,都是如此。
- 通用组件和重用平台对降低开发成本有利,但并不需要把它们定义为产品并附于开发组织。
- 狭窄产品定义可能在以牺牲整体创新为代价推动局部创新。