业务线开发真的没有成长价值吗?
程序员鄙视链中,做基础平台的鄙视业务线开发,业务线开发的同学也常焦虑自己没有成长。那么,业务线开发对工程师的能力成长有什么价值呢?
在移动端业务线摸爬滚打七八年,不谦虚地自称“业务老油条”也不算傲娇,这篇文章谈谈自己的心得体会,笔者之前主要从事Andorid开发,下文主要以移动端技术栈为案例阐述。
首先,要承认业务开发涉及的技术普遍没有基础平台要求高,这是合理的,如果开发业务的门槛很高,那这个开发的工具和平台就很难推广,所以业务层面的开发都是比较容易上手的。但是,一个工程师的能力绝不仅是技术,甚至越到职业中后期,其他方面的能力短板越会明显的限制上升通道。
一个优秀工程师的能力链,至少包含:技术、产品sense、沟通协调能力、项目风险控制、团队管理能力等等,这几点中,除了技术成长不占优势,其他几条都是业务线开发者比较容易得到锻炼的点。
业务线开发有哪些附加值:
先说最后一条管理能力:把业务线比喻成战场的前线部队,基础技术就是后勤保障,后勤保障团队必然不会太大,一个产品线,基础技术一般也不会超过20%的兵力。所以在业务线,更有机会担任leader,更早接触管理工作,而且业务是灵活多变、不断创新的,很容易就裂变出新的子业务线,只要你靠谱,很容易两三年就能当一个topic的leader,管七八条枪,管理学上说,一个人one on one最多对接七八个人,所以不要嫌人少,这最初的七八条枪的小队伍就能很好的锻炼基本的管理能力。笔者当topic leader从带1个人开始,到去年最多带30 从事业务开发,鲜有差错,平时也不少琢磨。不要小看一个人的管理能力,技术你可以看书自学,管理一定得在实际团队中操练,有句话说:“管理学的金科玉律都是实践后的最佳总结”。你错过了管理能力的锻炼机会,就很难再有,很看运气。
判断一个管理者是否合格,看两点:
1)最基本的是风险控制。凡事做到有规划、有预期。老出事肯定不行,如果不是公司层面的问题,团队人员流失严重也肯定不行;
2)最有价值的是激发效率。一个团队各类文化建设的本质,比如团建、提倡合作、评优奖励等等, 都是围绕效率做文章。我军能扭转乾坤,打败国军,跟在一线建设党支部有莫大的关系,文化建设的够垂够深入啊。
三流的团队占着资源成不了事儿,二流的团队拿资源成事,一流的团队至诚至信、信仰至上,也能成事。一个manager和下属之间没有基本的信任,完全靠利益集结在一起不是一个优秀的团队,相互提防,利散人散。
如果你已经是一个小leader了,看看自己在风险控制、激发效率这两点上是否还有提升的余地。
再说第二点:产品sense,业务线是最接近用户的技术阵地,但是很多同学都没有意识到这里的宝藏。笔者之前做了一个小功能,“评论及回复”,评论几乎是所有产品中用户互动方向的标配能力,看起来很简单,TextView中写一行字,点击一个Button发送,剩下的就是围绕UI怎么好看不断升级评论框、评论列表、盖楼交互等,Done!提测!下班!
笔者从15年加入现在这家公司,一直负责社交化、用户互动方向的客户端业务,在这个方向最大的收获绝不是写个Button发送一行文本,也不是复杂的UI交互,UI再复杂,最多一个三年的工程师就能搞定。用户互动方向,最大的风险是政府政策,能直接导致产品被封禁下线。如何控制好线上的产品能力能灵活应对政策要求,在“反黄、反垃圾”和用户体验之间做权衡,是一项不小的挑战。最基本的有事前策略、事中策略、事后策略,还有各种排序策略。随着版本代持、AB实验观察数据,体会产品的思路和打法,感受如何提升用户粘性、降低用户愤怒,如何给用户提供更好的表达情绪的场景,用户互动方向的产品是很难做的,没有固定套路,要求有新意,还有围绕产品有一票运营的努力,创意无价。
有些工程师会说:“产品跟我有什么关系?我只负责写好代码”,你可以问问你的老板,问问部门总监,对他们而言产品sense对他们来说重不重要,总监级的岗位一定是要对产品负责的,技术就是要为产品服务。一个团队中,有良好产品sense的工程师绝对是个宝贝,能协助PM完善产品规划,做更好的产品迭代决策。对自己而言,如果有这方面的天赋,中后期的天花板会很开阔顺畅,你的人生就是一个产品,好的产品思维能帮你规划好“人生”这个最重要的产品。
笔者这几年在面试中,经常会问候选人同一个问题:“你觉得这几年你用过的最好的产品是什么?为什么?”,很少有能打动我的答案,偶尔有一两个候选人能说的很好,对产品体验有深度思考,真是令人心情愉悦,即使技术差一点,笔者也会网开一面,给机会过,相信他能这么细腻的感受产品的温度,持续深入的思考,给一点时间,一定能把技术上的短板补齐。
关于产品思维,有篇外文写的很好,有兴趣可以读读原文,笔者这里摘录其中“产品思维”的定义(英语水品有限,勿喷~):
原文:https://blog.pragmaticengineer.com/the-product-minded-engineer/
标题:The Product-Minded Software Engineer
有产品思维的工程师
1. Proactive with product ideas/opinions
积极的参与产品讨论
2. Interest in the business, user behavior and data on this
对商业、用户行为和数据感兴趣
3. Curiosity and a keen interest in "why?"
对结果和现象有着强烈的好奇心
4. Strong communicators and great relationships with non-engineers
有极强的沟通能力,能与非工程师角色建立良好的关系
5. Offering product/engineering tradeoffs upfront
能提前就产品方案和技术成本之间的平衡提出自己的建议
6. Pragmatic handling of edge cases
关于极端case,能采用更务实的方案(而不是寻求技术上的绝对好坏,有些bug fix的成本很高,收益很小)
7. Quick product validation cycles
有办法很快的进行议论产品周期验证(比如吐槽、灰度、小版本、AB实验、单端上线等)
8. End-to-end product feature ownership
端到端的产品功能ownership,主人翁心态(不是只有PM对产品负责,有多少RD会主动关心产品数据,你了解一个功能上线对dau和时长带来的影响吗?)
9. Strong product instincts through repeated cycles of learning
最终,通过反复长期的学习与思考,形成极强的产品能力(很多技术出身的人最后都成了产品大师,比如乔布斯、张小龙,他们在从事技术开发阶段就有极强的产品意识)
OK,剩下的有兴趣,朋友们可以去阅读原文。回到这篇文章的主题。
两条腿走路:
最后,补充一句,因为业务线的特点,会带来技术深入上的局限,比较好的模式是,能在业务线和基础技术线各熏陶几年,在职业初期补齐各方面的短板,综合发展。其实很多工程师在业务线干了几年跳槽出去就是瞄准某个团队的基础技术方向去的,如果公司层面能有更好的人才培养和转岗机制,应该能减少人才流失带来的损失。没有白走的路,那些在产品线开发的同学们,不要浪费了这段宝贵的时间,好好打磨自己的产品sense。