P5核心能力要求:在他人指导下完成任务。若能从P5晋升P6,说明你已完成从学生到打工人,成长为一名合格员工。P6对应工作2~5年
独立负责端到端任务。
P6做的事和P5差不多,但无需人带。P5、P6都参加需求评审:
负责项目中的某部分功能的全流程相关事项:
P6、P7是大头兵,占团队60%~80%。P6主要提升目标是成为独立自主项目能手。
掌握团队用到的技术“套路”。P6技术核心要求:熟练掌握端到端的工作流技术,因P6是项目主力,需参与项目流程中的某些阶段,完成任务。
复杂度 | 核心要求 | 详解 |
---|---|---|
规模复杂度 | 熟练掌握项目端到端工作流需要的技术 |
|
时间复杂度 | 不要求 | 不需要自己进行技术规划。 |
环境复杂度 | 熟练掌握团队已用技术 | 公司的基础技术平台,团队常用的框架、中间件、工具、第三方库等。 |
创新复杂度 | 局部优化 | 能够优化端到端工作流中的各个步骤的一些做法,比如代码重构、自动化脚本等。 |
P6提升技术能力的关键:掌握团队用到的各种技术的“套路”。
如Android开发,套路包括设计模式、SOLID设计原则、MVP架构和各类工具(比如Fiddler,Wireshark,tcpdump)等。不同岗位的“套路”不同,也可求助有经验同事。
P5只要了解一些单个技术点;但P6须知怎么整合这些技术套路,完成端到端的项目开发任务。P6要知道如何将数据库、缓存、面向对象、设计模式、HTTP等技术点整合起来完成某功能开发。
除了熟练使用套路,P6还要深入理解套路背后的技术原理和细节,提升自己的技术深度。
设计模式为例,P5只知道每个设计模式啥意思,但P6要知道何时用设计模式,何时不用,具体用哪个。
这也是P6能指导P5的原因:P5只知what,P6还知why。
P6阶段提升技术时,易掉到陷阱:
你可能看了很多技术,其他人说起某个技术点的时候,你都有印象。但只是蜻蜓点水,无深入学习。
重点抓住跟当前工作内容强相关的技术点和技术套路,深入学习和研究,重点提升技术深度。有精力再拓展学习一些暂时用不到、但以后可能用到的技术。
千万不要因为短时间内什么流行就去学什么,一会儿学这一会学那,结果啥就懂一点,啥都不精。
掌握所有功能,并深度理解处理逻辑。
P6比P5提升主要体现在:
复杂度 | 核心要求 | 详解 |
---|---|---|
规模复杂度 | 掌握某类业务相关功能及实现 |
|
时间复杂度 | 预测业务功能 1~3 个月可能的变化 |
|
环境复杂度 | 熟悉竞品类似功能的处理逻辑 | 若竞品比自己产品提前发布某功能,竞品已有实现可提供很多参考信息,助我们更快、更全面理解需求; 若竞品和自己产品都做了某功能,可对比相似点、差异点更深一步理解需求,重点关注为啥会有差异 |
创新复杂度 | 优化需求逻辑 | 能针对产品设计的需求逻辑提出一些优化建议,如增加/删除/合并某些步骤,给某些步骤换种方式 |
P6提升业务能力的核心方法:“5W1H8C1D”分析法。
传统“5W1H”分析法,只关注需求的功能属性,所以我在“5W1H”基础上,增加对需求的质量属性(8C)和上线后效果(1D)的考虑。
做好竞品分析也很重要。通过对比竞品和自己的产品类似功能的差异、优劣,你能够更好理解业务。
负责项目中的子任务推进。
复杂度 | 核心要求 | 详解 |
---|---|---|
规模复杂度 | 负责子任务推进 |
|
时间复杂度 | 制定子任务的计划 | 能较准确评估子任务时间和资源投入,并制定对应项目计划 |
环境复杂度 | 熟悉上下游接口人 | 独立完成子任务推进,推进过程涉及与其它团队成员沟通协作,熟悉上下游团队接口人更有利任务推进,即“熟人好办事”。 |
创新复杂度 | 项目级别的优化 | 总结项目经验教训,提出对应改进措施沉淀到项目流程或规范 |
P6管理职责包括任务的工作量评估、计划制定及分配和跟踪等。
工作量评估是P6核心职责,计划制定以及分配和跟踪,主要是配合项目经理来完成。
工作量评估的准确性是第一步,直接影响后续工作合理性。掌握工作量评估的有效方法,也是P6管理方面核心力。
很多人在评估工作量的时候无依据,心虚,若项目经理或产品经理稍微挑战,易退让,导致工作量压缩。到实际项目执行时,发现工作量评估偏少,为赶项目进度,就996。
工作量评估方面,有的团队做法和WBS相似,列了一个子任务技术难点清单,然后分级,每个级别按照斐波那契数赋予难度系数。分析任务和方案时,开发人员也按照这个清单,评估工作量,避免主观评估了。
让团队有经验的人直接拍脑袋想一个工作量数字。
找3~5个人员,每人给一张小纸条,每个人把工作量评估写在纸条上,最后取平均值。
参考曾经做过的类似的项目,看看之前的项目工作量是多少,然后以此为基础想一个数字。
把需求拆解为多项小任务,单独评估每个小任务的工作量,然后汇总;评估小任务的工作量的时候可能采取上面这3种方法。
WBS分解法效果最好,评估误差基本不超20%。Work Breakdown Structure,工作分解结构,通过把项目工作按阶段可交付成果分解成更小的、更易管理的组成部分,提升项目管理效率。
朋友圈点赞为例,开发人员采用WBS得到如下任务分解表格:
团队 | 任务项 | 工作量 | 备注 |
---|---|---|---|
App | 增加 1 个按钮 | 2 人天 | 包括 iOS 和 Android |
App | 动态显示点赞列表 | 4 人天 | 包括 iOS 和 Android |
App | 数据库增加“赞”的表格 | 2 人天 | 采用 MySQL 存储即可, 不需要缓存 |
服务端 | 添加赞接口 | 2 人天 | NA |
服务端 | 取消赞接口 | 2 人天 | NA |
服务端 | 查询赞列表接口 | 2 人天 | NA |
汇总 | 评估工作量: 14 人天 最终工作量: 17 人天 | Buffer 系数: 1.2 |
对分解出的子任务项,就能用“拍脑袋法”评估。兼顾效率和效果,因子任务项已较小,凭经验就能得到较合理结果。就算单任务项有偏差,也是有偏多有偏少,最终偏差反而抵消。
大部分人评估较乐观,且项目过程中可能各种意外(如某开发或测试生病)。在实践中,为避免过于乐观评估给后面项目进度带来风险,往往采取加Buffer(缓冲),即将评估初步结果乘以一个大于1的系数作为项目工作量。
若初评工作量14人天,Buffer系数1.2,最终项目计划时,参考工作量17人天:
14*1.2 = 16.8 ≈ 17
Buffer系数可在1.2~1.6之间浮动,一般根据项目的复杂度决定。全新的业务功能Buffer会高一些,在已有业务功能上修改时,Buffer较低。
P6核心能力要求:独立负责端到端项目任务,成为独立自主“项目能手”。
Q:晋升评委咋分配三维在职级能力占比
A:如下:
P6主要实现及性能质量保证,而业务和管理需要有这个意识。≥P7业务管理的占比就要提高。
2B系统底层通用能力或内部使用系统,如审核系统,数据报表系统等,咋竞品分析?看不到竞对类似功能!
2B系统很多竞品资料可从客户获取,竞品资料和标书在市场部能搞到很多。内部系统确实难,一般只有技术大会能看到分享,但现在好很多,很多垂直领域技术大会,如GOPS(运维)、大数据峰会(审核、报表、风控等领域)、人工智能峰会等,多关注和参与。
如销售岗位员工有销售额业绩,运营岗位有用户活跃度等,这些都可作为工作业绩或成果,他们有明确目标,可以针对目标情况复盘总结哪里可以做的更好。
而开发岗位似乎主要编码完成一个个需求,对应工作业绩或成果是啥?导致回顾自己的工作时,难以像业务岗人员那样有明确的目标可以得知自己哪里做的好,哪里不好。
技术岗位无法量化,不可能100%公平公正,但整体上来说,如果按照上面的方式来评,八九不离十。
熟悉的工作内容和工作方法,原来这就是P6主要工作,我也曾做这些工作好长时间。回想做这些工作的时期,也存在一些问题,如领导挑战我的排期,我都退步,最后大部分是自己加班。
在面对产品,运营需求,在他们描述完对上线后,我也产生了这些产出,这些收益的渴望,我也挺愿意早日上线的。一般,我会主动做出让步,这却使自己陷入长期,频繁的加班之中。当然,也做了很多事。和上下游各部门合作也愉快。
加班不算什么,重要的是要把时间花在了更重要的地方,使自己成长更快。而努力的方向不对,则可能成为一个熟练,好用的工具人,一直不得成长。
我的几个导师,都是再升一级做管理了。我却还想沉下心来搞技术,做到50多岁还写码那种。不知道那个级别的技术高工,工作内容都是什么样?
管理和技术不冲突,尤其是你能够带着团队来做技术,那种感觉更爽,毕竟一个人的力量始终有限,发挥团队的力量才能干大事。
怎么会呢?前端可以开发体验好的页面;后端可以设计高性能的索引,这些都是用户在使用业务的时候能直观感受到的。
小公司运维,就1-2人这种,什么都没有,管理服务器(包括云主机)也就是几十至300这样,上级一般是开发经理,他都不怎么懂运维,只会安排零散工作。连什么是运维项目、完整的运维流程都没接触过?怎么成长?也不知道在哪里找资料、书籍类。
换个坑,回顾晋升三原则的价值原则部分,若公司就这规模,你水平高也不能为公司创造额外价值,更何况你连学习的机会都没有。运维书籍:谷歌的SRE、Netflix的混沌工程,还有DevOps的很多书籍。
技术大会有GOPS等运维技术大会,有很多资料和演讲PPT都能搜到。