《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-03项目生命周期五大阶段

简介:

本节书摘来异步社区《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》一书中的第2章,第2.3节,作者:邱毅凌,更多章节内容可以访问云栖社区“异步社区”公众号查看

02-03项目生命周期五大阶段

嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜

98d6b4c7562064d982ca174e3b5304615068fa71

我们前面讲过项目的定义,特别谈到每件项目都是独一无二的,都有各自的目标、可应用的资源、必须面对的限制与风险等。但所谓的知识体系就是要设法异中求同,通过分析与比较足够数量且不同种类的案例,试图归纳出适用于所有项目的思想与方法。

这么做并不牵强,因为不同项目间确实具有共同的特性,可以使用相同的思想与方法论来执行,就如同我们的本行—嵌入式系统与电子产品开发,如果不能在不同的项目间秉持共通的概念,工程人员免不了要多走很多冤枉路,其职业生涯将会非常辛苦!

2-3-1 项目管理知识体系

f6ceccab158cf257695ae0853904f9ce4818169a

PMI制定的项目管理体系称为PMBOK(Project Management Body of Knowledge),其举办的全球性项目管理知识认证考试则称为PMP。市面上有许多相关参考书籍,建议各位可以花时间找一本来研读。在此,我并非建议各位一定要取得PMP认证,但PMP考试以实际题居多,在做模拟试题的过程中,可以让你进入一项又一项不同项目的实境里。如果你是一位项目成员,如何在各个阶段协助项目成功?如果你是一位项目经理,碰到各式各样的状况时该如何处理?

建议只要买本PMP模拟试题与讲解的书籍即可,我个人认为这真的是很难得的管理培训,自我研读也未尝不可,因为管理的事本来就没有绝对的对错,只要能引发思考都是有益的。在座的各位总不会希望当自己到四五十岁时还在做工程师吧?就算你们想当一辈子的工程师,也要考虑现实环境,毕竟在中国,很少有企业愿意花高薪聘请一个资深的工程师。

所以,我亲爱的同事们,务必要抽空研读一些管理书籍,相信对各位的职业生涯会有很大的帮助!

9992952b82cf6b0a89c944292dae69d810c4a1b1

任何一件项目都必须经过以下5个阶段。

启动阶段
规划阶段
执行阶段
监控阶段
结项阶段
一般人都会直觉地将项目切分为这5项步骤,各位会发现,其实软件开发也是按照这样的流程,重点在于每一个阶段要做好哪些工作,才能保证下一个阶段可顺利的运行?幻灯片中的这张流程图乃归纳自PMBOK的各个章节,各位可以从这张图看出项目生命周期间。除了Implementation外,到底还有哪些必要的管理工作?而这些工作存在目的只有一个,即为了增加项目成功的几率。

请各位先对幻灯片中的每项Item稍具概念即可,我们稍后会陆续提到。

2-3-2 项目生命周期

517bda0c77a49829504c2e66c403be10b0f01019

同样重要的,还有项目生命周期的5个步骤。

启动阶段必须保证执行这个项目确实是有意义的,并赋予项目经理足够的资源与权力。
规划阶段的成果是‘项目执行计划’,过程中必须对项目的诸多特性(包含规格、进度、成本、质量需求、资源调配、沟通管理、风险管控及配置配置)做深入的分析。
执行阶段必须保持严谨,工程人员根据项目执行计划按章行事。当计划与实际状况出现落差,或因不可抗拒的因素必须修改项目规格时,则必须启动变更管控流程,更新项目执行计划—使得工程人员始终按照最新的计划来执行即可。
监控阶段则是在执行阶段,随时检查项目执行状况与既定计划是否即将或已出现落差,最好能够提前发出警示,以实时启动变更或风险管控流程。
结项的目的是为了累积企业资产,以供以后项目参考,照理来说,这是相当有意义的工作,但实际上却往往最常被忽略(到项目后期,许多项目成员已功成身退,剩下的势必也正在另觅新项目。因此,必须在项目执行阶段即通过许多自动化工具,不断地收集与整理项目资料,使结项时期的投入越小越好)。
若要我说项目生命周期中5个步骤最重要的是哪一个?工程师可能就想着执行阶段,但我会认为是规划阶段。整个PMP知识体系里,大部分的篇幅都在说明如何造出合理的计划,而我今天也会花最多时间在规划阶段上。这个道理非常简单,事前想得越清楚,执行的变量也越少,成功的机会自然而然便可提高。

等哪一天我有机会当上企业的老板,也许我会转而认为结项才是最重要的阶段。

b09dabc879ff21b585e9e44f8554c329da979521

项目在不同阶段会有不同的特性,因此,必须视项目所属阶段,采取不同的态度,并在不同之处投入不同的人力及关注,这点相当重要!虽然项目的5个阶段并没有明显的界线,但项目经理有责任让所有项目成员随时都知道目前项目正处于什么阶段。千万不要在规划阶段忙着写code,在执行阶段又不按照计划来执行;又或者监督阶段太晚启动,review活动不够积极,等到问题爆发时已无可挽回!

2-3-3 项目启动阶段

接下来我将遵循着项目生命周期的5个阶段,逐一说明各阶段的思想以及可使用的工具。一天的课程当然无法将细节全都说清楚,希望各位在今天的课程能够尽量将PMP的思想纳为己用,知道有工具可实际应用,等日后有需要时再去查询即可。

2b7032518f51a9fb26b1ffa09b59f4f3fae619d3

企业以营利为目的,除非有其他Business上的考虑(例如,为了与重要伙伴建立关系,即使赔钱都要做),否则,不赚钱的项目不应该接。此外,小虾米团队也不该妄想吃下大鲸鱼的项目。如此看来,某个项目到底该不该做确实是跟企业的利益息息相关,所以项目不应该说启动就可以启动的,必须经过严密的可行性分析。

可惜的是,大部分项目都过于忽视这个步骤,通常会直接跳过量化的分析,由高层或资深工程人员使用直觉与经验来决定是否启动。但我们说过,每件项目的特性都不同,即便是规格完全相同的产品,但面对不同的客户,可能会有截然不同的执行结果。

就算是老板和客户已决定要做的项目,当我被assign来执行这个项目,还是会找必要的工程人员执行可行性分析。分析工作的深入程度,根据项目复杂度与规格是否明确而定,规格越不明确的项目,越是需要做更深入的分析,在分析过程中顺势尽可能逼客户提供明确的规格。一旦分析结果风险极大,必须及早警示老板,即便老板还是执意要做,也能尽可能在项目启动前取得更多的资源,或设法让客户在规格上让步。

在项目启动阶段还有两件重要的事:

理清项目关系人。要分清楚只是纯粹感兴趣的人,以及实际具有影响力的人。
老板颁布项目授权书,并正式kick-off。
通常项目经理在没执行项目的空档时,麾下是没有团队可供调度的,所以当公司决定启动某项目时,老板必须正式授权给项目经理,让他可以申请经费与调动人力,最佳的方式就是老板‘颁布圣旨’—即项目授权书,白纸黑字说明项目目标,以及项目经理可以调动哪些公司资源。

通常在公司的组织章程中,并不会根据不同项目特性,明确各单位对项目的支持程度。因此,项目授权书就如同公司内部的行政命令,职位与法律相同,使得项目经理能够在授权书的范围内,‘合法’地取得资源。

87d1b1a88487eab554f5e5ec03ae0f16a7cb897c

我们公司就是一直碍于没有正式的项目授权书,搞得所有项目经理常常为了抢资源而搞得不愉快,部门主管也很难判断各个项目的优先级,使得本来可以‘依法行事’的,却因为缺少了老板这个举手之劳,项目经理最终还是得拉下自己的老脸到处要资源。

项目启动前后必然是混沌不清,充满了各种不确定。不确定的事情拖得越久,对项目影响越大,所以项目经理必须尽可能在项目前期就设法理清大部分的事情。以嵌入式系统项目来说,产品规格与成本限制是最重要的。同样是手机,智能型手机和一般手机所需的研发资源就大相迳庭!如果只知道‘大概’要做什么,前面谈到可行性分析的可信度,自然就会大打折扣。

再强调一次,越前期的决策错误,对项目成败的影响越大!项目启动阶段参与人员不需太多,最好是较有经验的人员,此时,项目经理要带头用谨慎的态度尽可能挖掘出该项目可能的变量与风险。

一旦确定要执行这个项目之后,接下来就是规划、执行及监控阶段,稍后我们会详细解说这3个阶段所需要的流程与思想。事实上,PMP大部分的重心都着重在这3个阶段。即便如此,我在此仍然要再次强调项目的启动与结项两者缺一不可,前者是确认此项目是否有执行的价值,并正式赋予项目经理应有的权力去执行此项目,而结项则是对此项目进行检讨,项目执行中的所有成果都应该转换成有用的组织资产。

在此我们先跳到项目结项阶段。

2-3-4 项目结项阶段

508590bcad07ef56e0d01fcfa65ffe03862c495d

结项有两种,一种是对外部的合约结项,另一种是内部的项目结项。

一般项目都只知道要做合约结项,不是公司急着跟客户收尾款,就是我们的厂商要跟公司讨钱,因为这会牵涉到营利或是否违约的法律问题,所以到项目后期,无论团队再怎么疲惫,都一定会设法尽快将相关合约close掉。

我们前面已经谈过项目结项的重要性,但大部分的项目通常都没有正式的项目结项过程。状况好的,可能所有项目成员一起吃个饭就算结项;状况不好的,项目执行时团队间弄得不愉快,项目后期,大部分人(或明或暗)早就投入另一个新项目的怀抱了,更不可能有余力进行项目结项。

项目后期的普遍状况是:人员就算尚未作鸟兽散,但对此即将结束的项目也渐无心力,项目经理的影响力也急速缩减。这是业界的常事,甚至老板可能就是将人力提早抽到新项目的‘凶手’。在这个状况下,项目经理只能从两方面完成项目结项的工作:

在项目执行期间,制定流程,并使用自动化工具,将项目开发的轨迹(包含程序、文件、bug管理、issue管理、变更管理等)记录下来,并定期备份。
明确规定执行项目结项流程的起讫时间,最好不超过一周,并与项目成员的部门主管以及现任的项目经理沟通与协调,请这些同事们在某段时间内帮这个项目最后的忙,只要项目结项流程的时间明确,大部分主管与员工应该都会乐意帮忙。
项目结项除了整理项目执行期间的所有资料之外,最好还能聚集重要的项目相关人员,在轻松的气氛下,对此项目从头至尾进行检查,并留下宝贵记录。

2-3-5 项目管理九大知识体系

6e29c24bc7e1c00a4856bdadff3610195b655694

我们已经谈了项目生命周期的启动与结项阶段,接下来,将正式进入与工程人员有直接关系的规划、执行及监督阶段。这些阶段的工作可以画分为9大类,称为PMP的9大知识体系,其中与工程人员较有关系的则有7项:范围(Scope)、时间/进度(Time/Schedule)、成本(Cost)、质量(Quality)、人力资源(Human Resource)、沟通(Communication)和风险(Risk),这也是以下课程的重点。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
14天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
2月前
|
数据库
什么是计算机软件开发领域的 verbose 代码和日志
什么是计算机软件开发领域的 verbose 代码和日志
31 0
|
3月前
|
调度
kettle开发篇-写日志
kettle开发篇-写日志
90 0
|
5月前
|
Java Docker 索引
微服务轮子项目(13) - 统一日志中心详解(docker安装部署)
微服务轮子项目(13) - 统一日志中心详解(docker安装部署)
84 0
|
6月前
|
Dubbo Java 应用服务中间件
项目中引进这玩意,排查日志又快又准
随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候,因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。
|
5月前
|
canal 消息中间件 关系型数据库
微服务轮子项目(36) -Canal数据库日志解析消费
微服务轮子项目(36) -Canal数据库日志解析消费
62 0
|
2月前
|
供应链 Java 测试技术
开发Java应用时如何用好Log
开发Java应用时如何用好Log
75 3
|
4月前
|
Java Maven
maven 项目配置日志打印以及异常日志打印问题
maven 项目配置日志打印以及异常日志打印问题
58 0
|
4月前
|
SQL Java 数据库连接
SpringBoot项目中Mybatis不打印日志怎么办?
SpringBoot项目中Mybatis不打印日志怎么办?
161 0
|
4月前
|
存储 JSON 数据管理
【云备份|| 日志 day1】项目认识 && 环境准备
【云备份|| 日志 day1】项目认识 && 环境准备