浅谈编程驱动

如果问我编程为了什么?我会回答为了钱和爱好;如果问我编程的目的是什么?我会回答为了让用户和公司都开心;如果问我编程的方法论是什么?我会回答是基于业务编程。这几个问题很浅与编程无关,但是和编程驱动有关。

编程驱动是指我们应该基于什么去写代码?可能是基于技术,可能基于用户,还有可能是基于老板,基于产品经理。当然,没有哪个团队会选择某一种死磕到底,大家都会综合所有趋势而为,这也很符合儒家的中庸思想『不偏之为中,不易之为庸』。下面简单谈谈这几种编程驱动:

一. 基于技术驱动

所谓技术驱动就是以技术为第一参考标准,无论是代码还是架构选型都以性能为先。典型的代表就是百度,百度的很多部门程序员话语权比产品经理高,这就是典型的技术驱动公司。因为资本雄厚,所以能养大量技术人才去尝试最顶尖的技术。百度的好多开源产品都非常优秀,像ECharts,Apollo……

但是近几年百度发展的并不好,因为现在的互联网行业,市场上需要的技术已经不是掌握在少数几个人手中了。一款产品能不能成功,技术占比越来越低。北京西二旗地铁上随便找个人都能搭建起支持百万级别用户的架构。现在百度投注Apollo是有道理的,自动驾驶领域的技术还是掌握在少数几个人手中,5年后就说不准了。

二. 基于用户驱动

所谓用户驱动就是以用户感受为第一参考标准,无论是代码还是架构选型都以友好为先。典型的代表就是微信团队,将用户体验做到了极致。当然,并不是说路边找个用户来就下定论了,背后需要大量的技术支撑。基于用户驱动是最耗费成本的方式,产品上需要做大量的数据分析,技术上要做妥协,技术架构可能经常重构,要面临很大的变现压力。如果不是腾讯土豪,很难有公司能扛得住微信这几年的消耗。

三. 基于老板或者产品经理驱动

看字面意思就很清楚,国内大部分互联网公司还是采用这种驱动方式。程序员不需要对用户负责,产品经理不需要对程序员负责,一款产品很容易诞生但是无法快速成长。最后会导致程序员技术无法提升,产品经理夹在用户和程序员之间无法抽身,最后项目变成焦油坑。

四. 总结

上面谈到了百度和腾讯,唯独没有谈到阿里。其实是为了引出很多大型互联网公司都面临的一个问题『人治还是法治?』。当公司发展到一定规模之后,人治会出现各种失误或者不公平的事情,所以会极力去避免产品经理说了算,程序员说了算的问题。王者荣耀开发之初腾讯成都天美工作室就有3款和王者荣耀一样的MOBA类游戏同步开发,其实已经很明显的看出一款产品的成功不能寄希望于某个人。

『淘宝技术这十年』里面有个故事,有一次淘宝要改版,改版之初马云看到了交互稿,就说这个版本可能用户不会喜欢。改版之后果然一大帮人说难用,两周后淘宝团队不得不回滚代码,回滚之后又有一大帮人说那么好用的功能为啥要换回去……这个故事其实能说明两个问题,一是基于老板编程不靠谱,二是基于用户编程成本太高,但是两者又都是衣食父母。

我们一直在问为什么消耗大量人力物力开发的产品用户不喜欢,维护成本还很高?因为程序员没有直接面对用户,产品经理并不是最懂用户的人。尝试让程序员直接面对用户吧,能让你的产品不只是能用。

技术发展停滞不前,每天增删改查,看着焦灼的代码力不从心?尝试基于技术驱动吧,能解决这类问题。BAT的二线产品都是一周一迭代,技术敢用最新的,值得观摩。推荐关注知乎,钉钉,Echarts……