编辑导语:对于产品经理来说,发展到一定阶段后,日常的工作内容往往离不开产品架构设计。这是一个极其细致的活,需要产品经理有很强的架构能力。那么,产品经理如何才能摸清产品的底层逻辑、提升对产品的认知,做好产品架构呢?
杰夫贝佐斯曾经在一次演讲中提到「人们经常问我:未来10年什么会被改变?但从来没有人问我:未来10年,什么不会变?」。在一款产品里中,架构就是那个不容易变的东西。
产品架构是产品经理发展到一定阶段都需要具备的能力,只是多年来互联网产品一直以来都处于舍命狂奔的状态。这种情况下产品经理往往也没有太多的机会去锻炼自己的架构能力,毕竟产品架构是个细活,不像功能体验那么能够被直接感知到。
埋了坑不一定自己填,功能没上线肯定是要背锅的。
然而,近年来新的app越来越少,各巨头们都在做深耕和提效,架构这件事情开始变得越来越受到重视了,从18年底-19年突然中台建设成为IT圈的大热点也充分体现了这一点。
一、产品架构是什么,为什么要做架构?
架构这个词往往代表了骨架和脉络,是抽象模型。
产品架构就是产品的骨架和模型,假设人体是一个产品,那么人这个产品最粗粒度的架构就有头、四肢、躯干,通过骨骼支撑起来。
在这个架构之上附着了肌肉、器官和皮肤等,构成了整个人体。
在日常工作中,我们常常会听到好几个架构,业务架构、信息架构和技术架构,这些和产品架构是什么关系呢?我的理解是这样的:
业务架构:往往是为了达到业务目标(通常是商业目标)所搭建的业务体系和商业模式,比如著名的亚马逊飞轮效应和Google搜索的印钞机模式。业务架构包括且不仅限于产品,产品架构是为了更好的支撑业务架构而构建的。信息架构:主要是产品在结构层的一部分,通常是在交互设计阶段考虑的产品给用户呈现的产品全貌,让用户可以清晰快速的找到功能的方法。有些说法会把产品架构和信息架构当成一回事,在一些2C产品里,从信息架构里就能看出产品架构,如新闻资讯类的app。但实际上信息架构只是产品架构的一种表现形式,并不能完全代表产品架构。技术架构:是产品架构的实现,并还覆盖有其他范畴,是个独立的大话题。在一些偏向技术型的产品里,产品架构和技术架构很接近,比如云计算产品,其用户本身就是程序员,所以云计算产品的产品架构和技术架构就非常接近了。产品架构本身也有三个层次:
独立可交付客户价值的业务产品;单一产品内的模块化;单一个模块的抽象设计,也就是功能设计的架构。整体的关系见下图:
好的产品架构能够带来哪些价值呢?借鉴云计算产品的说法,本文这里也提出一个三高的说法:
高可用:在多业务产品组成的产品矩阵中,每个产品可独立交付价值,也可组合成不同的解决方案。高可靠:在单一产品内,基于解耦化和模块化的设计,对模块类逻辑的调整,其复杂逻辑所造成的影响往往控制在模块内,模块之间依然还是通过定义好的输入输出进行交互。高可扩展:在单一产品内,基于模块化定义好的规则,不需要事无巨细的了解整个产品的所有细节逻辑就可以快速扩展产品功能。由此可见,好的产品架构是相对稳定的,在业务方向本身不发生重大变化的情况下,是可以事半功倍的支持业务发展的。
二、如何做产品架构?
1.从具象到抽象
目前各大厂商对互联网产品经理的要求里往往非常注重同理心和用户体验,这是一个具象化的过程,在一个具体的场景里以用户的视角来体验和设计产品。
而做产品架构则有了不同的要求,产品经理需要基于用户场景找出一类需求,并且还需要考虑到背后的需求,衍生的需求。
对于这些需求进行抽象和建模,找出一些通用型的解放方案去满足他们的需求。并且,由于B端产品的价值流和功能逻辑相对于C端产品往往要复杂很多,对于B端产品经理而言,产品架构的要求往往更高。
2.各层次的产品架构搭建
前面已经介绍到产品架构有三个层次,接下来具体介绍三个层次是如何做产品架构的。
1)可独立交付价值的产品架构
可独立交付价值的产品架构,这类架构往往和业务是强相关的,每个产品可以独立使用交付客户价值,形成采购,也可以针对客户不同场景的需求进行组合,提供综合解决方案。
云计算产品就是最典型的例子,用户可以在云计算厂商