近一年的工作感悟 | A review of past year in Alibaba


本文是今年晋升后应HR的要求写的一篇总结,转载至此,对部分内容进行了删减

感谢我的团队对我过去一年工作的支持,这一年大家真的很辛苦,新的架构得以落地功劳最大的应该是你们。HRG希望我能写一篇晋升总结,ATIT上每年关于晋升的文章有很多,一些心得大家也总结的差不多了,开始想从客户端技术的角度写写特殊性,但想想最后可能变成了一篇技术文章了,所以还是不能免俗,写写这几年自己的思考吧,争取写出点差异化

持续学习

虽然标题是客户端开发,但我心目中的工程师是不应该给自己设限的,持续学习的能力应该是每个技术人员必须要具备的能力,客户端技术这几年发展的太快,无论是开发模式还是编程语言,需要保持自身技术栈和业界同步更新。小到评估日常需求能否实现,大到做全年的技术规划,对技术的判断和感觉要保持与时俱进。

学习的对象和方式有很多种,不同时期的学习方式又是不同的。这几年越来越觉得基础很重要,扎实的技术底子是实现复杂系统的根本,这里说的基础包括对基本算法和数据结构的理解,对线程同步的理解,对编译原理的理解,细到对锁的理解等等,一些难解的crash最终抠下来都是这些问题

多刷Github,关注业界开源技术,以Facebook为例,它对移动端的开发生态贡献是巨大的,从早期的Three20到后面的AsyncDiskplayKit,Componentkit以及React Native等等,这些项目对开发者的影响是他们背后的设计思想,理解这些思想再看看眼前的技术架构一定会有不一样的火花冒出来

保持一颗持续学习的心态,ATA,ATIT上没天都有不错的文章出来,每天花点时间筛选一遍,看看有哪些是自己团队能用上的,哪些思路可以尝试,可以对着写写demo找找灵感

认知升级

认知升级是最近比较热门的一个词,这两年的感触最深。2015年我开始带团队,这是心力憔悴的一年,角色的转变是痛苦的,自己开始无法完全掌控所有代码的实现细节,心里很虚加上业务压力又大,总是担心出问题,因此如何让自己从这些细节中脱离出来当时对我来说是一个很大的挑战。相信这个问题是所有刚带团队的工程师都会遇到的问题,虽然公司有各种培训输入,网上也有各种鸡汤视频,看着过来人好像举重若轻,但真正消化掉还是要靠自己去摸索。就像这一节的标题,认知升级是这个阶段的核心问题,其实只要想明白一个问题就好了,Leader的职责是什么,每个人的精力有限,一定要想清楚这个阶段自己该做哪些事情,我总结了三点:

  • 拿结果
  • 带团队
  • 指方向

这三点对于一名原来一直写代码的程序员来说是巨大的认知转变,怎么消化掉,每个人因人而异。这个过程其实是很痛苦的,因为要放弃原来擅长的东西,跳出舒适区,当时自己也困惑过,反思自己是不是越来越远离技术了,而实际上是组织在不同阶段对你的要求是不一样的。总之这两年磕磕绊绊的是走过来了,学做人,学做事儿,感谢身边的朋友和同事帮着我一起成长

就像黄龙时代楼梯里写的“在你觉得痛苦的时候就是你成长的时候”,

再说说带团队,团队的味道往往是和Leader是一致的,你希望团队朝什么样的方向前进,你自己就该朝这个方向去引导。我相信真正推动世界变革的还是技术,然后才是商业,就像PC互联网早期的Facebook,Google等。工程师的能力才是团队最核心的价值,因此我个人是比较推崇工程师文化的,我鼓励我的团队不断学习和尝试新技术,不要把自己只局限在做一名客户端工程师上,真正的工程师是能不断解决各种各样问题的,需要能够驾驭各种语言和具有短时间快速学习的能力。为了让团队的成员可以有目标的学习,我会在每年的KPI中加一条,比如掌握一门新的语言并且用这门语言解决一个实际问题。

每个Leader带团队的方式和风格都不一样,没有对和错,只有适合或者不适合的业务发展,团队的战斗力如何你的主管或业务方看着最清楚。作为Leader一定要努力提升自己的格局和眼界,你能看到哪里,你的团队就能站到哪里,自己不要成为天花板。因此又回到了第一条,技能上要持续学习给团队指路,对业务的理解要更深入,能看的到大图,这一点我自己做的也不好,是要加强的地方

技术创新

虽然外人看来,口碑是一只业务团队,但是在技术上我们没有被动,我们做了很多工具来提升开发效率,也开源了一些项目中实践不错的项目来回馈社区。去年一年自研了MIST,投入到项目中使用,通过了日常千万UV的考验,通过效能提升改变了项目研发模式,提高了产品迭代速度。这个过程中大家看到了自己给业务带来的价值也看到了自己的成长,这就是良性的循环。

另一个感悟是不要给自己设限,技术不要迷信技术,RN,Weex他们不一定就是标准,达到相同的能力也不一定要采用和他们相同的架构和实现方式,每一种技术都有各自适用的场景,关键看能否真的帮助到业务以及它背后的技术是否禁得住考验和推敲,另外对于部门间合作边界的问题心态要开放,对方好的我们拿来用,不做低成本的重复建设,不够用的,我们自己造,但是要有差异化,并且能系统性的解决问题。

理解业务

这又是一场认知升级的过程,而且这个话题永无止境,最近后知后觉的发现理解业务要先理解商业,理解了商业逻辑才能更好的看待自己在做的事情,也会对未来要用到的技术带来一定的预判。而商业价值这个事情从表面看是很难看清楚的,我们看到的都是表象和结果,因此要多思考表面背后的东西,比如口碑的商业模式是怎样的,线上到线下引流怎么形成闭环?券核销是不是唯一的模式?码战略从线下给线上引流它的推演逻辑是什么?背后商业价值是什么?用户端主打的心智到底是什么?怎么能让用户一下子想到口碑?一段时间这些问题一直在脑海中回荡,不明白背后的逻辑是什么,也没机会明白,这时候需要找机会和老板们做定期的信息输入然后慢慢消化。

“产品最终还是要回归商业本质,而商业模式是否可持续决定了公司能走多远”

服务业务

牛逼的技术一定是诞生在快速发展的业务里,今年感受尤其深,口碑快速的产品节奏和大促活动迫使我们必须想办法在客户端上打破版本限制。MIST是诞生在这样的环境下,一路随着口碑的业务成长而成长,从第一次战战兢兢修复线上埋点到口碑各页面动态发布成为常态,从原始的DRM开关到现在功能完善的可视化配置后台,从最初寄居在鸟巢发布体系到现在借助智能发布平台实现资源的推拉结合,技术一步步前进的带来的好处是实现了业务灵活发布的诉求,在口碑业务前进的浪潮中,助力业务前行。

(全文完)