开发者如何在「技术+管理」的路上越走越宽?
2018-04-24阅读 3493

「100offer 大咖说」栏目,每期会邀请一位在技术圈有一定知名度的大咖,给大家分享自己的职场经验、成长故事,或对技术圈热议话题的观点和看法。

今天我们请到《技术管理之巅》的作者、资深技术管理者黄哲铿,从他自身带领移动开发团队的经验出发,为你提供「技术+管理」的实战建议。虽然本文的切入点是针对工作3-5年的移动端开发者,但进阶管理的方法论,对几乎所有的技术岗位都通用。来吧程序员们,是时候把挂在嘴边的职场进阶付诸实践了。

作者简介:黄哲铿,曾担任海尔集团 农业电商CTO、1号店 技术总监,有着丰富的理论和实战经验。
畅销书《技术管理之巅》作者、「技术领导力」公众号创办人,曾担任 QCon、CSDN 等各大技术论坛分享嘉宾。擅长大型电商系统、大数据应用、大型技术团队治理等领域,个人拥有多项技术发明和专利。


最近我在跟移动开发团队做 1 对 1 沟通,发现大家普遍关注一个问题:工作 3 到 5 年的中高级移动开发人员,接下来该如何发展?于是,既是作为年终工作总结,也是和各位追求职场进阶的移动端工程师们分享心得,我分析了他们遇到的问题,就有了这篇文章。


一、中高级移动开发者,职业发展面临哪些问题?


首先,移动开发人员的市场需求逐年下降,2016 年以来移动互联网创业浪潮已退去,泡沫破灭得差不多了。

其次,移动端技术架构趋向于更「轻」更「灵活」。较少使用纯原生来开发 App,对移动开发者技能要求转向 hybird 架构、react、H5、VUE.JS,甚至需要使用 JAVA、PHP 写服务端接口。当然也有一些「大厂」对移动开发者的技术要求更「纵深」,比如:App 端的性能调优、扫描组件、OCR 组件等等。

再次,中高级移动开发者,需具备 Tech Leader 的基本技能。如:敏捷开发方法、项目管理技能、code review、团队搭建、OKR 目标管理等。

基于以上原因,我给中高级移动开发者的职业发展建议是:向「技术+管理」型的移动开发者进行转变,使自己的职业道路越走越宽。


二、为什么企业更需要「技术+管理」型的移动开发者?


什么是「技术+管理」?「技术+管理」是指懂技术的管理者、懂管理的技术人才。「技术+管理」并不是技术转管理,而是兼具技术架构能力、项目管理能力、团队管理能力。能够根据企业的要求,带领一干人马,又快又好地把项目搞定。

谷歌董事长埃里克•施密特,不久前曾大胆预言:「我可以非常直接地说,互联网将消失。」这意味着各行各业将进入万物互联的时代。科技的发展日新月异,企业想要生存就必须快速响应市场的变化,甚至提前预判行业趋势,超前布局。

传统的管理人才、技术人才技能太专一,很难做到迅速响应。有一种说法叫「大公司往小里做」,指的就是互联时代下的组织架构的特点,按业务线垂直拆分,每个小组里由复合型人才组成。

因此,我所接触的企业当中,无论电商、传统制造、还是物流行业,其实都需要「技术+管理」型人才。「百夫长」是古代蒙古军队里最基层的将领,兼具战术能力和临场战略能力;蒙古帝国的铁蹄遍及整个欧亚,「百夫长」功不可没。商场如战场,在移动互联网时代,企业也迫切需要「百夫长」式的「技术+管理」型移动开发人才。


三、如何修炼成为「技术+管理」型的移动开发者?


首先,我们讨论「技术+管理」中的「技术」,需要精前端、善优化、懂后端,还要掌握移动应用全生命周期管理。 下面我们分别展开。


1、精前端

作为移动开发人员的立足之本,编码的基本功要扎实,代码规范、健壮性、可读性、可维护性都要兼顾。多参与 code review,向身边的程序员学习,多在 github 上交流学习也是好办法。这方面没什么捷径可走,多下笨功夫,1 万行代码的感悟,和 10 万行代码的感悟,是有本质区别的。这里推荐两本书:《重构》、《代码简洁之道》。


2、善优化

下面介绍一些 APP 端常用的优化方法:

1)利用 APM 工具对 APP 性能做监测,有能力的可以自主研发,或直接选用第三方 APM 产品,对一些卡顿、出错、崩溃信息进行收集,以此作为优化的依据;

2)如果是 hybird 架构,可采用 H5/css/js/icon 图片本地缓存代理的方式提高加载速度,以优化体验;

3)全站 HTTPS+CDN,动态内容也可以走 CDN,至少能优化网络;

4)使用 7z/Gzip 压缩 request、response 请求,适当采用 webP 格式图片,减少网络传输量,提升传输速度;

5)使用 HTTP/2 协议,IDC 接入 BGP 线路来优化网络链路,等等。

以上每一项单独展开都可以另写一篇长文,这里点到即止,不清楚的话,百度上 google 一下,你就知道。


3、懂后端

1)大多数的移动互联网应用都采用了微服务架构,因此对移动网关、微服务框架也不能陌生,包括 Spring cloud、dubbo、zookeeper 等等;

2)对于服务的熔断、限流、隔离、快速失败等机制也需要掌握;

3)服务化架构还涉及到多级、分布式缓存的设计和使用,如 redis、memcached、ehcache 等等;

4)如何使用 MQ 进行解耦,合理使用 ES 替代数据库检索等等。


4、掌握移动应用全生命周期管理

一个优秀的 APP 涵盖了原生、H5、JS 等前端技术,以及网络传输,还有提供数据读写的服务接口,这是一个完整的移动应用生命周期,一些有技术实力的公司都会通过全链路监控框架,对整个调用链从前到后的监控,快速发现问题、定位问题、解决问题。

其次,我们讨论「技术+管理」中的「管理」,可简要概括为:管理项目、管理流程、管理人。


1、管理项目

管理项目包含两部分,项目微管理,以及敏捷开发。


1) 微管理

指的是在互联网下的项目管理方法,将经典的 PMP(Project Management Professional,项目管理专业资格认证)项目管理体系进行裁剪,以适应互联网项目周期短、需求变化快、跨团队协作多等特点。

微管理的本质是将管理变成服务,调动项目成员的主观意识,为共同目标的达成而努力。

如何具体实施微管理?你需要把项目过程分成 4 个阶段,项目登记、项目申请立项、项目执行、项目结项,如下图所示。

我们来分别讲解,实际操作中这 4 大环节是如何运转的。

  • 项目登记

指的是项目需求提出人员向 PMO (Project Management Office,项目管理办公室)提出项目申报的过程。PMO 会安排 PM(Project Manager,项目经理)进行项目的管理工作。一般而言,规模大于 500 个人日以上、需要 10 个以上开发团队进行协作的项目,才需要专职的 PM,否则由开发团队比较资深的人员担任即可。

  • 项目立项申请

一旦 PMO 给项目分配了 PM,就由 PM 发起立项流程。立项需要提供的信息有:项目背景和简介、项目价值、期望上线时间、项目预算等级(人力资源)、建议的项目管理模式等等。一般由 PMO 负责人、技术部负责人、产品设计负责人进行项目审批,审批通过后项目就被正确确认了,项目的优先级、项目的管理模式也在这个时候确定了。

  • 项目执行

项目经理负责项目团队组建、项目计划制定、项目整合管理、项目沟通协调、项目进度控制、项目总体风险管理等工作,由于项目由数十个开发小组共同参与。为了让团队协作更有效率,每个角色都必须指定一名主负责人,比如产品设计主负责人、开发主负责人、测试主负责人,他们的职责是进行横向管理,共同辅助项目经理的工作。

  • 项目结项

当项目达成计划中指定的结项标准,项目经理即可发起结项流程。项目经理的结项请求,需要事先征得需求方的同意。同意后,由项目经理发起结项申请,功能指标、性能指标、监控指标等等,在项目上线以后一个月提交,运营指标在项目上线以后一个月至三个月内提供。


2)敏捷开发

包括:Scrum、Kanban、极限编程等等,这里仅介绍被各大互联网公司广泛使用的 Scrum。

Scrum 有固定的迭代周期,如:两周一个 sprint。在一个迭代中 story 按优先级排序,产品、开发、测试构成 Scrum Team,由 Scrum Master 来领导,通常有每日站会、计划会、评审会、验收会、回顾会组成基础的敏捷工作模式。

敏捷强调的是快速交付成品、团队在开发过程中自我完善、拥抱变化,因此备受互联网公司的欢迎,因为互联网行业是一个快速变化的商业环境,需要技术团队以价值驱动、快速反应。



2、管理流程

主要包括:OKR 目标管理、绩效管理。


1) OKR(Objectives and Key Results)

即目标(Objectives,简称 O)与关键成果(Key Results,简称 KRs)的考量方法,或者说:OKR 是一套定义和跟踪目标及其完成情况的管理工具和方法。

需要注意,OKR 不是一个绩效考核工具,它是衡量员工是否称职的管理方法,它重在提醒员工:当前最重要的任务是什么?OKR 更强调做的事情要有成果,而不是考核结果是否达标。

下图是 OKR 和 KPI 的对比:


2) 绩效管理

绩效管理制度应该考察哪些方面呢?分析阿里、腾讯、华为等公司,他们的绩效考核体系,都是从「价值观」和「KPI」(Key Performance Indicator,关键绩效指标)两个维度进行考核。

「价值观」关注的是过程,员工在工作中体现出来的精神层面的状态,如:合作精神、自我驱动力、主人翁精神、追求卓越等等;「KPI」体现是执行的结果,团队必须无条件的对结果负责,从过程和结果两方面结合起来进行考察,更接近员工对企业的真实贡献。这里只介绍绩效考核的基本概念,不展开论述。


3、管理人

这部分我们探讨三个方面:组织架构、团队激励、下属培养。


1)组织架构

互联网公司以扁平式架构为主,按产品线垂直划分,形成若干个「小组制」,每个小组是最小独立作战单元,有产品方向的决定权,以更快速的试错和迭代改进。如下图所示,团队以结果为导向,共同分享和承担项目的成与败。


2)团队激励

在绩效激励的制度下,多劳多得,少劳少得不劳不得,如《华为基本法》提到的「以奋斗者为本」,技术团队中崇尚长期艰苦奋斗,劳动本身就是最好的激励。常用的激励的方法有多种:目标激励,奖励激励,培训激励,绩效激励,竞争激励,授权激励,赞美激励,危机激励,负激励等等。

这些方法可以组合起来运用。比如当一个员工表现不尽如人意的时候,我会采用负激励的方式,直接指出他的不足;再用目标激励来激发他的斗志,让他挑战更高目标;与此同时,会给他相应的培训激励,帮助他提升自己的工作技能,达成目标后给他奖励激励。这就形成了一个简单有效的激励闭环。


3)下属培养

这里介绍「基于员工画像的领导力法则」,根据统计学原理,将职场中的员工分成 6 种画像,分析每种画像模型中的特质,采用不同侧重点的领导方式,对员工进行有效管理。

基于员工画像的领导力法则,使你的领导方法更精细、更具科学性,使用得当还能快速提升你的领导力,打造出高效团队。如下图所示:


针对这 6 个类型的员工采取不同的培养方式,下面我们分别说明:


  • 小白

对于白纸一张的小白,安排的任务要具体,而且要每天检查,帮助他们解决遇到的问题,给予「保姆式」的关怀,这个阶段需要领导者花费很大的精力。

  • 新手

通常来说,新手已经完成了从校园走向社会的转变,知道职场的规矩,也学会了适应和变通,但他们还没有具备独挡一面的能力。领导者可以适当安排些他们力所能及,又有一定挑战的工作,进一步鼓励他们不断挑战自我。

  • 野狗

这类员工也是让领导者比较头疼的。给他们划清楚红线,给予一定的「自由度」,帮助他们融入和接受企业文化,建立良好的价值观。

如果野狗已经变成了「白眼狼」就要果断清除出队伍。就如同,当年联想的柳传志亲手把爱将孙宏斌送进监狱一样,对个人对企业不见得是坏事。

  • 兔子

领导者要在团队内建立论功行赏的激励机制,拿结果说话,使得兔子类型的员工失去「活动」空间,即使跟领导和同事关系再好,拿不出业绩,就没有升职加薪的机会。

  • 黄牛

对于黄牛员工,要给他们足够的资源和授权,为他们创造一个舒适的工作环境、公平的竞争机制,做到因人设岗,充分发挥他们的个人特点,形成具有战斗力的团队。他们是企业的中流砥柱,真正实现平凡人做不平凡的事。

  • 明星

在充分授权和基础上,给他们方向上的指导,挑战行业一流的目标,为企业建立强大的壁垒。同时,关注他们个人成长速度和企业成长速度之间的关系,防止明星员工滋生骄傲自满的情绪。领导者要善用萝卜和大棒。

掌握了员工画像的领导力法则,你可以把团队成员进行归类,对照以上法则检查日常领导工作中是否使用了对的方法。

虽然我们把管理高度概括成了「项目、流程和人」,但不要以为管理是很简单的事情,管理学博大精深。比如华为,作为国内顶尖的技术公司,除了重视在技术上的投资,它在管理体系建设上也花费了巨大的人力物力。任正非认为,华为的核心竞争力就是管理,上至企业变革,下至流程制定,都是管理的一部分。

最后,我想给中高级的移动开发者一点建议。可以通过阅读一些管理学的经典著作来培养自己的管理意识,推荐当代管理学之父彼得•德鲁克的系列著作,如《卓有成效的管理者》、《管理的实践》等等。

除了阅读,还要从实践中总结和体会管理思想,运用「金字塔原理」、「系统性思维」来分析和解决问题,培养自己的产品意识、用户思维,提升对商业的敏感度,帮助企业实现技术与商业的融合,创造更大价值,从而使自己的职业道路越走越宽。


结语


以上我们分析了中高级移动开发者面临的问题,点出企业需要什么样的移动开发人才,并且用较长篇幅,向大家介绍了如何修炼成为「技术+管理」型的移动开发者。希望本文对从事移动开发工作的朋友有所帮助。也欢迎大家通过留言的方式跟我互动,共同成长,每日精进!

评论
1条评论
2018.10.28 15:26
谢谢:pray:。。