从产品的生命周期谈起
从我入职腾讯开始说起,经历了一批产品的开始、发展,到近期的关停,有感而发。
第一个阶段:一个产品从某个idea到具体的设计、实现,类似于人从婴儿开始。第一版总会是粗糙、简单直接的。可以看微信第一版跟现在比较,可以看各种产品的第一版跟现在比较。婴儿虽然小,但是五脏俱全,功能简单但是更加直接突出重点功能,这才可以在众多APP里面脱颖而出。
- to开发: 这里要求的是极速开发,在很短的时间内推出一个新的产品出来。没有前期的积累,在这里会非常难以应对,你不可能从头到尾自己搭建组件库,一定用的是现成的熟悉的东西。当然在这里你可以开始粗略的划定基本的代码架构,方便后面填充和重构部分模块。
- to产品: 这里要求的是剥离主路径、目标人群之外的其他功能的减法,比如微信就是一个聊天的程序,除了会对聊天主场景涉及的功能,其他一概去除。比如定位就是取代短信的作用,那么获取通讯录也是必要的不可去除的功能。集中全部经历完成这几个功能的开发。
第二个阶段:之后会经历从婴儿到成年的成长,用户量会扩展,功能会越来越多,用户体验要求会增强。视觉上会有大的变动和改版
- to开发: 这个阶段代码量会成倍增加,你会收到众多产品无理由的需求,毫无数据支撑的需求。与刚开始的阶段不一样,产品开发会开始撕逼,并且大家都会探讨哪种方式对产品发展有益。
- to产品: 这个阶段产品是焦虑的,因为他每天会看着数据在增加,用户的诉求会增多,有理无理的表扬批评也会增多。很多产品在这里不知道后面产品要如何发展了,看着数据增量很好,但是却无法继续保持原来的增长速度。很难,因为产品已经定性了,这个时候做大跨步的改动会受到多方挤压。别人会挑战你大的改动需求,所以很多产品迫于压力会有一些二级功能的迭代,小型需求的实验,却不能做大功能的改动,这个阶段大家都是焦虑不安的,生怕数据达不到增长预期、KPI完不成。
- to运营: 这个阶段数据KPI开始规划,你有很大的担子要去完成KPI需求,然后逐渐把数据做漂亮。
第三个阶段:成年到了,会到壮年。壮年的产品会有自己的生态圈,会有附属产品,会产品生态等等
壮年跟成年的区别是数据增长逐渐缓慢,用户群体逐渐固定,新用户增量放缓,但是大家还想玩出花来。难度可想而知。这个阶段会浪费大量人力物力去孵化新的东西,成了固然好,没成也有实验的底气。一句话,业务起来了,耗得起。- to开发:这个阶段,我理解为架构优化与重构,需要的开发同学会跟多,技术团队开始扩展。每个人都负责不同的产品,但是技术架构会逐渐稳定下来,大家会考虑重构,减少开发消耗。开始从原来的技术孵化新的产品,最终技术偏向运营,产品迭代转型。大家都在造轮子满足KPI,引入新的东西完成运维、监控、运营等等的需求。
- to产品:这个阶段,运营数据和产品迭代相比会更加重要,甚至需要大量数据处理的同学去提取数据帮助运营和产品来完成迭代和完成KPI指标。每天都有新的idea出现,作为二级功能或者独立产品去挂在原来的产品下面。
- to运营: 这个阶段数据KPI爆发式增长,你会纠结拿什么数据去跟老板谈KPI完成度。
第四个阶段: 崩塌或者是衰老
国内有一个东西叫大清,大清要你完你就必须完。看快播,看迅雷,看滴滴,一纸诉令,业务关停。产品下线,人员开始不稳定。技术、业务全部GameOver。就算不是业务也找不到新的突破点了,开始走向数据下降,用户黏性降低。数据下滑,最后没落。这里可以看QQ,可以看王者农药。- to开发:经过上面N步的积累,开发应该要知道一个产品其实是有自己的生命周期的,从开始到稳定甚至结束。有经验的开发应该从第一阶段进入,到第四阶段开始就应该走人。因为继续下去你会发现你会很无奈。每天做的东西都是重复的,你对业务的每一句代码都了如指掌,知道怎么在最短时间内完成需求。
- to产品:脑爆已经没啥用了,不是你没有好的点子,而是这个产品已经不需要大的雕琢,空有一身本领无用武之地。这个阶段,产品策划也该养老或者走人了。
- to运营: 还是上个月的方式,活动搞一搞,推广做一做,数据达标,下班咯。
从开发的发展谈起
理论上开发跟业务应该是解耦的,但是不可避免的,业务的开发会带着业务的观点去参与开发。而纯粹的写框架组件的开发,会缺失了一些站在业务角度看待问题的想法。所以底层框架组件开发,应该是业务开发中来,到业务开发中去的,毕竟没有公司愿意花钱养一堆只研究技术而没产生作用的人。
技术是否应该永远服从于业务,Google不是,国内是的。其实在国内做技术,你会发现你不是在做技术,而是别人眼里的开发资源,至少在很多国人看来,程序员就是高级工人。代码改变世界,很难。
所以你懂的……不要寄希望于公司牛逼了、别人带着你成为大神。从来只有别人膜拜大神,而不会要求你、培养你成为大神。
大家共勉!!程序员会改变这个世界!!