晋升准备过程中,一些学习记录,包括极客时间《大厂晋升指南》学习、PPT 的构思
1. COMD(Complex-Oriented & MultiDimension)
面向复杂度的多维度能力模型
1.1. 复杂度来源
1.1.1. 规模复杂度
账号系统涉及规模复杂度很高,包含 xx UID_TYPE 服务要做兼容,项目涉及 xx 人员,涉及全站 xx 服务,历时 7 个月完成
- 技术:代码量、服务数、系统数量、数据量、请求量、多终端、多 CGI 服务、历史代码、测试环境转发环境
- 业务:接入时间、0 研发投入、多资产账号绑定免登切换(账号绑定、换绑、切换、资产检测、灰度控制)
- 管理:项目进度管控、人员沟通协调、问题跟进
系统思考:
- 账号系统的架构设计、架构优化、技术选型
- 领域发展趋势、架构演进、团队组织结构
1.1.2. 时间复杂度
- 技术:预见 2 年后需求变化,与预见 2 个月后的需求变化差异
- 管理:项目持续 8 个月,如何最终完成完整上线;指定项目计划,负责项目推进,沟通,协调,总结项目经验,提出对应改进措施
- 业务:预见 2 年后业务发展
1.1.3. 环境复杂度
- 环境的稳定性,环境变化速度
- 环境的透明性,是否能够明确地获取环境相关的信息
- 环境的可预见性,是否会发生黑天鹅事件
1.1.4. 创新复杂度
- 理论创新:FLP、CAP 理论,奠定了分布式高可用设计的基础和边界,缓存系统、存储系统、批处理系统、微服务架构业务系统,都不能跳出理论约束和限制
- 思想创新:批处理、流处理
- 技巧创新:Flink 使用 Chandy-Lamport 算法,实现 Exactly Once 特性,实现消息的精准投递
创新 EG: 开发一个公用组件、引入设计模式优化代码、使用微服务拆分系统、优化项目流程、提出新的业务模式
- 通过账号绑定,实现多账号间数据互通
- 从 0 到 1 打造 XX 登录能力
- 外部系统 1 天接入 XX 开课、上课能力
前瞻性:各职业担当的面不一样,越高职级,担当的面就越多
- P6: 单需求场景,前瞻 1-3 个月
- P7: 单系统 6-12 个月:账号系统后续进一步扩展?千帆、开放平台 SaaS 化(XX 能力开放)
- P8: 多子系统组成的业务域:1-2 年
- P9: 多业务域组成的业务线:2-3 年前瞻,行业发展趋势
1.2. 当前职级具备的核心能力
核心能力是职级的 DNA,晋升的本质就是向评委证明你有这个能力
1.2.1. 各职级要求
- P5/P6: 专业工匠,需求评审、方案设计、
- P7/P8: 乐团指挥,总谱(制定计划)、排练准备、正式排练,抓好每一个环节,做好预防措施,最终落地达成(P7 单个,P8 多个团队)
- 分析阶段(总谱):对目标进行研究,标注重点、难点、风险点
- 计划阶段(准备):明确投入资源,根据团队情况制定计划
- 落地阶段(实施):拆解具体步骤,抓好关键环节的落实,做好风险预防措施,推动整个团队的目标达成
- P9/P10: 导演,有规模、做决策(制定目标、整合团队、关键决策哪些做或不做,先做什么再做什么)、总负责(眼界、水平、价值观、做事风格决定了业务线质量)、擅长领域、精通程度(成熟->成名)
1.3. 能力的提升
1.3.1. 基础是和工作任务相关的基础
我目前相关基础围绕云原生、微服务分布式架构、精通 go、软件架构设计、代码质量、计算机科学(网络、OS、算法、数据库),避免只通过搜索来进行碎片化学习
1.3.2. 碎片化时间系统化学习
取一本经典书籍,循序渐进每天学习,考虑碎片化时间系统的学习一门课程、听完一个专栏、做完一门笔记(我目前就在整理《大厂晋升指南》小结)
1.3.3. 熟悉业务的处理逻辑
你负责的系统或产品为目标对象提供的功能和服务,业务理解
- ToB/ToC: 通常理解的业务
- ToC: ToC 自己通过深度体验产品熟悉业务,有些技术人员连自己负责的产品都不用,只机械的按项目的要求完成任务,上线后也不关心用户反馈,这样基本的业务现状都很难清除了解,更别谈业务提升
- ToB: 多和客户交谈,听听客户真实的需求、痛点、想法
- IT 内部: 公司内部规整和流程
- 中间件:中间件平台
- DBA: 运维体系功能和服务
1.3.4. 团队规章制度的学习,避免踩坑
1.4. P6: 独立负责端到端的任务
- 开发: 负责项目中某功能的全流程相关事项,包含需求评审、方案设计、编码、修改 Bug、上线;
- 测试: 需求评审、测试放哪设计、执行测试和上线
- 产品: 用户分析、需求写作、数据分析、竞品分析
P6: 项目能手 P7: 项目专家
1.4.1. 技术的深度
P5: 知道 WHAT,P6:知道 WHY(避免贪大求全): 抓住和当前工作相关的,深入学习和研究,重点提升技术深度。精通后再拓宽学习暂时用不到,但以后可能会用到的能力
所以现阶段:Go 编程基础 > 分布式架构设计 > 计算机科学 > 云原生
1.4.2. 掌握业务所有功能并深度了解处理逻辑
P6 对某类业务的功能掌握更全,对处理逻辑的理解更深刻,比如需求的上下文信息,解决了什么问题,为什么要这样设计,为什么和竞品设计不一样
5W1H8C1D: 提升业务能力方法,做好竞品分析,了解功能差异、优劣
- 5W1H: Where、What、When、Who + How
- 8C: 质量
- 1D: 效果
1.4.3. P6 管理提升
P6 完成子项目任务计划制定、子项目任务推进、上下游团队成员对接、项目级别的优化(总结沉淀项目中的经验教训,提出改进措施沉淀到项目流程或在规范中)
工作量评估:WBS 分解法:评估不准确对后续任务进度赶工,导致加班加点
- 拍脑袋:有经验的人排脑袋评估
- 扑克牌法:3~5 人评估后取平均值
- 对比法:参考之前类似的项目工作量,预估一个数字
- WBS 分解法:(Work Breakdown Structure)工作分解结构,按阶段可交付成果。简言之分而治之,然后拍脑袋定制,最后汇总。
- 注意预留 Buffer,避免过于乐观:总工作量量的 1.2~1.6 之间浮动,根据项目的复杂度决定
1.5. P7: 指挥单个团队达成目标
P7 两种角色,TeamLeader(3~7 人)综合能力强,团队骨干(虚拟团队),专业领域能力强
- 团队:实体组织 Or 虚拟组织,实际都是承担团队的管理职责,关注小组目标实现
- 目标:TeamLeader 专注业务目标,团队骨干 P7 实现小组的专项目标
1.5.1. 精通团队相关的技术
- 已有技术,指导团队内的 P5 和 P6
- 技术前瞻性,熟悉团队未来可能用到的技术(团队专家)
- 避免踩坑:当了 TeamLeader 后,把全部重心都放在管理上,很容易被发现专业技能不足(核心的分析、设计和实现工作)
1.5.2. 技术的宽度
- P6:技术深度,P7:技术深度+宽度:知道 WHY(深入技术原理和技术细节),还知道 Which(对比选择何种技术)
- 技术深度提升:链式学习法,纵向贯穿,自顶向下,挖深挖透
- 技术宽度提升:比较学习法,横向拉通,比较差异,分析优劣(多考虑引入新技术,一般新技术会给业务带来更好的结果,另一方面早入坑就有先发优势,很容易被当成专家;但也要拒绝生搬硬套,盲目追求新技术和杀鸡用牛刀)
1.5.3. 关注业务整体
- P6:关注业务细节,P7:关注业务整体
- 比如针对电商平台,下单 P6 做,订单子系统 P7 负责,订单域 P8,交易线 P9,B2C 电商平台 P10/P11
- 信息管理 P6,用户子系统 P7,会员域 P8,运营线 P9
- 从 4 个方面提升业务理解能力
- 用户特征:我们的用户是谁(比如按属性:我们的用户属于哪类人群,学历、收入、年龄、地域,按场景,我们的用户属于网购、旅游、外卖、游戏)
- 用户价值:用户为什么会用我们的产品(我们产品的好处和竞争优势在哪)
- 获客方式:怎么让用户用我们的产品(品牌广告、社交推荐、事件营销、SEO、线下地推、红包反例)
- 获利方式:怎么让用户付费(广告费、服务费、会员费用、增值服务费、销售产品)
- P7 达到对业务了解的程度:
- 行业总的用户规模,自己业务总的用户量,用户的特征分布
- 行业竞品情况,行业排名、竞品的数据、与自身产品的优劣长短
- 获客手段和效果指标(ROI、转换率、留存率),知道对自己业务来说效果最好的 3~5 个获客手段以及原因
- 获利手段和效果指标(数值、比例),知道对自己的业务来说最和谐的 3~5 个获利来源,如果非直接产生收入的业务,了解自己对业务对收入手什么影响
- 衡量方式
- ToC: AARRR 漏斗模型
- ToB: AARRR 模型,和行业强相关,多和售前和技术支持沟通
1.5.3.1. 管理上,指挥 10 人以内的小团体
不懂带人,你就自己干到老
- 负责单个团队管理:P7 管理团队或项目整体,带领 3~5 人的项目团队或者虚拟小组,包括技术规划、团队规划
- 指定项目计划或团队规划:
- 熟悉上下游团队
- 团队级别的优化
误区:
- 避免事必躬亲: 各种会议、讨论、日常事务让你疲于奔命,同时也会让团队成员感受不到你信,觉得自己没有发展空间(长期以往,人心浮动,团队非常不稳定)
- 避免甩手掌柜: 会让自己技能退化,对业务和技术不能深度管理
改善:
- 系统化的掌握管理基本技能
- 找好管理和技术的平衡点,通常 37 比例,管理占 3 层,技术占 7 层(适当灵活调配,项目紧张时候,可以 28 开,年终时候总结时候 46 开)
- 做一个靠谱的项目负责人,学习 PDCA 执行法(Plan-Do-Check-Act)
1.6. P8 阶段管理的三大重点
- 团队管理: 搭建梯队,核心人员的晋升规划,每个核心业务都至少有 1~2 个 backup
- 目标管理: 参与制定,保证理解。不能只听,需要真正的参与进去,必须是充分理解和赞同(后续需要向团队解读业务目标),千万不要在条理业务目标时候不认同或不理解但又不说出来(伤害团队的积极性)
- 技术管理:
- 关注演进,相比 P7 的优势:技术视野更宽、团队资源更多、业务理解更透彻
- 时间分配方面,横向带队,技术、管理、业务比例大约是 5:3:2,纵向带队,比例 4:3:3,原则是不丢技术(不低于 30),也重视业务(不低于 20%)
2. 学习方法
2.1. 三段分解法
- 制定目的:大目标拆解成小目标
- 三段: 划分等级 -> 确认等级技能 -> 单项技能的确切行动
- 落地:为行动制定计划,落实到周