项目计划是项目管理的第一步,它可以让思想成为产品。一个项目的管理是否混乱的判断首先应该从项目计划开始。以一个项目为例,我们可以将从混乱到清晰的状态分成几种情况:
第一种是知道目标,知道现在该作什么,知道将来该做什么,称之为“清晰”。
第二种是知道目标,知道现在可以做什么,但是不清楚将来该做什么,这称之为“半混乱或者半清晰”。
第三种是什么都不知道,那就是“混乱”。
我们实际遇到的大部分是第二种情况。在这种情况下,项目开始是有计划的。出现这种情况大概有以下几种原因:
对计划认识不清,长远计划或者是整体计划不实际、不准确、不具备实施的指导意义。
计划是为了应付领导或者客户,仅以此搪塞而已。而且领导/客户对拖延、返工司空见惯,不足为奇,所以就完全接受。
计划不够周密,计划总是赶不上变化,总是出现较大的差错。久而久之失去耐心就置之不理。
实际操作中几乎不可能100%的遵照计划,总有些没有想到的事情,这些事情就会影响计划的实施。计划是为了使事情变简单,使事情可见,但是如果计划被变化打乱,那就必然重回混沌状态,计划也就成了摆设!计划被打乱不足为奇,关键是及时的修正计划。所以对于计划必须有一个跟踪。项目跟踪就是及时发现实施中的问题,能够及时的修改计划,使整个项目处于控制之中。
1. 项目计划
项目计划直接关系到项目的好坏、成败。它是整个项目的头脑,项目计划越详细越好。但是在项目工作中,这种情况是很难达到的,而且项目计划可能会有不同的层次和结构,所以项目计划不应该是一个人完成的,应该是整个项目组成员思想的结晶。项目计划就是项目的设计书。
计划是给自己用的,因为它就为指导自己的工作。计划不是靠拍脑门子搞出来的,这样的计划会给你带来很大的麻烦,因为对于这种计划你只有两个选择:要么抛弃;要么修正。修正肯定会产生新计划。抛弃就又面临两个选择:要么重新做计划;要么破其计划陷入混乱。所以这种计划最终的结果只有两种:一是制作新计划,二是陷入混乱。所以与其做两次,甚至更多,不如一次就完成。陷入混乱那就不用多说了。计划的内容最少应该包含任务、时间和资源。但这里不谈这些,而是说说其他几个容易被忽视的地方。
重视管理首先应该重视计划工作,先认识、再重视、然后实施。认识就是要弄清计划的必要性和科学性,那些内容需要计划,那些内容需要明确。重视就是行动,这个行动就是加强计划的管理,确定计划编制、修改的方法和过程。实施就是计划真正的指导实际工作。
1.1. 计划的层次和结构
计划难以一次性彻底完成,所以项目计划应该保持一个层次机构。应该分成大、中、小三个层次,大计划由中小计划构成,中计划由小计划构成,小计划可以说就是个人任务的规划。这样做也是为了使我们工作容易进行。这样做的好处是:
首先层次结构体现了工作流程,符合项目的实际工作需要。在项目开始时,一般是很难具体的策划项目的细节工作,所以这时要求制作大计划,一般不包含细节内容,但列出了相对精细的中计划。之后中计划就开始被清晰的制定了出来,此时的中计划包含了粗糙的小计划。随着中计划的实施,小计划也就从粗糙变成了详细了。这个结构赋予任何成员一个自我施展的空间。当然计划的制定必须经过项目经理的认可。只要项目经理愿意,可以设计自己的所有工作。
其次层次结构是分工的体现,同时也体现出项目组的组织结构。在一个大项目组中(如果有十几个人的时候)就需要再分组。而这种分组,必然是基于工作上的分工。分工的同时也把压力、责任等分配了下去。这种小组的计划当然应该主要由这样的小组制定。这既是减轻项目经理工作压力的办法,也是发挥成员积极性的渠道。在实际操作中,大计划由项目经理负责协调、整理、编写,中计划可以由组长负责编写,项目经理负责协调、整理,小计划可以有项目成员完成。
1.2. 计划的详细程度
“计划越详细越好”。计划至少应该有三个要素被真正的落实下去,这就是任务、进度和资源。计划的详细程度就取决于对这三项的考虑。按照现在的情况来说,计划应该细到人/日(小计划的粒度),项目越紧计划就应该越细。做计划的时间,绝对不会拖延项目。计划越细项目中不确定的东西就越少,项目就越顺利。正所谓“磨刀不误砍柴工”。
针对不同层次的计划,详细程度有不同的要求,大计划应该确定中计划的任务,安排各任务实施的先后和用时的多少,以及人员组织;中计划应该确定阶段中的子任务(如编码阶段的某个模块),任务开始和结束时间,任务负责人;小计划应该确定个人进度的详细安排(日进度)。因为很多项目经理可以不用考虑资金、办公场所等资源,所以这里重点考虑人力资源。如果用一个例子来说明它们之间的关系的话,那么大计划是整个身体,中计划是支持身体的骨骼,小计划是血和肉。所以他们组成一个有机的整体。以瀑布模型为例,项目整体计划作为大计划,阶段(设计、编码……)计划作为中计划,然后分配到具体个人的工作为小计划。(具体情况视项目大小而定)
计划不但需要任务明确,还需要明确的完成标准。这个标准应该能够衡量产物的优劣。每个人的工作都有一个不同的标准,所以如果标准不明确,必将增加跟踪的工作量。标准是否达到是跟踪结束与否的依据,也是工作合理安排的依据。
1.3. 计划三步方略
计划的实施是有先后顺序的,尤其对于中、小计划。计划与实施之间可能会存在一定的偏差,如果偏差积累起来,就会导致计划失效和项目失控。所以应该实时对计划进行调整。跟踪会发现计划/实施的问题,这些问题就是调整的依据。
在实施中,人们应该注重小计划,因为:
计划的误差可能最早出现在小计划中,而且小计划的误差也最容易被忽视。
小计划的实施会影响中计划,也会影响大计划。
小计划的问题可能比较独特,对问题的认识可能局限于某个或者某几个人。
计划的制定应该是整个项目组的事情,人人都应该参与项目计划的制定。所以全员参与计划制定/修改才能及时将问题都反应出来,只有这样才能避免小计划问题的淤积。如果等到发现中计划已经不适合的时候,就说明你已经失去了最佳调整时机,而你要承受的就是拖延。
大计划可以和第一个中计划一起制定,紧接着应该考虑实施的问题。对于多个中计划来说是按照一定时间顺序来实施的,前面计划出现问题可能会影响后面的计划。所以这里建议实行三步走的方略。总结一个,实施一个,筹划一个。
总结一个:需要项目组能够对照大计划和中计划的进度,及时的收集并总结前一个中计划,甚至大计划的实施问题。
实施一个:根据前一个的实施问题,及时调整当前计划/大计划的内容和实施方式,包括时间、资源分配等。
筹划一个:根据以上两个中计划的内容,根据重新调整的大计划的内容策划下一个中计划的详细内容。
项目经理在这个过程中更重要的是起到强力的协调作用。
三步走可以使我们修改和完善计划。但前提是有良好的跟踪!在第一个中计划的实施中得到的跟踪数据,可以直接帮助我们修改和完善第二个计划和第三个计划。每个计划的跟踪结果必然会影响到今后几个计划的制定。三步走的方略一直循环下去,直到项目结束。
1.4. 设置警戒线和底线
计划会有拖延的情况。这种情况发生的频率非常的高。很多拖延在发生之前是难以明确的,就像风一样在不知不觉间到来、并流过。对于项目组来说,最好是通过设置警戒线和底线的方法来控制这种风险。警戒线和底线可以时间和阶段成果为标志。警戒线是为了认清发生拖延的标志,就像水位的警戒线一样。当警戒信号出现后,就应该执行应急措施。警戒线上应该设置必要的解决或缓解问题的活动。底线本身是一种预测,预测拖延可能的时间。
双线设置可以使我们对问题快速做出反应。这种反应就是效率。尤其是项目组出差在外,或者涉及到计划重大变更的时候,这种预防更是必要的。比如项目组要在5天内完成A、B、C、D四个工作(ABCD存在先后顺序),警戒线设置为:第四天的中午完成工作C,底线为5+1天。
当警戒信号出现后,项目经理应该尽快进行一次全面的检查,了解各个成员的工作情况,分析项目的整体进度状况,然后制定相应的对策。警戒发生后的应急措施应该是提前设计好的,例如加班、增加成员等计划。
警戒线就是风险的触发值,当警戒信号出现后,说明风险已经变成现实了。底线是对风险处理的预计时间。如果把警戒线和底线推而广之,那就是对风险的管理。对重大的风险都应该这样考虑。风险管理应该是每个阶段最先做的事情,首先认识风险,然后在计划中充分考虑。
1.5. 工作量的评估
软件本身是科学的产物,但是在软件开发之中,很多工作却处于原始状态,根本谈不上科学,这尤其表现在工作量的评估上。计划中的任务、时间和资源等内容都是依据工作量来安排的。所以工作量的评估是至关重要的。工作量评估不准,必然会影响成本和进度。工作量的评估是个让人头痛的问题,但这个问题主要是自己造成的,是我们在面对这个问题的时候采取了鸵鸟政策。
世界上已经有几种被人称道的工作量评估方法,比如PERT、Delphi、Cocomo等。对于软件工作人员来说,“学”并不是难事,难在是不是愿意去做。变革对任何人来说都是比较难以接受的,但是不变就难以改善。也许这些方法也有不科学的地方,但这是走向科学管理的必要的一步。
2. 项目跟踪
项目跟踪主要针对计划,是为了了解项目的实际进展情况而采取的活动。如了解成员工作完成情况,了解整个项目计划完成情况等内容。跟踪主要是为了及时了解项目中的问题,并及时解决,不使问题淤积而酿成严重后果。
项目跟踪是必要的,因为它可以证明计划是否可实施,同时可以证明计划是否可以被完成。因为可以对计划进行检验,所以如果我们把计划和跟踪作为一个工作循环,那么计划将得到适时的改进,因为跟踪过程中会发现计划的不当之处。详细的计划可以提高跟踪的准确性,提高跟踪的效率和效果。粗糙的计划则会加大跟踪的工作量,并降低跟踪的效果。这是循环所必然导致的结果。
计划中很多事情是无法写进去的,例如人员士气变化,人员的思想变化等,但这些事情很有可能影响项目的进展。跟踪——及时发现问题就变得尤为重要。
项目跟踪实施人应该是项目经理,因为项目经理负责制定项目计划,并且项目经理可以进行工作的协调和调动。跟踪可以给项目所有成员一个工作的参考,跟踪的结果和数据是“最好的教材”。跟踪主要是通过与项目成员的交流来完成,这种交流包括口头的和书面的。
跟踪的益处有:
2.1. 了解成员的工作情况
一个任务分配下来后,项目经理应该知道工作的进展情况,那么他就必须去跟项目成员进行交流,了解这个成员的情况。所以他要得到的信息是“能不能按时并保质保量的完成?如果不能按时完成,需要什么样的帮助呢?”这是项目经理最关心的。而且需要随时的收集。如果这个信息没有被收集上来,那么项目经理就失去了对项目的了解,也就失去可适时调整的时机,如此,后果就可想而知了。
2.2. 调整工作安排,合理利用资源
如果项目组中有几个或者几十个人的时候,就可能出现完成任务早晚的不同,完成早的不能闲着,完成晚的要拖后腿。也可能发现某人更适合某项工作,某人不适合某项工作。这时就需要项目经理进行工作的调整。那么这个跟踪结果和数据就可以帮助项目经理完成这个工作。
2.3. 促进完善计划内容
项目人员多了,又去跟踪,这就必然要求项目经理做出详细的计划,这个计划必须要明确任务,明确任务的负责人,明确任务的开始和结束时间,明确产物的标准(至少是项目经理和制作人双方可以接受且明确的内容)。这就要求项目经理把整个项目分成若干部分。详细的考虑分工。项目经理的跟踪必然促使项目组成员更加详细、合理的制定自己工作计划,最终形成一种良好的氛围,那就是计划展现出的层次结构(项目大计划、中计划和个人计划)。
2.4. 促进项目经理对人员的认识
工作分解后,应该按照个人的特长分配工作,因为特长就是效率。所以项目经理必须了解项目成员的情况。即使在开始时不了解这种情况,这种信息在跟踪中也会很快的被体现出来。也就是说跟踪促使项目经理对成员进行一个评估,并且这个评估是可以找到根据的(项目跟踪的结果)。
2.5. 促进对项目工作量的估计
在一个好的跟踪工具中应该有对工作量的估计。工作量的估计总是很不准确,这个问题在跟踪中表现为完不成任务/计划,或者工作超前。在这种情况发生后,也必然促使项目组去考虑工作量的评估问题,包括整个项目的工作量,各个任务的工作量,还有可能导致整个计划的修改。
2.6. 统计并了解项目总体进度
经常会遇到这种情况,项目组在同一时间进行不同阶段的工作。这时对于工作进度的把握,尤其是总体进度的把握就比较困难。如果项目经理把阶段划分的很清楚,并且阶段工作量也很明确,而且项目成员也对自己的工作量进行评估的话,那么项目的总体进度可以由工具自动生成(完成的百分比)。这当然不是很准确,但却可以作为一个参考。而且是一个比较好的参考。
2.7. 有利于人员考核
项目成员的工作能力,例如“是否按时完成任务,完成工作量的大小,工作内容的难易…… ”,很多信息都可以在跟踪工具中体现出来。使项目考核有理有据,人人信服。
3. 小结
对于我们现在来说要想做好事情,首先是增加管理工作的内容和工作量,改变以往“项目只有技术重要”的看法和做法。管理的工作很杂而且很多,很多情况下我们不知道该管些什么,该如何去管?所以很多工作都被有意或者无意错过。
计划是管理的第一步。计划是为自己做的。计划应该是切合实际的。在国内定制软件开发领域有这样一个认识,那就是一个项目一般会有三个计划,第一个是给客户的,第二个是最初的,第三个是神仙计划;但只有第三个没有形成文档。这主要是客户催的紧,所以第一个是应付客户的。第二个计划本想是用来指导自己工作的,或者给领导的,但是由于内容粗糙,再加上变化太多,失去耐性后就被束之高阁。第三个计划只有神仙才知道,就是做到什么时候算什么时候!要让计划变得可行,首先要求公司领导重视计划,按照计划对项目组考核。
从跟踪方面来说,是项目经理主动去了解项目的情况。但项目成员也应该主动向项目经理汇报工作,尤其是工作中的问题,但不能完全依靠成员的问题反馈,在项目工作中,项目经理采取主动是应该的,很多情况下没有问题,但却孕育着问题。所谓“没有问题就是问题”,项目经理应该注重这种情况。现在我们需要一个好的工具,来建立并完善我们的跟踪工作。跟踪工具可以是一个表格,很多著名的大公司都是采用Excel来完成的。
让计划和跟踪形成一个有机的整体,做了计划就要考虑跟踪。我们以前的做法是丢弃了跟踪,所以计划也就变得可有可无了。