4.5 产品设计经济性原则
当我们把 IT 系统引入到业务体系中后,会面临一个新的问题。无论是产品设计还是软件设计,无论作为产品经理还是架构师,有一个难以回避却引人思考的问题是:哪种产品设计是好的?
不像艺术设计类工作岗位,产品设计、领域模型或者架构岗位往往不好通过某种考核来评价人员的能力,于是更多的是过往的工作经历来证明其设计水平。
另外一方面,大家评价一个方案的好坏有多种偏好。有人喜欢用是否足够前沿和创新来评价方案,有人会用同行的竞品来评价方案,甚至有人通过个人偏好来评价方案。但是归根结底要从方案的收益和成本上来看,否则为什么要做这个软件呢?这就是产品设计的经济性考量。潘家宇老师的《软件方法》[22]一书中给出了一个公式:
这是一个非常反常识的观点。首先他将产品设计同利润联系起来,因为我们做软件产品是为了提高生产力,而不是花费更多的人力建造软件,但是带来的收益还无法抵消构建软件花费的人力成本(虽然现实中这种例子非常多)。那么利润就是省下来的钱,这也是投资该软件的目的和动机,这是一切的起源。
如果这个公式用于软件产品设计,可以这样表述:一家公司有各种各样的业务场景,支撑业务场景的就是需求,因为产品经理或者业务分析师(BA)经过抽象、归纳和设计,使用较少的软件功能就能支撑这些场景,就说明能获得更高的利润。
如果代入到领域模型中,用足够少的领域模型能支持多种多样的功能,并具有一定的拓展性,那么就能说明领域模型的抽象和设计是能减少重复开发,因而能带来收益。
既然设计是如此重要,可不可以将设计做到极致,让开发成本极其低呢?理论上是可以的,但是这样会牺牲用户体验,以及软件的可靠性。如果将所有页面都设计成简单的增删改查,开发人员能极快的完成开发,复制粘贴就可以做完所有的工作。但是,这样的软件能满足需求吗?
所以产品设计中有一个矛盾,我们需要在这个矛盾中找到平衡,这个矛盾是:
通俗来说,就是能用 3 个关键步骤就能满足业务需要的设计,没有必要设计为 5 步。精兵简政能提高用户体验,降低成本,在当下的互联网软件中是一个趋势。在设计良好的情况下,这个成本减少带来的收益是双方的,用户的操作成本和企业的运营成本都会减少。
但是如果产品经理不加以设计,直接简化关键步骤,一拍脑门说要学习"极简风格"的乔布斯。后果是软件没有完整阐述线下的商业逻辑,本来应该达成的契约没有完成,剩下的就是运营人员需要面对无休止的纠纷。
举个例子,某会员系统具有一个会员充值功能,但是在业务上操作员在为会员充值时可能出错。一般此类系统,都会提供一个"冲正"的功能来修正之前的错误操作,但是两条记录都会存在。
某产品经理在新的版本中创新的简化了逻辑,提供了一个"撤销"的功能,可以对原来的充值单做出修改,在用户侧也"简洁"的看不到两条记录。在上线运行后,偶尔接到恶意投诉,用户提供了某时刻的账户余额截图,以及充值记录,说自己明明有多少钱(装作不知道撤销这回事)但是后面又少了。
所以用通俗的话来说,靠谱的产品设计是在不产生"扯皮"的情况下,用最低的成本和流程把"生意"做了。使用经济学作为基本原理,选择最具有经济性的产品方案。
所谓极致的用户体验和简洁性,其实也是从用户的角度发挥产品设计的经济性原则。让用户做的少了,代价是软件的开发、运营成本变高了,公司需要做的更多。为了让用户感受到丝滑般的体验,需要付出巨大的成本,从公司的角度也不是最经济的。
换句话说,先用低成本把生意做成了,再付出更多成本让用户体验更好,吸收更多的用户。生意没做好,和系统好不好用没有太大关系。虽然信息系统对企业运转至关重要,但是也没有到生死攸关的地步。