在阿里,我如何做好技术项目管理?

阿里妹导读:在技术公司、尤其是互联网公司,技术人员作为PM(项目经理)是非常常见的。有些同学得心应手,有条不紊,能得到清晰稳定的预期结果;有些同学则在过程中遇到各种闹心的事,最后不是项目上不了线,就是带着问题或各种人员的不满硬上。当然这两种都是比较极端的结果。理性思考下,这里面有没有规律在?今天,阿里高级开发专家墨玖和你聊聊,如何做好一个技术项目的PM。

目标分析

对于任何事情要有清晰的目标才能精确把握,如何做好一个技术项目的PM?首先我们看到这里面目标最起码应该是:如期交付有质量保障的项目产出。这里有几个需要我们注意的结果关键词:如期交付(守时守信)、质量保障(保质保量)、项目产出(完整结果)。当然还有最重要的因素:人+过程。阿里有句老话叫做:没有结果的过程是放屁,没有过程的结果是垃圾。所以,项目管理也是一样。我们既要结果,又要过程,当然,还要这里面人舒服。

这里我们再总结提取下目标:

  1. 项目目标:如期交付(守时守信)、质量保障(保质保量)、项目产出(完整结果);
  2. 人员目标:舒服、有成就、有成长;
  3. 过程目标:风险控制、信息同步。

接下来我们就按照项目的生命周期来看看以上目标要怎样才能更好地达成。

目标达成

项目启动

项目启动重要点是需求宣讲,俗称画饼拉人。任何一个项目都会有既定的目标和预期,但是这个目标大家认不认?如何衡量结果好坏?做完后有没有成就感?这是项目后续成败的关键。所以你需要思考好这些东西,才能和大家宣讲、才能拉人干事。不然人家都不知道你要干啥、干了有啥好、为啥要(卖力)给你干。作为项目PM的你定义好项目目标、衡量结果(ROI)、人是尤为重要的。这里提几点建议和思考。

  1. 目标:你为何要做这件事?
  2. 目标:你的目标有没有足够明确?有没有清晰的大图?
  3. 目标:做这件事的意义是什么?
  4. 结果:你有没想清楚个目标的关键因素,核心指标是什么?
  5. 结果:有没有附加的影响和因素?是好的还是坏的?
  6. 人:你自己是否足够清晰能够完成项目的重要因素?尤其是大的项目top-down的思考。
  7. 人:你能为大家提供什么来确保顺利的分工配合?越俎代庖阻、撒手不管都是不可取的。
  8. 人:这个项目需要哪些人?哪些角色?他们核心关键是哪些?
  9. 人:参与这个项目的同学能得到什么?失去什么?共赢吗?
  10. 人:参与的同学的成就感在哪里?

当你思考和整理好以上这些东西,才能做好项目(需求)的启动和宣讲。目前我们很多项目的组织方式,是由多个角色完成的。常见的方式是运营或业务或产品做了项目中的一部分或所有,然后到需求阶段再由技术同学跟进后半段。这个角色有多人共同分担并不冲突,重要的是我们要配合默契、衔接得当、相互补位,拿到共赢结果。

工作过程中我见到过激情澎湃的KO,也见过稀里糊涂到直接开车,所以生活(工作)还是需要一些仪式感。注意做好这些点,项目后面会顺畅很多。

需求评审

一般需(hua)求(bing)宣(la)讲(ren)完毕后,很快会进入需求评审阶段。这里是需求细化明确重要节点。作为一个项目PM你必须要做到小需求了如指掌、大需求合理拆分。这个阶段最好是个时间段而不是一个时间点。尤其是对于互联网,我们讲究的是快速,节约大家时间。你有必要提前深入介入,了解需求逻辑和范围。这里会遇到如下几类问题:

  1. 需求(描述或意义)不明确、理解不一致。解:不要牵强、不要害羞。描述不清楚的讲(写)清楚;意义不清楚的增加解释。PM都要搞清楚搞明白,这样你才能够在中后期答疑解惑环节,节约信息同步成本。实在不行就回到最开始的目标上去:意义在哪里?
  2. 关键人员没拉到到位。解:这个其实我们经常会遇到,原因也有很多。事前列好人员信息版(可以放心里)是一个很好的习惯,我个人习惯用钉钉群公告+云雀 note 页。事中则需要补救和充分沟通了,还好我们的同学都很能相互理解。
  3. 需求范围膨胀。解:这个问题也是我们项目中常见导致项目最终崩溃的原因。所以你是需要提早接入需求的,最起码要比评审早。确认好项目的人员投入数量、投入度,确认好本次重要目标和次要目标。适当的时候要做需求拆解,不要做超量(加班也可能搞不定)的计划。不要做好好先生。你要清楚你的职责是如期交付有质量保障的完整结果。

除以上问题外,对于大型的跨团队的项目可能当下是无法详细看清全局的。这就需要大PM在这个时候量力而行尽早分拣分派、划定二级责任人。在互联网公司,需求评审过不过一般都会提到需求沟通和宣讲。所以,需求评审一般是PM认同了项目目标和意义的,这个要特别注意。所以具有PM角色的你(们)要更多的做配合需求拆分细化、答疑解惑;而不是一堆问题瞎怼(这可以发生在宣讲或再靠前)。这里我提下几个重要的点。

  1. 需求评审要提前做好信息充分公开有会议邀请,关键人员要拉到位。
  2. 评审后关键参与人明确自身工作目标和职责。
  3. 重要信息、问题和困难收集。同时做好信息公开同步。
  4. 重大设计、困难单列单独跟进。

完成以上后,项目人员也基本铺开了。接下来更多的需要并行。

项目排期

评审完毕后紧接着的就是再次的资源盘点和目标对焦,简要的 recheck 确保补齐。这时 PM 根据各负责角色工作评估做出简要排期和项目需求+参与方核对各方诉求,确定最终版本。这里也会遇到几个问题:

  1. 排期时间过长。解:拆分、加人、分阶段。建议最小工作单元评估最好不要超过2人日
  2. 其他项目排期冲突。解:分析是产品节奏冲突还是人员(资源)冲突,确认好各自目标再共同协商总体排期。
  3. 重要阶段未给足充分时间,如设计阶段、系统联调、冒烟、测试、内测等经常忽略项。解:提前协商沟通好协调。

最后,项目排期要和各参与同学沟通清楚投入度和时间节点。一定要明确几个重要的时间点:设计评审、测分评审时间、提测时间、产品验收时间、发布时间(如果客户端还要根据不同端特殊情况分开列出)。同时排期过程中可能遇到的并行风险、人员资源风险及时对外同步。

设计+测分评审

设计之于项目隐患+后期扩展、测分之于项目质量风险的意义,技术同学想必都是非常清晰明确的。这不仅仅要求项目PM,对于核心的系分、测分设计人员也提出严格要求。务必保证:

  1. 重要流程有图、有文字、有用例覆盖。
  2. 重要设计方案、测试方案要提前沟通讨论评估风险和影响。
  3. 需要考虑资金、安全、性能、风险的,单列 todolist + checklist。
  4. 重要设计影响对外同步。

对于技术型的PM,最好满足:

1. 项目中的核心设计者;
2. 业务 owner 或核心,其中一项。

这里主要是考虑到技术项目PM(实在不行要有核心设计人员)对于业务定型、技术定型在业务中后期的影响着实太大。

此阶段开始作为过程跟踪重要手段需要有常规的项目日报和风险提示了。建议对于工作日小于20人日的项目可以不用每天发项目日报,有风险及时同步即可。超过的最好每日有项目详细进度,根据项目复杂度不同粒度可以精确到单人负责的模块。重要的是过程跟踪+问题及时反馈解决。

研发过程

研发过程中一般大家精力都会集中在各自项目负责模块上。同时对于我们这种互联网公司,变化又是家常便饭。这里有个原则是信息跟踪和同步评估要充分。可能涉及到排期调整的,要及时沟通和调整。也要注意风险和项目范围把控。这时你可能会有如下帮助:

  1. 项目空间任务列表(aone有批量功能)
  2. 排期进度表(云雀)
  3. 需求变更记实录表(云雀)
  4. 人员负责表(云雀)
  5. 风险跟踪列表(云雀或aone)
  6. 过程进度日报:模块进度条百分比、当日工作主要内容、风险同步与处理。
  7. 重要逻辑影响对外同步(如表逻辑、业务逻辑变更的,需同步对应使用方)。

冒烟+联调+提测

大家都知道大多数的线上技术问题都可以在测试阶段提前发现。而PM要思考的是测试前我们能做什么?提测前的冒烟、联调包含了必要的单元测试、功能测试和部分集成测试。尤其是对于多系统联动的项目冒烟和联调的质量直接影响到测试效果和线上问题量。这里PM一定要提前沟通评估安排好时间控制和冒烟联调节奏,有必要的话集中闭关+小阶段目标设定可以实行。同时对于复杂的项目由于整体节奏和工作压力等原因参与人员很容易陷入自我流程和模块逻辑里。在联调阶段作为PM最好能设计出几个经典业务场景作为联调目标,对项目的整体质量做提早把控。重要项目特殊建议:

  1. 全量(70%+)含凭证冒烟。
  2. 流程覆盖设计+测试执行(PM)
  3. 闭关联调+分模块分阶段联调半日目标进度。
  4. 独立的项目联调环境准备。
  5. 关键链路的日志标要求。

无论是作为核心开发还是纯PM,此阶段都需要主动去检查项目的研发交付程度。包含但不限于主业务流程、特殊分支逻辑等。你可以根据项目重要程度复杂程度来判断是否需要精细化。同时此阶段也很容易暴露缺失或错误逻辑。我个人做法是小型项目自己设计场景case走;大型项目联合核心研发测试一起设计场景case;同时注意对产品交互和 demo。

测试

项目到了测试阶段大部分的开发工作已经基本结束了。我们这里讨论一种场景是开发测试有不同人员执行。测试bug要督促做到日清,不能日清的需要有原因跟踪。本阶段一般也是code review集中阶段。PM应直接或间接的对于关键链路设计、流程日志记录、编码规范要着重把关 。同时产品发布+回滚方案在本阶段要做准备了。一般来说每个团队发展到2年后都会有比较规范的发布计划模板。这里我们着重提及几点PM要注意的事项:

  1. 安排处理好项目测试环境,确保稳定性。
  2. 安排各系统CR节奏,并跟踪反馈。
  3. 安排发布计划讨论和准备。制定并总结初步发布执行计划(单点对应明确责任人)。
  4. 安排讨论确定版本限制兼容方案。
  5. 安排准备线上功能开关和灰度方案。
  6. 重要项目要有发布预演。
  7. 预发和线上不隔离的系统要注意单独考虑预评估发测试风险。有必要的给出操作步骤。

产品验收

一般情况测试完成后就到产品验收环节了。这个过程有些同学可能就直接不问或者任凭产品验收结果做最后的质量兜底。这是极为不可取的,原因是一般的产品验收最多只会跑到整体项目 case 的30%不到,越是大越是复杂的项目这个比率越是低。产品验收的目标是检查产品功能完整性、产品体验,而对C的线上用户几乎会全方位无死角覆盖。所以这次是你产品(功能)细节问题的最后一次机会。考虑到项目成本+收益+重要程度,对于特殊项目需要单独的组织参与人员设计并执行内部验收,以确保多人更大范围的产品检验。

这个事情有两个重要意义:

1. 项目产品信心建立。
2. 项目产品功能体验review。

一般性的准备我这里也列举下:

  1. 产品验收checklist;
  2. 验收环境准备;
  3. 验收数据准备;
  4. 验收问题列表;
  5. 变更列表(云雀或aone),此时的改动要特别注意变更风险和范围评估;
  6. 数据、BI、埋点验收准备;
  7. 产品验收数据收集(可选)。

项目发布

在以上阶段都完成后,就到了项目发布的最重要阶段。在准备好发布计划的前提下。要注意多系统联动的 发布时间节奏、依赖控制、风险控制、线上验证等把握。严格执行发布流程和回滚方案的同时,注意以下几点:

  1. 提醒系统发布前中后检查,建立通知机制(发布群)。
  2. 系统发布要注意API变更、数据及表结构变更等对线上逻辑的影响评估。(一般预发布已经做了)
  3. 发布后的线上检查,特别注意检查本身会否影响线上功能和数据。
  4. 最好做到发布功能有开关+线上白名单。
  5. 复杂项目的发布一般会选在在晚上,但同时要做好分班跟进计划。
  6. 发布完、线上验证完毕后,项目发布邮件及通知同步要到位。

复盘总结

互联网公司,唯快不破。再快的产品功能发布 也需要回到我们最初的本源,目标有没有达成?所以回到我们项目起初制定的目标和衡量标准,需要有个目标达成总结。重要的点提及下

  1. 项目目标衡量数据统计。
  2. 过程优缺点复盘,扬长避短(非所有项目)。
  3. 较为成功的项目要及时安排庆祝(仪式感很重要)。

其他的补充

互联网公司有个很大的挑战就是,项目节奏压力。同时通过以上我们也可看到想要做好一个项目是需要付出很多的,有很多东西都是默默地背后的。项目也好,产品功能也好。都是人做出来的。再牛逼的业务宣讲、再清晰的目标设定、再精细流程把控最终都逃不过人这个核心的落脚点。作为PM你要时刻反思:

  • 真正的业务诉求是什么?
  • 项目有没有偏离轨道?
  • 这个人跟你做项目能不能得到成长、成就?
  • 他有没有被你推到了墙角?
  • 你是否能观察判断到可能的风险并最好规避、次之解决?
  • 你会否会因为一个项目,一场仗而得到一批干将?

这是除了项目结果以外我们需要思考的。不仅仅是业务或技术,这是走的长远、是准备未来。

关于数据变更(结构+数据):包含表结构变更、数据格式变更、数据内容变更等 在系分阶段要同步BI(其他数据使用方),项目验收前要再次确认。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

云原生化的迁云实战

云原生的时代已经到来,云原生技术正在重塑整个软件生命周期,阿里巴巴是国内最早布局云原生技术的公司之一。 容器服务团队在过去的几年时间内帮助很多用户成功把业务云原生化并迁移上云,其中有现在已经是我们TOP10的大客户,也有需…

超详细!一文告诉你 SparkStreaming 如何整合 Kafka !附代码可实践

来源 | Alice菌责编 | Carol封图 | CSDN 下载于视觉中国相信很多小伙伴已经接触过 SparkStreaming 了,理论就不讲太多了,今天的内容主要是为大家带来的是 SparkStreaming 整合 Kafka 的教程。文中含代码,感兴趣的朋友可以复制动手试试&#…

PerfDog-移动端性能测试-基本使用

常见的腾讯性能测试工具:腾讯gt、腾讯wetest、腾讯perfdog 腾讯perfdog: https://perfdog.qq.com/ 一、介绍: 移动全平台iOS/Android性能测试、分析工具平台。快速定位分析性能问题,提升APP应用及游戏性能和品质。手机无需ROOT/越…

网易云音乐的消息队列改造之路

十年文案老司机,不如网易评论区。 网易云音乐自2013年上线后,业务保持了高速增长。云音乐除了提供好听的音乐外,还留下了我们在乐和人上的美好回忆。本文整理自网易云音乐消息队列负责人林德智在近期 Apache Flink&RocketMQ Meetup 上海…

OSS在线迁移服务剖析

在前迁移说明 目前由于 OSS 数据迁移服务涉及到对目标的 OSS 要有很多 action 的 API 授权,为避免用户产生过多的学习成本,我们直接强制使用主账号进行迁移;该服务正在公测中,目前仍在免费使用阶段;服务使用需要提前工…

JavaScript-变量的作用域 、const、let

作用域 局部函数 在javascript中,var定义变量实际是有作用域的。 假设在函数体中声明,则在函数体外不可以使用~(如果非要使用的话,可以用闭包) function qj() {var x 1;x x 1; } x x 2; // Uncaught Referenc…

idea 开启Run DashBoard

文章目录1.项目的.idea文件夹下&#xff0c;打开workspace.xml文件2. 添加 RunDashboard 节点&#xff1a;IDEA中&#xff0c;run dashboard是一个直观、方便好用的面板 1.项目的.idea文件夹下&#xff0c;打开workspace.xml文件 2. 添加 RunDashboard 节点&#xff1a; <co…

那些你不知道的 LVS 秘密!

作者 | 故事凌责编 | 郭芮近来在群里,看到大家说对lvskeepalived不太了解&#xff0c;我想我应该是有发言权的。自己本身就是运维出身&#xff0c;原来在京东物流的时候&#xff0c;lvskeepalived就是仓库物流在用的&#xff0c;踩了很多坑&#xff0c;只不过后来都上云了&…

从零到破万节点!支撑618大促背后的蚂蚁金服Kubernetes集群

2019年天猫618大促&#xff0c;蚂蚁金服首次在大促中对调度系统和技术栈全面应用Kubernetes&#xff0c;突破了Kubernetes单集群万节点的规模&#xff0c;总节点数达到数十万个&#xff0c;这是世界最大规模的 Kubernetes 集群之一&#xff0c;而这距离开发团队下载Kubernetes代…

MongoDB 定位 oplog 必须全表扫描吗?

MongoDB oplog &#xff08;类似于 MySQL binlog&#xff09; 记录数据库的所有修改操作&#xff0c;除了用于主备同步&#xff1b;oplog 还能玩出很多花样&#xff0c;比如 全量备份 增量备份所有的 oplog&#xff0c;就能实现 MongoDB 恢复到任意时间点的功能通过 oplog&am…

JavaScript-方法

方法的定义 方法就是把函数放在对象里面 var wang {name: 网络,birth: 2020,// 方法age: function () {// 今年 - 出生的年var now_year new Date().getFullYear();return now_year-this.birth} } // 属性 wang.name // 方法&#xff0c;一定要带() kuangshen.age()拆开上面…

Python程序员30行代码素描表白!网友:花里胡哨

总有人说程序员不够浪漫&#xff01;其实我们只是没时间而已&#xff0c;等我们有时间了&#xff0c;还有普通人什么事儿&#xff1f;最近就有一个小伙伴上热搜了&#xff01;原来他用Python给可爱的女朋友画了一幅素描&#xff01;不到30行代码&#xff0c;一起来学学给她一个…

解读NoSQL最新现状和趋势:云NoSQL数据库将成重要增长引擎

NoSQL最早起源于1998年&#xff0c;但从2009年开始&#xff0c;NoSQL真正开始逐渐兴起和发展。回望历史应该说NoSQL数据库的兴起&#xff0c;完全是十年来伴随互联网技术&#xff0c;大数据数据的兴起和发展&#xff0c;NoSQL在面临大数据场景下相对于关系型数据库运用&#xf…

使用EMR-Kafka Connect进行数据迁移

1.背景 流式处理中经常会遇到Kafka与其他系统进行数据同步或者Kafka集群间数据迁移的情景。使用EMR Kafka Connect可以方便快速的实现数据同步或者数据迁移。 Kafka Connect是一种可扩展的、可靠的&#xff0c;用于在Kafka和其他系统之间快速地进行流式数据传输的工具。例如可…

亚信安全发布“安全定义边界”2020发展理念 赋能企业在5G时代的数字化安全运营能力

2020年4月21日&#xff0c;以“信行合一 聚势致远”为主题的亚信安全2020合作伙伴大会正式在云端拉开帷幕&#xff0c;超过1500家生态伙伴相聚云端&#xff0c;在为期3天的大会上共话安全&#xff0c;共商发展。会上&#xff0c;亚信安全正式发布“安全定义边界”2020发展理念&…

JavaScript-Date日期对象

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <script>const now new Date(); // Tue Aug 10 2021 15:32:27 GMT0800 (中国标准时间)now.g…

如何实现input输入框自带清除按钮

最近&#xff0c;项目中需要&#xff0c;在输入框获取焦点是动态显示“”图标。即在输入框中输入内容时&#xff0c;右边显示“”按钮&#xff1b;输入框为空时&#xff0c;“”按钮消失。难点在于获取焦点的同时&#xff0c;获取输入内容。 注意&#xff1a;本例子的样式基于…

python-解码 decode 报错的问题

当解码使用默认的 decode() 拨错时&#xff0c;可以设置 errors 参数的值来解决 print(line) line_de_replace line.decode(errorsreplace).strip() # 用&#xff1f;代替 print("line_de_replace:", line_de_replace) line_de_ignore line.decode(errorsignore)…

字节码技术在模块依赖分析中的应用

背景 近年来&#xff0c;随着手机业务的快速发展&#xff0c;为满足手机端用户诉求和业务功能的迅速增长&#xff0c;移动端的技术架构也从单一的大工程应用&#xff0c;逐步向模块化、组件化方向发展。以高德地图为例&#xff0c;Android 端的代码已突破百万行级别&#xff0…

华为发布基于自进化AI的HiSec Insight安全态势感知系统

2020年4月21日&#xff0c;华为举办“安全新视界&#xff0c;AI知未然”主题线上发布会&#xff0c;邀请第三方研究机构、行业客户和合作伙伴共同探讨安全态势感知系统的演进方向&#xff0c;并见证华为HiSec Insight安全态势感知系统的全新面世。华为HiSec Insight安全态势感知…