如何成功打造一款中台(PaaS)产品
现如今,很多互联网公司在向“大中台,小前台”方向靠拢,通过打造高度可用、高度可定制的中台,来支撑前台业务的快速发展、个性化功能定制。但在构建中台产品(即所谓公司级平台)的时候,如何能成功让一款产品从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.从零打造一款社区web产品
---恢复内容开始--- 熟人关系:微信 陌生人关系:微博 1.把各种竞品罗列起来形成一个分析池.分析其目标用户是哪些.这些产品满足了用户什么需求.可以从时间角度分析趋势.针对每一类竞品画一个商业模式 ...
- 第四阶段:2.从零打造一款工具APP产品
1.APP:安卓跟IOS(根据目标用户选择 ,那个先做哪个后做,APP的通过需要审核,其中也有很多技巧). 同时注意设计模版的使用(提高效率).竞品分析也是少不了的.
- 【ASP.NET程序员福利】打造一款人见人爱的ORM(二)
上一篇我已经给大家介绍AntORM的框架[ASP.NET程序员福利]打造一款人见人爱的ORM(一),今天就来着重介绍一下如何使用这套框架 1>AntORM 所有成员 如果你只想操作一种数据库,可 ...
- RethinkDB创始人教你如何打造一个伟大的互联网产品
关于作者 我叫Slava Akhmechet,本人是 RethinkDB 的创始人之一,RethinkDB是开源,分布式数据库,旨在帮助开发人员与运营商在打造实时应用时处理无结构数据 如何打造一个伟大 ...
- 如何打造一款五星级的 APP ?
移动互联网大潮来袭!据统计,2015 年平均每天有 1000 个新的应用上架,而这些应用的现状可以说是鱼龙混杂,同是每个人的眼光.品味.意识和利益都不同,因此每人眼中的应用也是不同的.在巨大的市场竞争 ...
- 【FastDFS】如何打造一款高可用的分布式文件系统?这次我明白了!!
写在前面 前面我们学习了如何基于两台服务器搭建FastDFS环境,而往往在生产环境中,需要FastDFS做到高可用,那如何基于FastDFS打造一款高可用的分布式文件系统呢?别急,今天,我们就一起来基 ...
- 【Microsoft Azure 的1024种玩法】八. 基于Azure云端轻松打造一款好用的私有云笔记
[简介] Leanote一款开源云笔记软件,它使用Go的Web框架revel和MongoDB开发完成的,其是目前为止发现的最有bigger的云笔记,它支持markdown输入,代码高亮,多人协作,笔记 ...
- 【ASP.NET程序员福利】打造一款人见人爱的ORM(一)
“很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有大用户群体的ORM有保证,这点是不可否认确是事实.但是往往用户群体大的ORM又有不足之处,今天我们就来聊聊关于ORM的话题,打造 ...
- 打造一款属于自己的web服务器——开篇
JVM总结慢慢来吧,先插播一篇水文,来介绍下最近业余一直在写的一个小项目——easy-httpserver(github).适合新手学习,大神们路过即可^_^. 一.这是个什么玩意? easy-htt ...
随机推荐
- java基础——字符串中的反转Reverse问题(面试必备)
由于研究了关于字符串(String)的问题,今年就在这里总结一下,首先说一下有关于面试,我想的是,需要一定的技能,比方说,大家想到这个反转问题,肯定能说上了,只不过是你说的一般人都知道,要想在面试中更 ...
- 微信自定义菜单errcode(40016)
最近在做微信开发,通过微信API创建自定义菜单时候出现:{"errcode":40016,"errmsg":"invalid button size ...
- Spherical CNNs代码配置过程
ICLR18 best paper: Spherical CNNs 论文链接:https://arxiv.org/abs/1801.10130 GITHUB地址:https://github.com/ ...
- 页面布局 ——图片自动按比例显示&&图片随外部div的增大而按比例增大
图片按比例显示,分为两种情况. 1.空的div内加图片 <div class="emty"><img src="img/my.png"> ...
- MySQL delete语句的问题
以前遇到过几次这个问题,都觉得问题不大,所以没有记录,但是这次又遇到了,而且没有第一时间想起来,所以还是有记录下的必要 MySQL delete语句使用子查询操作同一张表的时候会抛出 DELET ...
- 微信企业付款获取RSA
package com.hentica.app.test.wx; import com.plant.app.modules.pay.wxpay.config.WxpayConfig; import o ...
- 微信小程序wx.navigateTo页面不跳转
排查后发现: 若是在全局app.json中配置了tabBar,引用的链接与wx.navigateTo页面跳转url地址相同就无法实现跳转.
- dll被设置为用记事本打开的解决方法
dll被设置为用记事本打开的解决方法: 打开注册表编辑器 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Fi ...
- C++ 自定义时间
今天精神状态不好,和公司的领导请了假.为了抵抗我的痛苦,我在床上打坐冥想,从早上九点到下午三点二十六.嗯,感觉好多了.这种温和的暴力果然有效. 之后吃了点东西,然后无聊的我就在想,明天的工作该 ...
- 《Attention Augmented Convolutional Networks》注意力的神经网络
paper: <Attention Augmented Convolutional Networks> https://arxiv.org/pdf/1904.09925.pdf 这篇文章是 ...