必须要多做一点组织和规划的工作,才能为项目的成功夺保留一份希望。
一个独特的任务或是系统化的流程,其目的是创建新的产品或服务,产品和服务交付完成标志着项目的结束。项目都有风险,并且受制于有限的资源。
项目的核心是什么?是产品。
项目产生的一系列可交付物。
负责向团队清晰说明完成的含义,并带领团队完成项目的人。
完成是指产品符合组织对这个产品的要求,也能满足客户使用这个产品的需求。无论规模大小,是项目就存在风险。项目经理必须理解项目的关键驱动因素是什么。
充分的了解项目背景,有助于我们确定项目的驱动因素是什么。
首先要记录客户的期望。想要什么?何时需要?质量如何?
其次,要记录项目的约束。人手怎么样?有多少钱?约束决定了项目的规模。
对比以上 2 项,首先想要的项目成功的必要因素是什么,这就是识别出来的项目的关键驱动因素。可以使用矩阵表明项目的优先级。来确定最关键的驱动因素 。
哪些会限制项目,即为项目的约束。
哪些有调整余地,即为项目的浮动因素。
理想状态下,关键驱动因素为一个,二个约束条件,三个浮动因素。如果存在过多的关键驱动因素和约束条件,项目经理要经常与客户商议,确定客户到底想要的是什么,以减少关键驱动因素。
项目章程会明确记录项目的需求和约束,还可以帮助项目经理思考如何进行项目规划。让项目成员了解项目的目标,发现潜在的问题。
项目章程可能包括以下几点:
说明项目的价值,发起这个项目的缘由是什么。
需求,才是项目的驱动因素。
希望通过项目要达成的目的。目标与需求不同,项目并不一定必须交付它的目标。我们也完全可以把提高团队的合作能力写到目标里,当然了,这肯定不是客户的要求。
是围绕客户能基于完成的产品做什么给出的定义。比如:产品要在第一季度发布。项目经理要确保成功标准中不会包含非项目人员才能完成的任务。要确保成功标准在项目经理的掌握之中。
投资回报率。不解释,你懂的。
质量就是对于某人的价值。如果项目经理和团队知道某人对于质量的定义,大家就可以朝着这个方向来努力。
每个项目启动时都要有章程。
对项目章程的反复修改要有心理准备。章程不一定完美,它的意义在于帮助整个团队进行规划活动。
要知道质量的意义以及项目的驱动因素。这样项目经理和团队才会做出正确的决策。
当团队成员已经熟悉了章程,就可以一起做些有目的的规划和日程安排了。
规划和日程安排是两种不同的活动。规划是指制订带有发布条件的项目计划,而日程安排是对工作项目的有序描述。
规划不必完美无缺。只要能让项目启动起来,并让大家看到成功的希望就可以了。如果项目面临时间的压力,那么要用时间盒来辅助规划活动。
时间盒 (timebox) 是指特定的时间长度,个人或团队用它来完成某项特定的任务。个人或团队在这段时间内完成的工作量,就是项目接下来的工作的基础。
要根据经验而不是预言来规划项目。不妨做少量规划,再根据实际过程中收集到的信息反馈来影响未来的规划。
规划毫无用处,但是制订规划必不可少。
项目规划模板 :
产品意图、历史记录、发布条件、目标、项目组织、日程总览、人员配备、建议日程、风险列表。
产品意图,比章程远景更具体。
历史记录,如果该项目存在历史版本的话。
发布条件,详细列举项目产品的关键可交付物。
目标,包括了产品目标、项目目标、团队目标、组织目标。
项目组织,说明项目的一般运作方式。比如招聘新人,编写代码,完善文档等等。
日程总览,包含多个关键的里程碑,说明人们从这些里程碑里能够得到什么。
人员配备,包括了人员参加项目的时间,包括人员的类型。
建议日程,小心过早的细化日程。
制订项目风险列表,尽早开始识别和管理风险。
确定当前项目最重要的因素
让发布条件符合 SMART 原则
确定的( Specific )、可测量的( Measurable )、可达成的( Attainable )、相关的( Relevant )、可跟踪的( Trackable )。
在创建发布条件时,我们要能够在项目的整个生命周期中评估这些条件。
性能要好 -- à 性能场景 A 要在 10s 内完成。
生命周期是项目经理和团队组织产品开发的方式。定义需求、设计、开发、测试以及与这些工作同时进行的过程,都算是生命周期的一部分。
从整体上组织项目时,不要把现实状况理想化。即使曾经遇到项目需求不完整的问题,也不要在规划时就希望先产生完整的需求。可以随着项目推进不断发现新需求。
首先需要获取全部需求,基于这些需求进行分析和设计阶段,达成一致后,团队进入开发阶段,开发完成后,团队将会整合所有的功能,再开始最终测试。在顺序式生命周期中,项目经理要允许计划外的时间,以弥补项目过程中的未知风险和问题可能造成的损失。
首先创建部分原型,项目团队会在每次迭代中开发产品的一个部分。迭代式生命周期不要求同时进行集成和测试。
按照功能分成不同的团队,每个团队每次开发一个功能,完成测试和集成后,再开始开发另一个功能。
只需要一点点前期的规划工作,只要足以启动项目。而且知道产品负责人对当前发布版本的期望就可以了。划分为不同的时间盒,首先完成最有价值的功能。
用迭代来规划所有的工作,包括规划需求收集和原型化等工作。
将产品原型化,并尽早向客户展示。越多地从他们那里得到反馈,项目的进展也会越顺利。
从项目一开始就引入测试人员。
功能要逐个实现,完成后即进行集成和测试。
不要怯于创建反映你自己项目实际情况的生命周期。完美的生命周期只是模型。