封闭 or 可配置?
这是我在做一些项目初期确定产品形态的时候经常的纠结。
封闭写死:
优点:
· 快速实现,收益快
· 性能较稳定
缺点:
· 内容调整不够灵活,改动需动用开发资源打乱开发节奏
可配置:
优点:
· 开发边际成本递减
· 内容调整灵活
缺点:
· 前期投入成本较高,周期长,收益慢
· 后期功能改动维护成本较高,微小的功能问题可能牵一发动全身
以下曾经历过的两个项目,一暂时性失败,一暂时性成功
暂时性失败例子:
公司时曾做过一款图形化建课的系统。产品部门负责搭建建课支撑产品,内容人员利用搭建的产品体系灵活制作课程,所见即所得。
但是当时图形化创建系统动用的外部开发人员,对公司原生系统有点水土不服,两边沟通成本过高,后期想要转为内部继续开发,但功能复杂代码逻辑很难继续维护, bug 频发。再加上公司变革、人员变动,产品线被战略性放弃。虽然这个以失败告终,但我觉得这个建课的思想特别棒,给了当时的我很大启发。
暂时性成功例子:
公司现在卖的比较好的一款实训产品。因为这个是一个填坑型产品,我们觉得后期基本不太会更新内容,然后选择内容直接写死。产品的上线测试非常认真,产品相对封闭完整,可用性比较高。加上部分销售比较给力,这款填坑产品竟然意外成为了近一年内卖的最好的新产品。
所以什么样的产品更适合配置呢?我尝试对于其适用性进行总结:
· 公司有耐心,战略较稳定
公司有足够的资金支持,不急需于短期变现赚快钱。这种可配置型产品,需要中长期才能体现出来其优势,如果产品线经常变动,可能并不适合。
· 开发人员较稳定
开发人员重新熟悉代码也是很大的成本。写死的产品,如果需要改动去找相应的功能点调整即可,如果是可配置的产品,前面也说了,牵一发动全身,如果不能对功能有全面性的了解,调整起来可能会比较麻烦。
· 内容形式规范,且数量多,内容迭代较快
内容的形式规范更便于抽象出其通用性;数量多,磨刀不误砍柴工,后期的开发边际成本会明显递减;如果内容需要频繁更新迭代,每次修改直接动用开发也是很大的资源浪费。
当然写死、配置也可以灵活结合,需要有所取舍~
哈哈,所以我为啥纠结?一方面觉得做成可配置、开放性的产品更有挑战性,另一方面又觉得周期太长收益太慢,很怕前人栽树,后人乘凉或者后人砍树 = =!