摘录笔记——2024年3月20日

   这位大佬介绍的技术PM方面心得,有一定的启发意义(虽说我现在只是搬砖的,跟PM还有一定差距),现在摘录出来作为记录:

一文聊聊我理解的技术PM作为技术同学,不仅要写好自己的代码,做好功能交付,往往还需要担任复杂项目的技术PM,但有些同学缺少项目管理经验,不知道怎么才能做好技术PM,本文结合作者自身的一些经验,分享一些心得。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/0yhC1VRy_0C2gw0xWZ5Akg

前言

    作为技术同学,不仅要写好自己的代码,做好功能交付,往往还需要担任负责项目的技术PM,推动整个项目的交付。其实人人都是技术PM,不管有没有这个title,实际上都在做这个工作,只不过是职责边界和复杂度不一样。有些同学缺少项目管理经验,不知道怎么才能做好技术PM,可能在项目过程中感觉混乱,大家做的很累,最后又延期交付,结果过程都不好,最后也搞不清楚哪里没做好。本文结合自身的一些经验,分享一下心得。

一、职责

  技术PM主要是以技术的视角对项目进行管理。项目管理不仅是一个流程或工具,更是一种在复杂多变的环境中驾驭风险,确保项目按时、高质量交付的艺术。

 技术PM在项目中扮演着多重角色,既是技术决策的参与者,也是项目推进的关键人物。优秀的PM是项目组的主心骨,可以被大家信任依赖,带领项目成功交付。

职责包括:
1.深入理解业务诉求,协助PD完善产品方案;

2.结合产技能力现状和业务交付预期,给出合适的整体技术方案;

3.对于无法满足业务交付预期的,协调拆分迭代分期交付;

4.与各技术团队紧密合作,确保技术方案的可行性和风险可控;

5.制定项目计划,明确项目目标、里程碑,明确每个成员(或团队)应该在什么时间交付什么;

6.协调资源,确保项目按照计划顺利交付,必要时可上升寻求帮助;

7.识别、管理风险,积极采取相应措施应对,确保相关方知晓风险达成共识;

8.促进团队内部的沟通好协作,建立有效的沟通机制,如日会周会,日报周报等;

9.跟进线上试单、灰度、实验数据、确保项目有效交付;

二、挑战

  技术PM面临的挑战是多方面的,需要具备全面的能力和素质来应对。这些挑战要求技术PM不仅要深厚的技术功底和丰富的项目管理经验,还需要具备出色的沟通,协调,领导和学习能力。下面是一些常见的挑战:

(1)风险识别和管理:项目很少一帆风顺,通常伴随着各种风险,例如技术难点、资源瓶颈、需求变更等。技术PM需要具备敏锐的风险意识,能够准确识别项目中的潜在风险,并制定相应的风险管理计划,确保项目在可控范围内进行。

(2)跨部门与跨团队协作:复杂项目往往涉及多个部门和团队之间的协作,可能会因为不用的KPI或OKR,项目价值无法达成共识,造成更高的协调成本,需要技术PM发挥桥梁作用,协调各方利益和需求。同时,跨团队协作也需要建立高效的协作机制,确保不同团队之间的顺畅沟通和合作。维护良好的人际关系也很重要,有时买一杯咖啡比发十条消息都有用。

(3)需求与变更管理:在当前的激烈竞争环境下,需求往往随着项目的进展而发生变化。技术PM需要与业务、产品、技术等团队紧密合作,及时捕捉和响应这些变化,确保项目可以按照最新的需求进行调整和优化。

(4)质量和进度平衡:在项目中,质量和进度是两个至关重要的指标。技术PM需要在确保项目质量的同时,合理控制项目进度,确保项目能够按时交付。这需要技术PM具备扎实的项目管理知识和丰富的实践经验,关键时刻做好取舍。

 结合以往的经验,第一点最为重要,也比较困难,下面着重聊一下。

三、风险识别与管理

3.1 风险识别

   上文多次提到“风险”,什么是风险呢?简单来说,一切影响交付的因素都是风险,包括财税法、项目组成员的变化、联调环境的稳定性,封网计划等。任何可能让你没办法按时交付的因素,都是风险,重要的事情再说一遍。

   这里有太多的例子了,例如项目已经进入开发阶段,发现一个资金合规问题,存在法务风险,结果整个项目方案基本推导重来,浪费大量的人力,耽误了很多时间,造成后面的节奏非常紧张。

  风险识别难就难在怎么把这些变量识别出来,经验越丰富的PM,这方面的能力就越强,坑踩的多了自然就能提前预判了。比如上述的例子,吃一堑长一智,如果以后再涉及到资金流变更的项目,项目初期先把财税法讨论清楚再设计方案。

  经验少怎么办?

1.多听多看:了解身边复杂的项目是怎么做的,ATA里项目管理相关的文章很多,也可以看一些项目复盘文档,跟经验丰富的PM聊聊,项目大多没有一帆风顺的,别人踩得坑对我们来说都是宝贵的经验。

2.多想想:按照时间轴,把影响项目交付相关的因素尽可能的枚举出来,想想每个时间点应该重点关注什么,逐渐形成自己的方法论。

3.多聊聊:积极与团队成员沟通,把大家拉进来一起识别潜在风险,集思广益,相信团队的力量。

   一个小建议,带着怀疑的心态去审视一切变量,已经在“黑名单”里的要重点关注,对于不了解的要求悲观看待,特别是初次合作的人,初次涉及的领域等。

3.2 风险管理

   风险管理是一个系统性的过程,涉及评估、应对和监控等各个环节。有效的风险管理是确保项目成功交付的关键因素之一。常见的风险管理方法:

3.2.1  风险评估

a.对上面识别出的风险进行定量和定性评估,确定其发生的可能性和潜在影响。

b.综合评估,对风险进行优先级排序。

c.确保相关方知悉风险并且对优先级达成共识。

3.2.2 风险应对

a.根据风险评估结果,制定针对性的风险应对策略,包括风险避免、减轻、转移和接受。

b.制定详细的风险应对计划,明确责任人、措施和时间表。

c.确保风险应对计划与项目整体计划相协调。

3.2.3 风险监控

a.建立风险监控机制,定期跟踪和评估风险状态,例如日报、周会等方式,确保信息透明和沟通顺畅

3.2.4 持续改进和经验总结

a.在项目执行过程中,不断总结经验教训,优化风险管理流程。

b.对成功应对的风险进行记录,为未来项目提供借鉴。

c.对未能有效应对的风险进行深入分析,找出原因并提出改进措施。

  风险管理过程最能体现要性,优秀的技术PM不是传话筒,在这个过程中会积极的push大家,想尽办法克服困难,消化风险,力保项目如期交付。这也是最能体现个人价值的点之一,这个项目如何因你而不同。

3.3 早发现早治疗

 风险识别的越早,管理过程应对的方案越        。如果到最后阶段才暴露出来巨大风险,大罗金仙也无力回天了,只能面对最坏的结果。 所以一个常见的问题——如何让风险尽早暴露出来呢

   通常一个复杂的项目,可能开发周期很长,开发时感觉很顺利,到了联调或测试阶段才发现很多问题,例如需求理解错了,开发功能有遗漏,技术方案有缺陷,甚至应用启不来等等,带来大量新的工作量,这个阶段所剩时间已经不多了,不得已要加班赶进度,最后还不一定能按时完成交付,就可能造成引言说的大家又累、结果又不好的情况,这种情况很常见,有的同学不愿意做技术PM也大概是这个原因,感觉费力不讨好。

  结合经验有两个建议:

(1)先紧后松:项目前期的节奏要压的紧一些,尽量往前赶进度,给后期多留buffer,反之大概率是灾难。比如对于跨部门跨团队协作的复杂项目,我们团队要求在开发阶段就完成自测和主链路TC的联调,保证进入全链路联调阶段没有太大的风险,只要修修补补各种复杂case就好。这个过程中也遇到过其他合作团队的质疑,有同学问为啥还在开发阶段你们就要联调了,还没准备好,是不是太卷了,其实我们是踩坑踩怕了,到联调阶段什么奇奇怪怪的问题都可能发生,有时一个问题就卡一两天,搞得大家苦不堪言。当然项目前期应该把节奏跟上下游拉齐,避免出现这样的gap

(2)化整为零:通常项目会设定一些比较大的里程碑,比如开发,联调、提测、发布等时间点。对于大项目而言,相邻里程碑间隔比较久,这就可能给大家一种错觉,还有很多时间呢,不用太着急,往往接近里程碑了才发现有问题可能来不及了,造成项目延期。建议是化整为零,把里程碑拆碎拆小,每个小里程碑没有按时完成及时管理风险。对于重要紧急的项目,我们团队要求要把里程碑拆到天维度,每天晚上下班前技术PM汇报当天进展,整体进展是否符合预期,风险列表跟进情况,如果新增风险,快速拉相关方想办法消化掉。哪怕是每天多加班一两个小时消化风险,也总比临近上线不眠不休的加班也无法按时交付要好得多。越紧急的项目,里程碑可以拆的越小。

 以上两个方法亲测有效,很多硬仗都是这么打过来的。

四、参考指引

  有些新同学没有做过复杂项目的技术PM,不知道每个阶段该重点关注什么,根据以往经验总结了一下以供参考:

4.1 项目启动阶段

4.1.1 项目KO

a.召集项目子域PM和相关方(或所有成员),明确项目背景、目标和范围。

b.讨论并确认项目的初步时间节奏、关键里程碑。

4.1.2 需求收集和确认

a.与业务和PD深入交流,确保需求清晰明确。

b.识别、评估项目风险,并制定相应的风险应对策略。

4.1.3 项目计划制定:

a.制定详细的项目计划,拆解里程碑,建议越重要越紧急的项目,拆解的越细。

b.识别、评估项目风险,并制定相应的风险应对策略。

4.2 设计与开发阶段

4.2.1 把控整体方案

a.结合产技能力现状和业务交付预期,给出合适的整体技术方案。

b.对于无法满足业务交付预期的,协调拆分迭代分期交付。

c.拆解各域关键任务,组织技术方案评审。

4.2.2 技术方案评审

a.把控各域关键技术方案,确保满足功能性和非功能性需求。

b.评估方案的合理性,可维护性,成本,风险,探索更合理的方案。

4.2.3 代码开发与审查

a.监控开发进度,及时识别、管理风险。

b.及时跟进需求变更和技术方案变更情况。

c.推动提测前完成进行代码的CR,提升提测质量。

4.2.4 联调与测试

a.监控开发进度,及时识别,管理风险。

b.参与核心链路TC评审,协助完善case场景,与相关方确保对需求理解一致。

c.跟踪缺陷的修复情况,把控交付质量。

d.评估稳定性风险,资损风险,提前布防(压测、监控等)。

e.组织功能预演,确保有效交付。小问题及时推动优化,大问题重新评估项目计划。

4.3 部署与上线阶段

4.3.1 上线部署

a.制定详细的上线计划并进行评审,包括数据迁移,版本控制,发布顺序等。

b.组织集中发布,把控节奏,及时跟进突发情况,监控系统的运行状态。

c.确保新增的监控,对账有效运行。

4.3.2 线上试单及灰度

a.发布完成后,组织测试,PD在线上试单验证,确保有效交付。

b.讨论制定灰度计划,明确节奏及操作人,灰度比例执行变更后及时同步。

4.4 项目收尾阶段

4.4.1 项目总结

a.总结项目的经验教训,做得好的和不好的。

b.复盘项目结果和价值,是否符合业务预期,总结得与失。

4.4.2 文档整理

a.整理项目过程中的所有文档,包括需求文档,设计文档,测试报告等。

b.相关文档归档,确保项目的完整性和可追溯性。

4.5 贯穿始终

4.5.1 沟通与协调

a.持续与团队成员、相关方保持沟通,拉齐信息,如日会、周会或日报、周报等。

b.及时解决项目过程中出现的问题和冲突。

4.5.2 风险管理

a.保持敏感,识别项目新风险,制定相应的风险应对措施。

b.持续监控风险的变化情况,及时调整风险管理策略。

c.驾驭风险,发挥要性,想尽各种办法推解决风险。

    以上是一个粗略的任务列表,实践中还需根据项目类型、规模和具体要求进行调整和完善。重要的是确保每一个步骤都得到妥善执行,以保证项目的顺利进行和高质量交付。 

五、总结

    技术PM非常考验心力、脑力、体力,锻炼综合能力,每次负责不同的项目都会有新的收获。一个成功的项目也离不开技术PM在各个阶段的精心规划和严格执行。作为技术PM,需要不断提升自己的专业素养和管理能力,以应对日益复杂的项目挑战,确保项目的顺利进行和高质量交付。

六、Q&A

   Q1:做技术PM既苦且难,做PM的收益是什么。(现在越来越多技术不愿意做技术PM)

  1.技术PM权责利不清晰,觉得付出没有回报,费力不讨好——这点占比可能会大一些。虽然现在没有明确的说做得好会有什么收益,实际上在绩效考核时是有一把隐形的尺子在测量打分的,做得好的一定会被看到并且拿到结果的,做不好的也会有负面影响。技术PM是挺苦的,不过大概率收益是成正比的,风浪越大鱼越贵。理想的情况,我觉得可以通过一些组织设计,把权责利明确下来,做得好的可以给一些定量的激励,反之惩罚。不过落地可能比较复杂,每个项目的复杂度不同,对不同层级的要求也不一样,想明确考核标准不容易。之前探索过在团队内搞技术PM责任制,明确权责利,最终没有落地。

   2.感觉自己能力或者精力不匹配项目复杂度,怕影响结果背责任——需要主管和师兄多鼓励辅导,挑选合适的机会锻炼,及时给正向反馈,逐渐提升自信。

   关于收益再补充一点,除了上文中提到的综合能力提升以及绩效反馈,同时也可以提升个人影响力,做得好合作方会觉得这个人不错挺靠谱,以后有更大更有挑战的项目还想跟你合作。曾经有个合作过的其他BU团队,在启动新项目时就邀请我去做技术PM,确实跟我没啥关系就婉言谢绝了,当时还是挺有成就感的。

  Q2:做技术PM既苦且难,做PM的收益是什么。(现在越来越多技术不愿意做技术PM)

   最重要的也是最基本的技术目标,肯定是保证质量按时交付,先让业务赢,在一些复杂的跨域协同项目中,想完成这个目标已经比较困难了,确实需要一个靠谱的技术PM。其次,在这个项目中可以沉淀哪些产品,技术能力,或者顺便完成了哪些技术重构优化,带来质量、效率、性能或体验的提升,都是加分项,也可以作为技术目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/282456.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI 首席执行官Altman透漏GPT-5最新细节

关注文章底部的公众号,获取每日AI最新新闻 获取每日资讯 Altman透漏GPT-5细节 在最近的一次采访中,美国知名播客 Lex Friedman 邀请 OpenAI 首席执行官 Sam Altman 进行专访。在 Altman 眼中 GPT-4 还是很糟糕的,他预计 5 和 4 之间的差值将与 4 和 3 之间的差值相同。具体…

时代教育期刊投稿发表

《时代教育》是由成都传媒集团主管主办,中华人民共和国新闻出版总署批准国内公开出版发行的专业教育类期刊,主要刊登各类高等院校、职业技术学校、中小学教师及研究生、教育科研工作者的教育实践研究成果;教育教学行业的最新动态;…

Python爬虫案例-爬取主题图片(可以选择自己喜欢的主题)

2024年了,你需要网络资源不能还自己再慢慢找吧? 跟着博主一块学习如何利用爬虫获取资源,从茫茫大海中寻找那个她到再妹子群中找妹子,闭着眼睛都可以找到合适的那种。文章有完整示例代码,拿过来就可以用,欢迎…

【智能算法】多元宇宙优化算法(MVO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2016年,Mirjalili 等人受到宇宙膨胀理论启发,提出了多元宇宙优化算法(Multi-verse Optimization, MVO)。 2.算法原理 2.1算法思想 MVO基于宇宙膨胀的原理,利用…

python 教你如何创建一个自定义库 colorlib.py

目录 Colorlib 生成代码 模块代码 导入测试 测试一 测试二 应用测试 颜色列表 colorList 随机颜色元组 randcolorTuples 随机颜色字串 randcolorStrings Color类测试 测试一 测试二 题外话 Colorlib 有没有碰到过这样的场景:写代码时想要用上丰富的色…

huggingface的transformers训练gpt

目录 1.原理 2.安装 3.运行 ​编辑 4.数据集 ​编辑 4.代码 4.1 model init​编辑 forward: 总结: 关于loss和因果语言模型: ​编辑 交叉熵:​编辑 记录一下transformers库训练gpt的过程。 transformers/examples/…

鸿蒙开发之导航栏tabs(类似Android tablayout)

当页面信息较多时,为了让用户能够聚焦于当前显示的内容,需要对页面内容进行分类,提高页面空间利用率。Tabs组件可以在一个页面内快速实现视图内容的切换,一方面提升查找信息的效率,另一方面精简用户单次获取到的信息量…

使用uniapp,uni-data-select组件时,内容长度没超过容器宽度时候虽然能显示全内容但是数据后边会出现三个点,逼死强迫症

项目场景: 微信小程序开发,使用uniapp,uni-data-select组件时,内容长度没超过容器宽度时候虽然能显示全内容但是数据后边会出现三个点,逼死强迫症 解决方案: 找到组件的源代码,然后删除那三个…

图像几何变换(仿射变换和透视变换...)及python-opencv实现

文章目录 图像变换类型仿射变换透视变换python-opencv实现参考文献 图像变换类型 图像几何变换主要包括以下几种类型: 平移(Translation):将图像在水平或垂直方向上移动,不改变图像的尺寸和形状。缩放(Sca…

声控小助手:文本语音呼唤技术的应用与实现

title: 声控小助手:文本语音呼唤技术的应用与实现 date: 2024/3/22 18:20:42 updated: 2024/3/22 18:20:42 tags: 文本语音呼唤技术原理Python实现优缺点分析应用场景未来展望人机交互 1. 引言 在当今数字化时代,文本语音呼唤技术正逐渐成为人们生活中…

新零售SaaS架构:线上商城系统架构设计

零售商家为什么要建设线上商城? 传统的实体门店服务范围有限,只能吸引周边500米以内的消费者。因此,如何拓展服务范围,吸引更多的消费者到店,成为了店家迫切需要解决的问题。 缺乏忠实顾客,客户基础不稳&…

聊聊芯片中的动态功耗( Dynamic Power)

一、Dynamic Power 概念 动态功耗:主要包括动态开关电流引起的Switching Power和MOS管内部的Internal Power。 1.1 翻转功耗 我们先看Switching Power,开关功耗是指在逻辑门开关时所引起的功耗,在CMOS逻辑门输出节点产生逻辑转换时…

Linux--Shell脚本安装 httpd 和 修改IP

shell脚本 关闭防火墙、安装httpd、启动httpd [rootnode11 ~]# mkdir shell[rootnode11 ~]# vim abc.sh #!/bin/bash#安装httpd服务#1、挂载 准备yum源 mount /dev/sr0 /mnt &> /dev/nulldf$(df -h | grep /dev/sr0 | awk {print $6})if [ "$df" "/mn…

【C++】手撕红黑树

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:能直接手撕红黑树。 > 毒鸡汤:行到…

redis-黑马点评-商户查询缓存

缓存:cache public Result queryById(Long id) {//根据id在redis中查询数据String s redisTemplate.opsForValue().get(CACHE_SHOP_KEY id);//判断是否存在if (!StrUtil.isBlank(s)) {//将字符串转为bean//存在,直接返回Shop shop JSONUtil.toBean(s, …

深度学习500问——Chapter04:经典网络解读(1)

文章目录 4.1 LeNet-5 4.1.1 模型介绍 4.1.2 模型结构 4.1.3 模型特性 4.2 AlexNet 4.2.1 模型介绍 4.2.2 模型结构 4.2.3 模型特性 4.3 ZFNet 4.3.1 模型介绍 4.3.2 模型结构 4.3.3 模型特性 4.4 Network in Network 4.4.1 模型介绍 4.4.2 模型结构 4.4.3 模型特性 4.1 LeNet-…

MySQL的基本操作

目录 引言 一、SQL语句简介 (一)SQL通用语法 (二)SQL分类 (三)数据类型 1.数值类型 2.字符串类型 3.日期/时间类型 4.修饰符 二、登录mysql服务 三、SQL语句操作 (一)DD…

canopen使用

CAN 总线协议 1)、启动SDO 下载协议 ccs:客户端 指定命令 1:开始下载请求 •scs:服务器命令符 3:开始下载响应 •n:只有当e 1和s1,否则为0。如果有效则表示字节在d不这样做的数量有效包…

【Selenium(一)】

简介 Selenium是一个开源的自动化测试工具,主要用于Web应用程序的自动化测试。它支持多种浏览器,包括Chrome、Firefox、Internet Explorer等,以及多种编程语言,如Java、Python、C#、Ruby等,使得它成为Web自动化测试中…

AI PPT生成工具 V1.0.0

AI PPT是一款高效快速的PPT生成工具,能够一键生成符合相关主题的PPT文件,大大提高工作效率。生成的PPT内容专业、细致、实用。 软件特点 免费无广告,简单易用,快速高效,提高工作效率 一键生成相关主题的标题、大纲、…