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 个类型的员工采取不同的培养方式, 下面我们分别说明:
小白
对于白纸一张的小白, 安排的任务要具体, 而且要每天检查, 帮助他们解决遇到的问题, 给予保姆式的关怀, 这个阶段需要领导者花费很大的精力.
新手
通常来说, 新手已经完成了从校园走向社会的转变, 知道职场的规矩, 也学会了适应和变通, 但他们还没有具备独挡一面的能力. 领导者可以适当安排些他们力所能及, 又有一定挑战的工作, 进一步鼓励他们不断挑战自我.
野狗
这类员工也是让领导者比较头疼的. 给他们划清楚红线, 给予一定的自由度, 帮助他们融入和接受企业文化, 建立良好的价值观.
如果野狗已经变成了白眼狼就要果断清除出队伍. 就如同, 当年联想的柳传志亲手把爱将孙宏斌送进监狱一样, 对个人对企业不见得是坏事.
兔子
领导者要在团队内建立论功行赏的激励机制, 拿结果说话, 使得兔子类型的员工失去活动空间, 即使跟领导和同事关系再好, 拿不出业绩, 就没有升职加薪的机会.
黄牛
对于黄牛员工, 要给他们足够的资源和授权, 为他们创造一个舒适的工作环境, 公平的竞争机制, 做到因人设岗, 充分发挥他们的个人特点, 形成具有战斗力的团队. 他们是企业的中流砥柱, 真正实现平凡人做不平凡的事.
明星
在充分授权和基础上, 给他们方向上的指导, 挑战行业一流的目标, 为企业建立强大的壁垒. 同时, 关注他们个人成长速度和企业成长速度之间的关系, 防止明星员工滋生骄傲自满的情绪. 领导者要善用萝卜和大棒.
掌握了员工画像的领导力法则, 你可以把团队成员进行归类, 对照以上法则检查日常领导工作中是否使用了对的方法.
虽然我们把管理高度概括成了项目, 流程和人, 但不要以为管理是很简单的事情, 管理学博大精深. 比如华为, 作为国内顶尖的技术公司, 除了重视在技术上的投资, 它在管理体系建设上也花费了巨大的人力物力. 任正非认为, 华为的核心竞争力就是管理, 上至企业变革, 下至流程制定, 都是管理的一部分.
最后, 我想给中高级的移动开发者一点建议. 可以通过阅读一些管理学的经典著作来培养自己的管理意识, 推荐当代管理学之父彼得 德鲁克的系列著作, 如卓有成效的管理者,管理的实践等等.
除了阅读, 还要从实践中总结和体会管理思想, 运用金字塔原理,系统性思维来分析和解决问题, 培养自己的产品意识, 用户思维, 提升对商业的敏感度, 帮助企业实现技术与商业的融合, 创造更大价值, 从而使自己的职业道路越走越宽.
结语
以上我们分析了中高级移动开发者面临的问题, 点出企业需要什么样的移动开发人才, 并且用较长篇幅, 向大家介绍了如何修炼成为技术 + 管理型的移动开发者. 希望本文对从事移动开发工作的朋友有所帮助. 也欢迎大家通过留言的方式跟我们互动, 共同成长, 每日精进!
来源: https://juejin.im/entry/5adf2f7151882567361491dc