蓝桥-为啥产品经理总被黑,那是由于你还没学会“高内聚低耦合”

为啥产品经理总被黑,那是由于你还没学会“高内聚低耦合”

2017-08-08

  产品经理做功效计划时肯定常常遇到如许的题目:需求变动或产物计划不公道导致修改本钱很高时,产物被开辟骂,乃至被打。需求评审时,开辟会说“不要信赖产品经理“/”这里不要听他的,到时间肯定会让我们改” ,信托崩坏。

1.jpg


  实在,产品一点也不想改需求。但是业务环境不停在变,导致和开辟的干系总是被改需求这件事粉碎。

怎么办?起首,辩论是不行制止的。认可产物和开辟中使命目的和思索方法上存在差别,不必太甚紧张,在辩论中协作并推进项目是常态。其次,需求总是会改的。与其答应不改,不如让产物改起来非常顺滑。这就要高兴去明白开辟的事情特性,在计划产物的时间做个“有脑筋的pm”。本日和各人分享此中非常紧张的一点——产物计划中的 *高内聚低耦合* 便是挽救产物开辟干系的良药。


  什么是高内聚低耦合?这犀利的说话一看便是来自开辟界的术语。高内聚是说一个功效模块最好仅完成一个独立的子功效而且完成的很好。低耦合是指模块与模块之间只管即便独立/接洽少/接口简朴。这个原则出现的配景是为了让步伐“可复用/可扩展/够机动/可维护”。干过一阵子产物的人对这几个词应该都不生疏。对付步伐计划者来说,这几个词是非常紧张的,不亚于产品经理口中的“用户体验”(原则or挡箭牌)。

1502155917974502.jpg


  那么,怎么能让你的需求计划切合以上原则呢?分3步:把一个详细的题目抽象成一类题目;凭据用户体验流程分别功效模块;针对每个功效计划关闭的办理方案。下面一个一个讲:

  1.从工具到类,从详细到抽象,产物司理要只管即便办理一类题目而不是一个题目

1502155952623863.jpg


  好比老板说这周要上一个大转盘抽奖的运动,送两部iPhone7拉升一下用户活泼。大转盘险些时每个产物司理/开辟的噩梦,拿到标题立刻打开axure开始飙车?no!先把这个详细到运动需求升级到一类题目来思量:

    这次的大转盘送iPhone7,下次送话费怎么改?

    大转盘是个抽奖运动,下次老板又看上了砸金蛋怎么改?

    这次是嘉奖新用户的,下次换成会员才可以抽奖怎么改?

    大转盘是运营型产物,万一下个月要对接外部互助者引流怎么改?

    乃至下次开始做转发集赞送礼物了,怎么改?

  你要从“策同等个(抽奖)运动体系”的角度来思索,目的定为办理快速支持运营(抽奖)运动这一类题目;云云得出的方案才有大概是“通用”的,支持比力多的“变种”。


  2. 绘制用户体验流通图,根据“单一责任原则”分别功效模块,差另外脚色乃至统一脚色都大概有差另外使命目的,必要逐一阐发。

    好比在大转盘类产物中,一个到场用户在运动中的体验流程是:①用户看到运动页面→②体系判断运动有用性→③用户实行抽奖操纵→④体系判断用户是否切合到场条件→⑤体系给出嘉奖效果→⑥输出效果页面给用户→⑦用户实行领奖操纵

最初应该怎样分别变乱模块?


  我的履历是参考生存履历并凭据你当前所要处置处罚的使命目的来确定粒度的粗细,好比如今我们在计同等个抽奖的运动体系,我的分别粒度就先到构成这个别系的大模块。要是如今我们开始计划抽奖的前端页面,我们的分别粒度就要拆解到页面的构成部门。


  怎样确定模块计划切合高内聚低耦合的尺度?

    一个判断尺度是:单一责任原则。简朴说便是一个模块只做一件事,只负担一项职责,由于负担的责任越多,它被复用的大概性就越小。要是负担的职责过多,就相称于将这些职责耦合在一起,当此中一个职责变革时,大概会影响其他职责的运作,于是就会导致开辟骂娘——“这个功效改不动”、“这相称于重做一个”

为了方便操纵,我小我私家总结如下图:

1502156019774021.jpg

  左边举例:

    假设将“④体系判断用户是否切合到场条件→⑤体系给出嘉奖效果”计划为一个功效模块A,我们将会发明A的输出效果有两种范例,一个范例是用户老王不是注册用户不具备抽奖资格(假设运动要求平台注册用户才气抽奖),另一个范例是老王具备抽奖资格但是没有抽中(假设完全随机抽奖)。在这种环境下,出现两种范例的效果输出,阐明该模块的耦合度高了——应该拆成2个模块,一个专门判断用户是否有资格来抽一把,一个专门判断有资格的用户得到哪个奖品。①用户看到运动页面→②体系判断运动有用性→③用户实行抽奖操纵→**A 体系给出嘉奖效果**→⑥输出效果页面给用户→⑦用户实行领奖操纵


  右边举例:

    假设将“⑤体系给出嘉奖效果”拆成两个模块“A 用户抽中哪个奖品→B 该奖品是否已达最大量”,我们将会发明要得到用户中奖效果肯定要模块A和B同时起作用才行,也可以说A和B在负担统一个责任。阐明该模块的内聚度低——应该归并成1个模块。

①用户看到运动页面→②体系判断运动有用性→③用户实行抽奖操纵→④体系判断用户是否切合到场条件→**A 用户抽中哪个奖品→B 该奖品是否已达最大量(已抽完或逐日限量)**→⑥输出效果页面给用户→⑦用户实行领奖操纵


  3. 针对每个功效模块,明白输入和输出,计划完备关闭的办理方案,打造对上卑鄙的黑盒

    凭据第2部门的用户体验流程,把运动体系分别归类出以下模块:

    运动页面办理:页面创建、编辑、banner图更换、转盘样式切换、运动规矩页编辑等;

    运动有用性办理:底子信息设置装备部署、运动时间设定、定时上线下线等;

    到场条件办理:设置装备部署到场运动的各项条件,好比用户品级、性别、购物满??元等;

    奖池体系:奖品设置装备部署、数目限定、概率参数调解等。

  我们以“到场条件办理模”块为例:

    输入:供判断的一堆参数,较大大概会随业务变革而增减

    黑盒:内部事情单位,凭据参数输入实行详细的判断

    输出:报告抽奖体系该用户上否有资格到场抽奖,yes/no

  如下图:

1502156047497753.jpg


  厘清之后,该功效模块和上卑鄙切割的就比力洁净了:仅完成判断用户是否有资格到场抽奖的使命,高内聚。上游对接判断的参数条件,凭据业务需求增长入参和对应的判断模块即可,卑鄙只输出是否可以到场有奖的信息,低耦合。


  总结

  “高内聚低耦合“的产物计划能包管“可复用/可扩展/够机动/可维护”,从而提拔产物迭代服从/增长和开辟的情感。

  产品经理可参考以下方法计划产物模块:

    从工具到类,从详细到抽象,产品经理脱手是要办理一类题目而不是一个题目;

    绘制用户体验流通图,根据“单一责任原则”分别功效模块;

    对每个功效模块,明白输入和输出,计划完备关闭的办理方案,打造对上卑鄙的功效黑盒。


上一篇:产品游戏化设计新思路:「强游戏化」结构

下一篇:阐发数据时,常用的4种方法