大家好,我今天的分享主题是“ 从 0 到 1:创新项目架构取舍之道 ”。大概一两年前,饿了么的 CTO 在会上问大家,你们觉得像饿了么这样级别的互联网公司,最重要的资产是什么?作为一个技术领导者,有没有考虑过这个问题?到底是数据、代码、客户、人才、系统?其实到最后会发现每一种资产都很重要,还有创新能力也非常重要。
我今天也会提到一些这方面的考虑,主要内容是以下四点:
一、案例引入
我们用一个案例来分析:去年饿了么做了无人货架这个业务,无人货架是 2017 年新零售行业的一个风口,很多公司的办公室里面都有。去年的 9 月份开始,到现在不足一年,所以还有很大的发展空间。它的作用是放在办公室里面,如果你饿了,想吃点什么喝点什么,走过去扫码就可以。
为什么它是新零售的风口?跟你在路边买水果直接扫码有什么区别?我们展开来讲:
二、创新项目从 0 到 1 架构演进策略
去年 8 月 6 日业务团队提出要试水项目的时候,我们知道一些创业公司做的风生水起,甚至一些大公司比如京东、顺丰、苏宁都已经开始进入这个领域,包括后来的猎豹。这个业务上我们是后来者,后发优势就是你知道别人是怎么做的,但面临的压力也很大。试水期间(8 月 6 日~23 日),我们做了商品调研、业务场景调研,也提了一些解决方案,跨部门协作开发,还做了 Demo 在公司里试用。
9 月 6 日无人货架项目立项;9 月 20 日 V1.0.0 产品正式上线。整个过程看起来还比较顺利,业务总体反馈也都比较好。但是当时这个项目没有任何后端体系,比如营销后台、运营后台、供应链等,就是业务团队去买一堆货,自己往上面放,这种模式完全不可控,不具备扩展性。
11 月 20 日,我们打通了饿了么当时原有的供应链系统。到今年 3 月 5 日,对接饿了么新零售地网供应链系统,采购仓储物流这些都打通了。CRM、预售、拼团、鲜食等都是今年上半年我们做的一些拓展尝试,下一步也会做智能货柜。
三、成熟技术体系中如何快速创新?
我们说一下成熟体系和创业公司的区别是什么。
饿了么拥有一个大型、成熟、弹性、多活的技术体系。日订单量千万级别,整个技术团队上千人,系统指标要求很高,所以基础设施必须完善,不可能靠人力天天操作;架构设计有严格的评审机制和一套规范的操作流程。2017 年饿了么做了一个行业比较牛的“异地多活”,在两个机房之间可以调度流量,并做日常演练。最后就是容器化、混合云、计算力外卖等,这些关键词大家可以网搜一些文章了解一下。面对这样的体系,我们刚才说的无人货架这种短平快小项目如何应对?
分析一下其中优劣:
我们要把这个事情做成的话应该怎么办?首先得有一支能打的团队:召之即来、来之能战、战之必胜。我们搞的是一个独立的项目,全新的系统,但是所有参与项目的人,都是从各个团队拉过来的。团队都坐在一起,在“小黑屋”里,环境相对来说封闭,能更专心,更高效,更团结一心。以创业的状态进行,把所有的任务都排好然后开始开发,最后所有的任务都是完成状态。
上帝用七天创造了世界,我们最终用六天把这个项目做好了。期间有什么事情?除了刚才讲的攒人,还有对架构的取舍。
四、敏捷迭代中的技术债如何偿还?
同样的我们欠了很多债,下面分析一下:
对于现在这个架构,我们做的取舍其实是一种选择,以最快满足业务上线,具备基本功能为目标,而不是一拍板就定了。
五、技术怎么与创新业务齐头并进?
再往下延伸,要考虑几个问题:
六、总结
所以总结一下:在风口创新里面,快一定是第一位,天下武功唯快不破。既然技术要去支持业务,那绝对不能拖后腿;但从 0 到 1 并不需要想那么多,以 MVP 为第一目标,不追求技术先进、架构完美。
还有,既然我们是一个比较成熟的体系,而且相对来说更有经验,那么我们要适度地前瞻一些。把产品、把架构设计得稍微好一点、灵活一点,将来拓展就不用改太多,不用推翻了就要重来,然后针对不同阶段、不同策略,适时做一些调整。
最后,技术上,先支持业务,深入理解业务,再驱动业务。一开始业务人员让你干什么你就干什么。接下来你还要深入理解,然后才能和业务的同学平等对话。如果业务是比较轻量级,2C 的,这种情况下大家要互相沟通。如果你已经做的量级非常大,可能从业务、从运营的角度来讲,难以了解全国情况,比如我们做的 O2O,基于地理位置不同,各地都不太一样。全国各地业务什么特点这都不好说,需要有一个强大的体系把数据收集起来,去做数据分析,去做策略指导业务,而不是靠一个人即兴的想法。所以我们要做到更好,就需要更多的数据,根据这些数据来分析用户,可以去看我们业务的趋势,能做一些更好的指导,接下来可能成为用技术驱动业务。不是说用人员驱动业务,而是一套比较大的系统,这个系统能够驱动业务,把公司业务能力固化在体系里。
最近一个在政府单位工作的同学和我聊起创新,创新很重要,但更重要的是有没有一个合理的体系,换句话说就是不能指望某个人力挽狂澜,不是一个有志之士想激发创新,就能创新。要靠一个公司或者一个组织,要有活力,要能保证多样性,要能够实时变化,这需要一套体系。所以在座的各位手里都有那么多数据,希望我们可以给后面的人留存更多的资产,能给我们后面的业务给予指导和帮助。
: 快速迭代的时候,你的时间有限,像这种时间控制里面有什么东西?
: 没有更多的选择,但是一旦你迭代的节奏调整过来,每个迭代多少大家都是有数的,而且一个比较好的团队有这个优势,开发一定要自测。
: 货架的数据是从哪些维度进行收集?
: 比如登录网站,或者打开一个 APP,你是在什么样的环境下(4G、3G、WiFi 还是其他的),还有比如你使用什么样的手机、登录进来之后你先点了什么,这些都是可以记录的。最常见的,如果你前面的页面做得不那么友好,可能用户找不到他想要的东西,因为手机屏幕很小,需要翻页,那么怎么翻是合理的?一定是按照货架上的顺序吗?不见得。一开始大家都在乎货架上的顺序,从上到下第一层、第二层、第三层、第四层,但是我可能上来就想拿最底层的。或者说如果有促销,那把促销的东西放在最上面,让人看到,给他引导。这些东西可以通过你的布局操作,但前提是有数据,你才能进行设计,不然你不知道他是不是按照你预想的来做。
作者介绍 :
史海峰贝壳金服 2B2C CTO。曾在神州数码、亚信联创长期从事电信行业业务支撑系统集成工作,参与中国移动、中国联通多个项目,具有丰富的大型业务系统研发实施经验。曾在当当负责总体架构规划、技术规范制定和技术预研推广,善于把握复杂业务需求,提出创新性解决方案,参与多个重点项目的方案设计,在项目中对系统架构进行持续改造优化。负责技术委员会组织管理工作,发掘最佳实践、推动技术革新,组织内外部技术交流。曾担任饿了么技术创新部高级总监。多次参加业界技术大会,任讲师及出品人,不定期更新微信公众号“IT 民工闲话”。