1. 引言
这个系列主要写一下自己关于支付产品设计的经验和思考。在聊具体问题前先用一篇简短的文章概括一下我的产品设计思想。
2. 产品经理工作内容
产品经理最核心的工作内容是挖掘需求,并为问题找到解决方案。最独特的性质在于,不同于其他岗位,产品经理需要为整个产品负责,需要站在不同角色的视角分析问题。例如在内部,需要站在销售的视角,思考什么样的产品能更好卖出去;运营视角,思考如何获取新用户、减少流失;技术视角,思考如何降低开发成本、保证可扩展性和易维护等;在外部,需要站在用户视角思考如何满足需求,以及不同属性的用户特异性的体验等。所面对问题的难点主要在于:问题经常是没有唯一正确解法的,经常需要在不同的要求间寻找某种平衡,例如用户完成购买用时和单均金额间的平衡,供需匹配速度和系统整体效率的平衡等。其次是权责不对等的问题,产品经理的角色决定了,做好产品工作需要为整个系统全流程的各个节点操心,经常需要协调推动多团队,但实际上产品经理又不具有实际的权力,也不具有完全的方案决策权,这又涉及到另一种平衡的艺术。
3. 产品设计的目标
产品设计的目标是全局价值的最大化。具体可以分为三个方面:
- 用户价值:产品解决了用户问题,为用户创造了足够大的价值;用户获得的价值大于“购买”产品的成本,用户才会使用该产品。
- 商业价值:产品为企业带来了足够大的商业价值;企业获得的直接和间接收益大于生产产品的成本,产品才是有利可图的。
- 可持续性:好的产品要可持续的创造用户价值和商业价值。
4. 产品设计的前提
产品设计的前提是理解业务,所有产品都是要解决具体业务问题的。如何理解业务?互联网在本质只是提升了信息传递和处理效率,进而使一些通过传统方式不能完成的业务成为了可能。但在最根本的逻辑上,所有业务都不是新的,人的需求本就存在,大部分业务也本就存在。例如滴滴解决的无非就是叫车的效率提高了,原来我们也可以通过电话的方式预定出租车。所以理解互联网业务,首先要从人的需求出发,分析现有的业务模式,确定要解决的问题。业务分析有以下几个方面
- 定位
首先是业务定位,选择业务方向和要服务的用户等;
其次是产品定位,要解决的核心需求是什么,边界在哪里,差异化点在哪里等 - 目标
首先是业务目标,业务要达成的具体目标是什么。一般每个业务都会有周期性的目标。
然后是产品目标,即完成业务目标所需要的支撑。产品为配合业务目标的达成,会依据业务所处阶段和业务目标制定产品目标。 - 业务关系
企业通常会出于抗风险、建立协同效应、推动增长等目的,建立业务体系矩阵,各业务间通常是具有协同或互补关系的。了解当前业务与其他业务的关联,疏导出各业务的内在联系和推演发展趋势,有助于设计出更合理产品架构。 - 角色
搞清楚这个系统到底有哪些人在用,可分为内部角色(如财务人员、销售人员、客服人员)和外部角色(如终端用户、商户、配送员)。明确核心业务角色和层级关系,角色间的协同和限制条件等,针对性满足不同角色的诉求。 - 场景
需求来源于真实的场景,场景决定了具体问题可采用的解决方案。同一个策略在不同的场景下所涉及的成本和收益差异通常是巨大的,需要有场景化思维,针对场景设计解决问题的方案。 - 业务规则
业务规则决定了在具体的情况下,哪些是可以做和不可以做的事情,控制和影响业务目标,维持业务结构、规避各类风险。 - 业务流程
业务流程是由各角色共同完成的一系列活动,这些活动的内容、方式、责任都有明确的界定。可以使用面相过程的编程思想理解业务流程,以事件为中心,分析出解决问题所需要的步骤,然后确定各个步骤如何实现,各个步骤的输入输出连接起来,组成业务流程。
5. 产品架构设计
一般提到架构设计,都是指技术层面的架构。产品也需要架构设计能力,越高阶的产品对架构的理解应该越深入。产品经理需要理解的架构设计有以下几个层级:业务架构、信息架构、模块架构。
业务架构:为了达成企业的愿景,或者更具体的商业目标,往往会发展出多种多种不同类型的业务,类似于上一段所说的业务间关系,多种业务如何组合去完成最核心的目标。
信息架构:对于产品全局,需要考虑产品给用户呈现的全貌,各个功能之间的层架关系。对于具体的产品功能,需要考虑核心数据如何生成、流转,完成整个业务流程。
模块架构:产品由哪些模块组成,各个模块需要完成什么功能才能完成整个业务流程。各个模块之间的层级和相互依赖关系是怎样的。
(1)架构设计目标
- 高可用:衡量产品对需求的支持程度。好的产品设计需要尽量保证产品在多种场景下是高可用的,避免出现不可用的场景和无法闭环的逻辑漏洞;
- 低耦合:即软件设计的高内聚、低耦合原则;拆解产品模块,把同一类型的任务内聚到同一个模块里完成,降低模块间的相互依赖关系,避免出现改动时“牵一发而动全身”;
- 可扩展:每个模块相互独立,同时考虑到业务的发展,预留扩展空间。对具体功能的扩展不依赖对整个产品各种细节的了解。
(2)架构设计思想
- 穷举、归纳、泛化:产品设计的思考阶段。第一步是力求穷举业务上可能出现的各种情况,比如各种业务类型、场景、用户等;第二步是归纳,把穷举出的各种场景、需求按照合适的维度进行分类,针对每个分类设计相应的解决方案;最后是泛化,思考各种需求背后的需求、或是衍生的需求和场景等,产品设计上对有必要的需求进行覆盖。
- 面向对象:类似软件编程的思想,把现实世界中的业务流程抽象一些对象,每个对象有特定的属性和功能,通过对象间的组合、各司其职完成整个业务流程;
- 函数思想:把每个对象理解为一个函数。对于一个函数,在给定一些输入和输出值后,可以计算出它的表达式。对于产品的模块,根据业务流程在这个节点的要求,可以确定这个“函数”需要有怎样的输入输出,进而确定功能模块的具体逻辑;一个函数的输出可以做另一个函数的输入,多个函数串起来即可得出最终的输出,即完成业务流程。
- 考虑具体情况:并不是说我们能设计优秀的产品架构,就一定要追求最完美的产品架构,还要结合业务现状、投入产出来确定架构设计要做到什么程度。例如创页早期,最重要的就是先验证产品是否可用,是否能够获取到足够的用户。这时候追求合理的架构设计,一定要达成高内聚、低耦合实际上是没有意义的。在核心业务模式跑通、业务规模逐渐增大时才需要考虑架构问题。