时间:2016年1月1日
地点:成都
天气:晴,霾遮日
空气质量:重度污染,203
心情:平静,并无跨年的喜悦,暂忘雾霾的困扰。唯一萦绕心头的是:我似乎很有必要找几本哲学的著作看看,尤其是笛卡尔的哲学思想。
《项目管理修炼之道》已经读完数周,我却找不到一种合适的方式来完成笔记:全书参考颇多,细节繁杂,作者的主要目的似乎是让读者需要时查阅,而不是让读者通过本书看懂项目管理。而我,就是想看懂项目管理。
当我完成这则笔记的时候,逐渐意识到:规划、估算、测量是项目经理引导项目走向成功的三种非常重要的能力。
一.什么是项目?什么是项目经理?
“项目:一个独特的任务或是系统化的流程,其目的是创建新的产品或服务,完成交付产品和服务,标志着项目的结束。项目都有风险,并且受制于有限的资源。
……
项目经理:负责向团队清晰说明完成的含义,并带领团队完成项目的人。完成,是指产品符合组织对这个产品的要求,也能满足客户使用这个产品的需要。”
二.项目管理的框架是什么?
简单而论,项目管理中需要平衡三种要素(传统“铁三角”):成本、时间、质量/范围。但是,本书推荐的方法强调关键驱动因素、约束因素、浮动因素三个方面。
-
1.首先,从客户的角度写下客户的期望:客户想要什么(功能集合)?期望何时收到交付物(发布时间)?交付物的质量如何(缺陷等级)?
-
2.其次,从项目服务者的角度写下项目的约束:环境如何?能否灵活安排团队?必须遵守什么流程?团队成员有哪些?团队能做什么?预算多少?
-
3.再次,对比期望列表和约束列表,以“项目成功的必要因素”为标准,按重要性罗列条目,从“期望列表”中选出一个关键驱动因素(理想情况下应该只有一个),比如:发布时间;从“约束列表”中选出两三个约束因素(理想情况下应该只有一个)。
-
4.然后,从剩余条目中找出至少三个浮动因素,浮动因素越多,项目越容易管理。
-
5.最后,对比没有入选的条目,如果有比已经选中的条目更重要的,就进行更换,从而最终确定关键驱动因素、约束因素和浮动因素。
*原书没有明确“关键驱动的因素”要在“期望列表”中选择,但这是显然的,如果客户的期望都不是驱动项目成功的因素,我们还有必要做项目吗?另外,作者在这里的方法其实是:将与项目成功的有关因素全部提炼出来,然后进行简化,从而为后期的项目管理工作确定管理对象,这种方法应该是先分析再建模,化繁为简——这便是笛卡尔的经典思想。
三.与客户沟通时,如何明确真正的驱动因素?
-
1..预测未来:让出资人设想项目即将交付,而有的功能还未实现,还有严重的缺陷需要修复,要想实现所有功能并修复缺陷是不可能的,这时看出资人如何选择。
-
2.询问与上下文无关的问题,例如:项目要怎么样才算成功?为什么想得到这样的结果?这种解决方案对你来说价值何在?这个系统要解决什么样的问题?这个系统可能会造成什么样的问题?
四.为什么要编写项目章程?
-
1.项目章程会明确记录项目的需求(明确驱动因素后就可以挖掘项目需求)和约束。
-
2.项目章程会帮助项目经理思考如何进行项目规划。
-
3.整个团队和出资人都可以查看项目章程,以此确保他们对项目有关的决策可以达成一致。
-
4.启动项目时,编写项目章程可以让大家知道应该完成什么目标,以及项目干系人提出的约束条件。
-
5.即使不知道完成项目需要的细枝末节,编写章程也有助于发现潜在的问题。
-
6.项目章程可以帮助项目经理和团队理解风险和成功标准,大家也可以籍此考虑组织和操控项目的方式。
五.项目章程可以包含哪些内容?
项目章程要设计简短,目的是帮助团队赶紧启动,它不会包含团队对于这个项目“完成”的定义,也不会介绍团队如何组织项目,但是已经足够开展工作。具体可以包括如下内容:
-
1.远景:发起项目的缘由何在?项目的价值何在?要用描述远景的句子说明项目的价值。
-
2.需求:某些情况下,项目唯一的需求,就是在特定日期之前发布某些功能。
-
3.目标:目标与需求不同,项目不一定必须交付它的目标,目标是项目经理希望通过项目要达成的目的,虽然客户和出资人可能不赞同。
-
4.成功标准:项目完成后,客户能用交付的产品做什么,这就是成功标准的定义。例如:在第一季度发布;客户不需要访问网站就可以打开安装包,下载软件等。要确保成功标准在项目经理的掌控之中(项目经理无法掌控的任务不该包含在成功标准中)。
-
5.ROI:估算投资回报率。
六、如何区分规划和日程安排?
规划是指制定带有发布条件的项目计划;日程安排是对项目工作的有序描述。
七、如何制定项目规划?
项目规划不必完美无缺,而且也不可能做到。规划的目的是能让项目启动起来,同时能让大家看到成功的希望。有了项目规划,团队成员的注意力就能放到预期的项目产出上来。
项目经理要用规划来整理想法,规划的形式最好能在组织内更多项目中反复使用,可以参考如下模板:
-
1.产品意图:简单描述产品——为什么要开发这个产品、它能为公司带来哪些效益等等。
-
2.历史记录:复查之前版本的有关数据:技术债务、发布频率、发布后发现的缺陷数、客户报告的问题等。
-
3.发布条件:详细列举项目产品的关键可交付物。制订的发布条件要符合SMART原则(确定的、可测量的、可达成的、相关的、可跟踪的)。
-
4.目标:即为项目章程中的目标。
-
5.项目组织:说明团队的职责分配、如何使用生命周期组织管理工作、要采取哪些关键措施、是否有决策人可以影响当前项目、还要说明项目的一般运作方式等。
-
6.日程总览:要包括主要里程碑,还要说明人们可以从这些里程碑处可以得到什么。
-
7.人员配备(人员曲线):说明人员配备情况,如果需要从其他团队调动人手,要说明何时需要多少,何种类型的人员。
-
8.建议日程:列出主要里程碑,使用甘特图或黄色便利贴均可,注意更新。
-
9.风险列表:罗列至少前十名的风险因素,以便监控和更新。
/*
项目启动后,便是根据组织项目的生命周期选择合适的日程安排方式,其中,利用写有里程碑或具体任务的便利贴进行日程安排是一种便捷有效的手段。
估算是一种非常重要的技能,例如:在项目管理中,就需要通过工作估算来预测某项任务的完成时间。这里,“化繁为简”的思想再次发挥重要作用:将大任务拆分为小任务(“小石子”),由于小任务更简单,对小任务的估算也就会更加准确。另一方面,与一开始就把整个项目就规划出来相比(这样会出错,而且浪费时间),波浪式规划(一个持续不断而且很详细的日程安排方法,只覆盖几周的时间。完成了一周详细工作安排之后,可以再继续安排一周的详细工作)是本书推荐的一种更合理的规划方式。
在项目管理过程中,项目经理需要掌控项目、控制项目节奏,以下是本书的一些建议:
*/
八、如何掌控项目?
-
1.掌控项目的节奏。
-
2.举行中途回顾。
-
3.为需求排序。
-
4.用时间盒限定需求相关的工作。
-
5.将迭代限制在4周或是更少的时间内。
-
6.使用波浪式规划和日程安排。
-
7.创建跨职能团队。
-
8.根据项目的风险选择生命周期模型。
-
9.保持合理的工作时间。
-
10.使用“小石子”。
-
11.管理干扰。
-
12.管理缺陷,从项目初就开始。
九、如何保持项目节奏?
-
1.在项目中持续使用集成。
-
2.为构建创建自动化冒烟测试。
-
3.按功能实现,而不是按架构(首先实现具有最高价值的功能;按功能调试;按功能测试)。
-
4.多几只眼睛盯着产品。
-
5.准备重构。
-
6.通过用例、用户故事、角色和场景来定义需求。
-
7.分离需求与GUI设计。
-
8.尽可能使用低保真度原型。
/*
整个项目管理周期中,必然需要召开很多会议,如同《谷歌和亚马逊如何做产品》中对会议的分析:解决问题、收集信息、传递信息——开会的三大目的。如果一场会议无法达到上述目的中的任意一种,或者说这样的会议对于参加者而言没有价值,那就没有召开的必要。
与估算一样,测量也是项目管理中的重要环节(测量获得的数据可以组成“仪表盘”),最直接的问题就是:测量项目进度——正确、有效的决策必然是建立在准确测量的基础之上。以下是测量项目的一些建议:
*/
十、项目测量有哪些注意事项?
-
1.使用速度图和迭代内容图作为首选。
-
2.数据是工具,不是目的。图表应该为你服务。
-
3.如果无法获取需要的数据,项目经理就遇到了比数据更严重的问题,需要首先解决这个问题。
/*
测试是项目管理过程中保障项目质量的一项重要措施。本书对测试的基本建议就是:将测试与开发集成起来,一边开发一边测试,甚至推荐了TDD(测试驱动开发)这样的方法。只有通过了各类测试(不仅仅是系统测试和单元测试)的项目才可以最终交付。
最后,本书作者强调:在项目结束时,即使已经在项目中进行过中期回顾的项目,也一定要再做项目回顾。
*/