传统的产品研发模式大致可以分为:产品调研-架构评估-产品启动-需求分析-产品设计-产品开发-产品发布七大阶段。本人在公司经历过大大小小的项目数以百计,发觉这些阶段一直以来都是以一条直线的形式串行着:从产品调研到产品发布,总是一拖到底。这样的做法对于范围比较大,周期比较长的项目,尤其是用户体验类项目而言,存在较大的弊端:我们很可能在没有足够清楚用户需求的情况下,定制了过多的辅助功能,这样即拉长了项目周期,又无谓的投入了过多的人力,在资源如此宝贵的今天,浪费资源实在太过奢侈,我代表春哥鄙视之…
言归正传,切入今天要谈的话题 —-“产品灰度上线的研发模式”。何谓“灰度上线”,简单点理解就是按产品需求优先级,抽出核心需求,在满足用户基本要求的情况下快速上线,并通过限制流量、白名单等机制进行产品试用,以此收集用户的意见,从而萃取出用户潜在的需求,形成后续更有针对性的设计方案。
和传统研发模式相比,这么做唯一的区别就在于将原先一锅粥式的需求和功能点进行了轻重缓急的排序,并以此将项目从原来的单长线作战转化为多迭代短线循环,让产品的生命周期不再昙花一现。

如此一来,需求分析阶段显得尤为关键,我们必须清晰的将需求按优先级归纳分类为几个序列,如:p1,p2,p3…核心功能和必备的体验在p1序列,辅助功能点和辅助型体验列在p2序列,争执不定的需求点可以放在p3序列。需求排序后,我们可以将项目发布点有序的分成(>2期),第一期只确保主要的核心功能和基础体验快速灰度上线,随后通过用户访谈、产品的tracker&session数据、业务数据等手段分析出用户对产品的真实反应,并以此调整二期需求,该加的加,该砍的砍,做到有的放矢。
近日,看了玉伯写的《构建前端UI组件的新思路》一文,让我追忆起去年自己分享的一篇P文《随感协同开发的JS设计模式》,有几分共鸣……
话说去年支付宝新版收银台项目中,我就小试了一把这种组件编码模式,点滴心得,这里和大家做一个交流:
回顾一下之前说到的抽象类,对设计模式有所了解的同学可能会觉得有些眼熟,没错,初一看,觉得它很像一个抽象工厂,但是结合下面的基础类来看,你会发觉我并没有在各基础类中,重写getVessel,show,hide等方法,而是直接继承了抽象类中的这些方法。一定会有人不解为什么要这么做,无他,就因为他是JS,而非JAVA。一定的偶合度换来足够的灵活在我看来一点都不过分,更何况这个抽象类是必须确保绝对稳定的,他在成形后不允许被随意修改那是必须的。
Tags:javascript, UI组件, 组件开发 | 评论[9] | 共有1,041次浏览