👆 这是第 111 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧~
本文首发于政采云前端团队博客:你需要知道的项目管理知识 https://www.zoo.team/article/project-manage-ablout
作为一名软件开发工程师,为什么要了解项目管理知识呢?不知你是否在想,程序员只要写好代码就好了,何必要关心项目管理呢。在当今程序员行业愈发饱和的时候,保持竞争力是永恒的话题,而项目管理知识作为程序员的“软技能”之一,不仅能锻炼你的组织协调、沟通协作的能力,同时也能帮助你在技术道路上越走越宽,越走越好。
在我们日常的开发中,项目管理就无处不在,从需求评审、排期、开发、联调到最终发布上线,这个再普通不过的研发流程,其实就是一个缩小版的项目管理过程,下面我们将从程序员的角度,简述项目管理的基本知识以及对实际工作有帮助的方法。
本篇文章适合初入职场或已有 3 年以下工作经验,想了解项目管理知识,提升自身软技能的,想了解需求研发完整流程,更好的做事和提升工作效率的开发者。
阅读完本文你将收获:
首先来看项目是什么,项目在《 PMBOK® 指南》中定义为:项目是为创造独特的产品、服务或成果而进行的临时性工作。项目并不是重复性的工作,每个项目都有其唯一性,所以是“独特”的;一个项目是有开始时间和结束时间的,所以是“临时性工作”,并且也定义了范围和资源的。
项目管理就是将各种知识、技能、工具与技术应用于项目活动,以满足项目的要求。更具体地说,在从项目的投资决策开始到项目结束的全过程中,进行计划、组织、指挥、协调、控制和评价,最终实现项目目标。
PMI(美国项目管理协会)把它分为项目管理五大过程组和十大知识领域,共 49 个子过程。
十大知识领域包括整合管理、范围管理、进度管理、成本管理、质量管理、资源管理、沟通管理、风险管理、采购管理、相关方管理。
五大过程组包括启动、规划、执行、监控、收尾。
下面我们会从五大过程组并结合实际的工作场景,简述项目管理知识。
我们的需求研发流程其实就是五大过程组比较形象的比喻了。
项目启动过程组包含识别相关方和制定项目章程。开始一个项目前,首先需要制定项目章程,项目章程可以简单理解为一个可以说明项目的背景、目的以及最终需要交付怎样的成果的文件。另一个重要的事情是识别相关方,任何与项目有关联的内容当中,一定会有“人”的存在,项目管理需要人,参与项目也需要人,同时客户也是人,这里我们可以将与项目相关的人统称为“相关方”,在项目前期识别好相关方对项目的成功有着至关重要的作用。
在实际开发中,需求评审会我们可以看做是一个项目的启动过程,需求评审会一般会讲背景、目的和需求内容,在需求评审时同样也需要识别相关方。这里我们将从一个即将开始的“在线报销系统”项目说起,项目开发前会进行需求评审,在我们参与评审的过程中需要注意几个问题:
需求评审需要做:
项目启动后,要做的事情就是制定计划,也就是将目标和需求范围转化成实际可落地的方案,而制定计划也是整个项目过程当中最为重要且复杂的环节。规划过程组在 10 大知识领域都有涉及,可见其重要性。规划过程组可以类比成研发流程中的排期计划和技术方案评审,只有在前期做好充足的准备,才能将项目进展的更加顺利。
在这里我们会重点讲解 2 个对日常工作最有帮助的知识点,一个是制定进度计划,一个是识别风险。
什么是制定进度计划?分析活动顺序、持续时间、资源需求和进度制约因素,创建项目进度模型,从而落实项目执行和监控的过程就是制定进度计划。
怎样能帮助你更好的制定进度计划呢?这里我们用到 1 个工具方法,工作分解结构 WBS ( Work Breakdown Structure ),顾名思义,就是将一个庞大的工作拆分成一个个小的任务活动。
实际场景中,进行开发排期前,我们需要对工作量进行评估,在评估时,就可以使用 WBS 进行工作的拆解,使最终的评估更加准确,这里我们以上文的“在线报销系统”为例,通过 WBS 进行拆分:
每个项目不论简单复杂,一定会有风险存在,如何在项目当中识别风险,我们可以从几个维度去思考。
常用的风险识别方法:
可以由几个小组成员在正常、融洽、不受限制的气氛中以会议的形式进行讨论,每个人都可以发表自己的想法,大家互相启发,来获得尽可能多的想法。
SWOT 分析一般从优势、劣势、机会和威胁四个角度出发,分析项目存在的风险,从而产生对应的风险处理方案。
我们以上文中的“在线报销系统”为例,进行 SWOT 分析:
在我们日常开发过程中,也会有很多风险发生,在完成自己手头工作的同时也要站在 PM 角度的角度看问题,可以从以下几个方面进行思考:
执行环节说到底就是“撸代码”,但怎样保证最终成果令人满意成功交付呢,这就是值得我们思考的问题。执行环节并不是一帆风顺的,可能做着做着突然发现这里的实现方案行不通了,也有可能突然改需求了......
在执行之前,需要做好充分的计划和设计,在执行中,通过时刻关注需求进度与相关方保持沟通,确保最终的成果是符合交付要求的。
实际开发当中,有 2 点需要重点关注:
需求变更会影响进度范围,多功能和少功能都会对项目进度产生影响。
自测环节是保证质量的一个重要环节,在需求研发流程中,我们需要进行测试分析评审,研发严格执行冒烟用例,确保最终功能点和兼容性测试都能够覆盖到。
监控过程始终环绕在整个项目周期中,两者相辅相成才能促成项目保质保量的完成。怎样才能更好的监控项目过程呢?这里提到 2 个重要的活动,一个是工作报告,一个是晨会。
工作报告是项目管理当中查看项目进度和状态的必要文件。
实际工作中我们也需要撰写日报、周报或者月报,怎样才能让别人清楚的了解到项目的状态和进度,我们以周报为例,可以通过以下几个方面来写:
个人角度,需要包含以下内容:
团队角度:
团队和个人周报的区别在于更聚焦于结果和计划,因为你是代表整个团队的产出成果,需要体现主次。
在报告中也可以使用表格的形式来呈现整体的进度和风险。
很多互联网公司或者传统行业的公司都会有开晨会的习惯,为什么要开每日站会,可以从下面几个角度分析:
收尾即对项目进行收尾和采购进行收尾。一个项目结束后也需要整理项目当中的组织过程资产,包括经验教训登记册、问题日志等。收尾也有一个重要的标志,就是可交付成果通过客户验收,那怎样才能更好的保证成果达到预期标准呢?
从上线前的角度出发,就是要保证上面 4 个过程组都执行到位,包括做好功能测试,制定好上线的清单,明确需求功能点,对视觉、交互走查,面向业务方、用户演示。做好上线前的工作非常重要,能够让交付的成果保质保量的给到客户。
上线后也要时刻关注告警,并对项目进行复盘和总结,归档材料。
通过以上过程组的了解,相信大家对项目管理知识有了初步的了解,在有了项目管理知识之后,就需要将知识运用于实践中去,并在实践中总结经验,才能有所提升。当然我也是初学项目管理,文章当中难免有写的不对的地方,也请各位大佬予以指正,共同进步!
《PMBOK® 指南》第六版
《网易一千零一夜》
如果你觉得这篇内容对你挺有启发,我想邀请你帮我两件小事
1.点个「在看」,让更多人也能看到这篇内容(点了「在看」,bug -1 😊)
2.关注公众号「政采云前端团队」,持续为你推送精选好文
政采云前端团队(ZooTeam),一个年轻富有激情和创造力的前端团队,隶属于政采云产品研发部,Base 在风景如画的杭州。团队现有 50 余个前端小伙伴,平均年龄 27 岁,近 3 成是全栈工程师,妥妥的青年风暴团。成员构成既有来自于阿里、网易的“老”兵,也有浙大、中科大、杭电等校的应届新人。团队在日常的业务对接之外,还在物料体系、工程平台、搭建平台、性能体验、云端应用、数据分析及可视化等方向进行技术探索和实战,推动并落地了一系列的内部技术产品,持续探索前端技术体系的新边界。
如果你想改变一直被事折腾,希望开始能折腾事;如果你想改变一直被告诫需要多些想法,却无从破局;如果你想改变你有能力去做成那个结果,却不需要你;如果你想改变你想做成的事需要一个团队去支撑,但没你带人的位置;如果你想改变既定的节奏,将会是“5 年工作时间 3 年工作经验”;如果你想改变本来悟性不错,但总是有那一层窗户纸的模糊… 如果你相信相信的力量,相信平凡人能成就非凡事,相信能遇到更好的自己。如果你希望参与到随着业务腾飞的过程,亲手推动一个有着深入的业务理解、完善的技术体系、技术创造价值、影响力外溢的前端团队的成长历程,我觉得我们该聊聊。任何时间,等着你写点什么,发给 ZooTeam@cai-inc.com