现如今,很多互联网公司在向“大中台,小前台”方向靠拢,通过打造高度可用、高度可定制的中台,来支撑前台业务的快速发展、个性化功能定制。但在构建中台产品(即所谓公司级平台)的时候,如何能成功让一款产品从0到1,即,能顺利诞生,落地,并产生价值呢?这里,我们抛开技术话题,探讨在产品设计规划时要考虑的。

笔者曾经作为Team Leader负责过四次中台产品打造,一次不成功,三次成功。打造一个成功的中台产品,一方面可以提高前台业务部门的效率,减少后续开发投入,还可以通过中台产品,集成前台业务数据,达到数据集成统一接入发布,甚至能发掘潜在客户需求,也有助于对前台需求进行启发。中台成功后,可以在全公司得到重视,进而影响整个公司的技术体系,当然其中个人和团队的获益也是显而易见的;中台不成功,就是没有人用,落不了地,boss认为浪费资源,从而否定产品经理和开发团队的能力(在这儿笔者需要感叹一下,虽然网上经常说开发和产品经理是死敌,其实二者是绑在一根绳上的蚂蚱,再牛逼的开发,如果没有成功落地的产品证明自己,也是空谈技术)。笔者通过复盘总结,得到一些经验和教训,希望读者能引以为鉴、为戒。

产品诞生前,经常是源于公司前台产品出现大量重复性需求,boss希望能够进行提取抽象,做成中台产品。那么,在这个时候,需要注意遵循2-8法则,即寻找实现20%的功能,来撬动80%的需求场景。那么,具体做法是,产品经理需要收集各个业务线对于此需求的现状、短期的规划、以及未来的考虑。(在这个阶段,最好跟业务线产品经理达成一致,当我们的中台产品上线后,能够立刻接入,一个没有业务线用的中台产品是落不了地的)。通过整理总结各业务线反馈,标出该需求对业务线是否重要?商用价值是否高?未来是否需要?还是无关轻重的?然后,在这些需求中,按照2-8法则,找出撬动80%场景的那20%的功能,然后作为产品的MVP(最小可交付产品)推动实现。(一定要注意,实现尽可能少的功能,满足尽可能多价值高的业务场景)

设计和开发阶段,产品和架构师(或者主程)必须达到深入沟通,让开发深入理解到此中台产品解决业务线什么场景,核心需求是什么,产品定位是什么,未来会向哪些方向发展。MVP能解决业务线哪些场景,还有哪些场景未解决。架构师基于此,选择合适的技术架构,封装好核心,对未来的扩展留出接口。好的中台产品,往往能无限扩展,比如快速开发平台(Bei...Clou.)能做出无限多的增删改查表单列表功能、前端组件化平台(Pa..Buil...)能搭建出无穷多的页面,自动化测试框架(BAT)能实现无限多的业务线自动化测试集。那么,就需要架构师在这时,设计好中台产品的核心架构,业务线如何使用,以及针对特殊个性化需求的扩展能力。

一旦MVP上线(第一版),首先要做的不是继续增加功能满足更多的场景。而是要放慢开发脚步,转而去推动业务线进行接入。为什么呢?因为新需求的开发,势必会让中台产品变得“重”(臃肿),增加业务线或客户的使用成本,让中台代码变得复杂难以维护;而此时MVP上线,正是需要向boss和公司业务线展示产品价值的时候,而中台价值的体现,是从业务线那儿得到的,这也关系到boss是否能继续支持投入做这个产品,从而达到良性循环。如果能有多个业务线使用中台产品搭建出前台业务,那么,就可以证明中台确实能够提升开发效率,降低成本,能落地。如果一味逼开发上线新功能,往往团队看不到产品价值,有挫败感,业务线感觉不到你的存在,boss不认可从而不继续投入,导致恶行循环。。

打造明星客户作为标杆。平台上线后,想要在公司一炮走红,或者让boss一眼就能看到产品价值,认为这是个牛逼的应用,必须打造出来一个标杆产品。以在前端组件化平台(Pa..Buil...)基础上打造个性化主页(Profi..)为例,当时为了推广中台,而推出了Profi..产品。而这个产品让大家眼前一亮,进而后续各业务线产品经理(可能本来没这需求的业务线)理解Pa..Buil...的作用,进而产生把Pa..Buil...应用在自己产品内的想法。

当业务线开始试用后,势必会提出各种各样的花式需求。。此时,不管是产品还是开发,一定要有拒绝能力,能表示“这个功能暂时支撑不了”,或者通过什么方式扩展,对于业务线需求不能照单全收。要让业务线在中台的设计规范内进行扩展。不能为了实现某个业务需求,而在中台设计上“巧妙”实现,甚至hack中台产品(如果一定要做,也要明确跟业务线表示,中台升级的时候未必支持)。否则,当你的中台升级时,对于老数据的兼容会让你头疼死。

中台的开发节奏一定要慢,要“小步慢跑”,要留出时间重构代码,填平技术债,不要做过多的临时方案。产品在提出新需求前,需要考虑好对之前业务的影响,对现有各业务线的影响。别出现中台升级,前台挂掉的情况。最好有专门的人去支撑业务线对接,解答业务使用中的问题(没有的话,team leader充当也行)。

注意:
第一戒,禁止去满足业务线所有场景。。做平台的产品,一定要懂得取舍,有些功能属于平台必须提供支撑业务线nocode(拿来即用,或者通过简单配置不接触代码即可满足场景);有些功能是平台提供扩展接口让业务线轻便扩展即可;有些功能是平台不支持,需要业务线自己开发。

第二戒,明确中台产品边界,禁止把业务功能渗透到中台产品中。比如,BAT的逻辑是启动Selenium、生成报表、提供版本控制、解析运行脚本、异常封装处理,而“打开登录页面”这种代码,不能出现在BAT的产品代码中。再比如,人才VS中,加载对比项、调用业务接口获取数据、业务接口超时自动开车是人才对比的功能,而加载测评活动列表绝对不能出现在人才对比框架中。这里需要注意,不混入业务,并不是说中台产品运行时没有业务,那就失去了中台的意义了。而是,不要把业务逻辑混到中台逻辑里。简言之,中台必须跟前台严格划清界限,我的是我的,你的是你的,你的逻辑不要进入。当中台产品中,出现对业务的特殊处理,就需要反思,是不是中台产品设计的不够好,需要特殊判断才能支撑业务。

总结:
1. 规划阶段,明确业务线现有需求,提取抽象中台MVP,满足2-8法则。
2. 尽早跟业务线约定好MVP上线时间,以及业务线使用时间。
3. 设计开发阶段,跟架构师讲透产品定位、扩展点以及发展方向,架构上要明确业务如何使用,如何扩展。
4. 产品MVP上线后,要推动业务应用,让中台产品落地,不要急于扩展新功能。
5. 后续迭代,要小步慢跑,留出时间重构、填技术债、解决业务问题。

如何成功打造一款中台(PaaS)产品的更多相关文章

  1. 第四阶段:1.从零打造一款社区web产品

    ---恢复内容开始--- 熟人关系:微信 陌生人关系:微博 1.把各种竞品罗列起来形成一个分析池.分析其目标用户是哪些.这些产品满足了用户什么需求.可以从时间角度分析趋势.针对每一类竞品画一个商业模式 ...

  2. 第四阶段:2.从零打造一款工具APP产品

    1.APP:安卓跟IOS(根据目标用户选择 ,那个先做哪个后做,APP的通过需要审核,其中也有很多技巧). 同时注意设计模版的使用(提高效率).竞品分析也是少不了的.

  3. 【ASP.NET程序员福利】打造一款人见人爱的ORM(二)

    上一篇我已经给大家介绍AntORM的框架[ASP.NET程序员福利]打造一款人见人爱的ORM(一),今天就来着重介绍一下如何使用这套框架 1>AntORM 所有成员 如果你只想操作一种数据库,可 ...

  4. RethinkDB创始人教你如何打造一个伟大的互联网产品

    关于作者 我叫Slava Akhmechet,本人是 RethinkDB 的创始人之一,RethinkDB是开源,分布式数据库,旨在帮助开发人员与运营商在打造实时应用时处理无结构数据 如何打造一个伟大 ...

  5. 如何打造一款五星级的 APP ?

    移动互联网大潮来袭!据统计,2015 年平均每天有 1000 个新的应用上架,而这些应用的现状可以说是鱼龙混杂,同是每个人的眼光.品味.意识和利益都不同,因此每人眼中的应用也是不同的.在巨大的市场竞争 ...

  6. 【FastDFS】如何打造一款高可用的分布式文件系统?这次我明白了!!

    写在前面 前面我们学习了如何基于两台服务器搭建FastDFS环境,而往往在生产环境中,需要FastDFS做到高可用,那如何基于FastDFS打造一款高可用的分布式文件系统呢?别急,今天,我们就一起来基 ...

  7. 【Microsoft Azure 的1024种玩法】八. 基于Azure云端轻松打造一款好用的私有云笔记

    [简介] Leanote一款开源云笔记软件,它使用Go的Web框架revel和MongoDB开发完成的,其是目前为止发现的最有bigger的云笔记,它支持markdown输入,代码高亮,多人协作,笔记 ...

  8. 【ASP.NET程序员福利】打造一款人见人爱的ORM(一)

          “很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有大用户群体的ORM有保证,这点是不可否认确是事实.但是往往用户群体大的ORM又有不足之处,今天我们就来聊聊关于ORM的话题,打造 ...

  9. 打造一款属于自己的web服务器——开篇

    JVM总结慢慢来吧,先插播一篇水文,来介绍下最近业余一直在写的一个小项目——easy-httpserver(github).适合新手学习,大神们路过即可^_^. 一.这是个什么玩意? easy-htt ...

随机推荐

  1. 网络请求————ProxyHandler实现代理ip

    from urllib import request #这个是没有使用代理的 # resp = request.urlopen('http://httpbin.org/ip') # print(res ...

  2. vue-cli的使用(模板自定义、本地配置,eslint的配置)

    vue-cli(脚手架工具:帮助开发者完成基本的代码编写). 功能: 目录结构 本地调试 代码部署 热加载 单元测试 使用模板: vue init <template-name> < ...

  3. php中print、echo、print_r、var_dump的区别

    echo,print,print_r,var_dump区别 print只能接收一个字符串:print有返回值1(可在表达式中使用) e.g print 'string 1' e.g if($exp & ...

  4. JSF生命周期&Facelets的生命周期

    1.JSF生命周期 1)恢复视图(Restore View) 视图表示组成特定页面的所有组件.它被保存在 客户端(通常存储在隐藏字段中)或服务器中(通常在会话中).根据请求访问的视图ID(页面地址), ...

  5. AssetBundle打包-----BuildPipeline的应用

    打包思路:确定要打包资源的路径.和打包的输出路径(一般为S路径),把存放资源的路径使用递归进行遍历,获取所有资源,文件类型的资源可以通过File拷贝或IO写到输出路径,其他资源的打包通过AssetBu ...

  6. Appium环境搭建——安卓真机调试注意点

    1.安卓设备连接失败 通过adb devices命令 查看安卓设备的连接情况,如图,未成功连接 解决方法: (1)关闭360安全卫士和360手机助手(2)查看5037端口是否被占用 netstat - ...

  7. gtest 三种事件机制

    前言: 1.首先说明gtest中事件的结构层次: 测试程序:一个测试程序只有一个main函数,也可以说是一个可执行程序是一个测试程序.该级别的事件机制会在程序的开始和结束执行. 测试套件:代表一个测试 ...

  8. 加密算法HASH和MD5模块hsahlib

    HASH Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出, ...

  9. iPhone / iPad L2TP Client Setup

    原文链接:http://www.softether.org/4-docs/2-howto/9.L2TPIPsec_Setup_Guide_for_SoftEther_VPN_Server/2.iPho ...

  10. 图片万能居中css

    .div{text-align:center;} .div img{vertical-align:middle;} .div:after{content:"";display:in ...