踩了4次坑,终于搞清楚B端数字化产品为什么要做低耦合设计
Yina是一家数字化运营SaaS产品的负责人,有丰富的数字化产品设计经验,同时也是B端产品设计顾问和企业数字化运营顾问,每周她都会和很多企业总裁或者B端产品经理做线下活动。
这天,在腾讯众创空间的一次线下活动,她遇到了一个产品经理,咨询了一个这样的问题:
“Yina,在设计产品的时,怎么才能降低产品的耦合度?都说好的产品架构是低耦合高内聚?到底如何设计呢?需要注意什么呢?”
Yina感觉这个问题非常难回答,因为没有实际的设计场景的话,无法说清楚什么是低耦合度的设计方案。
B端产品设计有非常多的规则配置以及实际业务逻辑。在设计底层的权限,组织架构,规则配置时,需要考虑底层的设计逻辑以及逻辑实现的耦合逻辑。
我在做数字化项目时,在做复杂的业务规则逻辑时也踩过不少坑,分享下自己做几个小功能时总结的小case,希望可以对做B端产品设计的同学有所帮助。
1、组织架构遇上审批流:数据库设计时,最小颗粒度设计存储内容
成熟的数字化系统,组织架构和审批流跑不了。当你将身份,角色,门店范围,门店类型(直营店,加盟店,合作店,独立店等),审批规则等等这些信息混合在一起。
设计组织架构和审批流时,如何抽丝剥茧?找到最本质的逻辑规则设计合理的架构呢?如何通过低耦合的设计方式,提供简单优雅的设计方案?
我的建议:通过梳理,将影响业务逻辑的因素,做成横坐标;每个因素上的状态值(或者类型)做成纵坐标;形成2维矩阵图;然后试着做全集的场景和方案梳理。
这种方式很慢,但是你做到三分之一的时候就会慢慢发现规律,做到一半的时候就知道后面的逻辑,做到最后的时候,方案呼之欲出。
图表是最能帮助你梳理思路的工具。我在之前的文章中也分享过几个图表。可以看下~ 参考类似⬇️
通过穷尽方案抽象出通用功能,做模块化时保证不会耦合。
2、交互设计时,和技术沟通,避免因为交互流程的耦合影响技术方案的耦合
在产品设计交互架构时,有时候会考虑不到实际的数据库和技术实现方案,在设计时会出现页面的实现方式有耦合逻辑,会导致技术的实现方案有耦合度;此时需要通过和技术团队的沟通,找到这样的隐形坑,优化设计方案,更新产品策略,降低耦合度。这就是我经常和技术说的“通过产品策略降低技术难度。”
什么意思?产品经理通过业务场景的支持和技术方案实现的平衡,找到最优的解决方案。以此获取产品的成功。
举一个例子:最近在做一个在途库存的计算器逻辑(这个方案设计的特别有意思,感兴趣的可以沟通),在做一个批量编辑列表页面时,交互的设计为了降低用户的操作繁琐度,默认提供了打开即为编辑状态的页面,同时提供了单条删除的操作。技术在实现时犯难了。
每一个列表数据都以数据ID为记录;但是如果编辑和删除操作同时存在的话,在存储数据时,会出现超级大的计算量。无法确认到底是对哪个数据进行了操作。此时需要产品结合实际的业务场景找到平衡方案。
另外一个在配置角色和全新规则时,交互设计可能将门店-角色-权限做了耦合的交互设计,但是在底层设计数据结构时,不能根据产品的设计方案设计,而是需要通过角色-全新-门店建立最小颗粒度的数据结构。
一定避免因为交互页面耦合逻辑导致数据结构的耦合设计,产生耦合后,想改就要动数据库,想想都难受?!
3、筛选逻辑:配置项目读取配置,不要在代码里写过滤逻辑
在做企业数字化项目时,有的团队为了控制成本,直接将客户的业务逻辑放在代码里,导致后面客户想要调整一个简单的业务逻辑都非常困难。
我们在做数字化方案时,秉承的一个原则就是能做配置项目的,能做最小颗粒度配置的,绝对不在代码里写死逻辑。
企业的业务变动是大概率事件,不能为了节约成本帮客户做一个"死板的系统",而是要做成灵活可配置,灵活而优雅的系统。
4、结合场景:不要过分设计;不要因为要解耦合做的太零散,导致页面配置时太琐碎
这条是结合3来说~有时候我们不能为了灵活而过度设计。在不必要的环节设计成太多的配置项。
比如常见的很多信息化系统非常灵活,各种字段可配置,各种流程可配置,甚至是数据档案都可以配置!
最后导致系统运行起来时,对人员的操作能力要求比较高。只有充分了解的业务和系统的功能才能配置成功。
在考虑系统的解耦合程度和用户的上手操作难度时,产品经理需要注意做权衡。
以上几个点,是做数字化系统时,做B端产品设计时,解耦合需要注意的点,希望对大家有所帮助。
-END-