软件项目计划时常犯的一些错误, 项目计划评审时的检查点(checklist), 成功进行软件项目策划的基本要点

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bamboolsu/article/details/43918909



软件项目计划时常犯的一些错误

项目计划评审时的检查点(checklist)

成功进行软件项目策划的基本要点



软件项目计划时常犯的一些错误

1 任务的颗粒度悬殊太大 
2任务的识别不全面,如:
没有识别出计划(PP,PPQAP,CMP,MAP等)评审的任务 
没有识别出来计划修订的任务 
模块间集成的任务没有识别出来 
3 只做了工作量估计,没有做规模估计 
4 只凭1或者2个人的经验进行估计,没有采用规范的估计方法 
5 没有计划偏离的控制阀值 
6 没有获得项目组成员对计划的承诺 
7 在schedule中没有缓冲任务 
8 当1个人干多个项目时,没有个人工作计划   
9 没有书面的项目计划,任务安排依靠口头传达 
10没有识别出关键路径 
11没有定义项目的生周期模型 
12没有识别出可以复用已有构件的活动 




项目计划评审时的36个检查点(checklist)

在多次的运行检查中,发现很多项目的计划存在一些共性问题,根据这些问题,归纳出来36个检查点供大家参考. 

1   是否定义了项目的组织结构
2   是否定义了每种角色的职责? 
3   PPQA是否有独立的渠道和高层沟通? 
4   如果有客户或客户代表的参与,是否定义了他们的职责? 
5   是否定义沟通了机制?(和客户的,和其他外部和伙伴的,内部成员的,和上级的,和其他项目组的) 
6   是否定义了度量数据、各种报告的报告机制? 
7   是否定义了问题解决机制? 
8   是否记录了选择生命周期模型的理由 
9   是否划分了开发过程的里程碑? 
10   是否定义了每个里程碑的结束准则?结束时间? 
11   是否记录了选择某种估算方法的理由? 
12   是否记录了借鉴的历史数据? 
13   是否估计了系统的规模? 
14   是否估计了系统的工作量? 
15   是否估计了成本? 
16   是否识别了项目的风险? 
17   对于风险的描述是否详细而明确? 
18   是否量化了风险的可能性、后果、时间区间与优先级? 
19   是否对每个风险定义了缓解措施或者应急措施? 
20   是否识别出了项目的关键路径? 
21   是否每个人的工作量都饱满了? 
22   是否有资源超负荷的情况? 
23   是否明确识别了管理缓冲时间? 
24   管理缓冲时间是否合理? 
25   是否针对每个人的特点分配了任务? 
26   是否每个任务的颗粒度比较均匀并控制在10人天以内? 
27   是否明确识别了管理类的任务? 
28   是否明确识别了集成类的任务? 
29   是否明确识别了培训任务? 
30   是否明确识别了评审活动? 
31   是否明确识别了计划修订的任务? 
32   是否明确识别了采购的任务? 
33   是否定义了工作量、进度、质量、规模、成本偏离的控制阈值? 
34   是否识别了本项目的交付物? 
35   是否识别了每种交付物的管理方法? 
36   是否定义了参考的资料,输入的资料,工作产品的管理办法?




成功进行软件项目策划的九个基本要点

古人云“万事预则立,不预则废”,项目要成功必须做好计划软件项目策划是项目管理过程中最基本的一个过程,软件项目策划的方法是软件项目经理必须掌握的。在实际的项目策划过程中,必须掌握以下的9个基本要点: 


(1)掌握好项目策划的时机 

  软件项目策划过程的输出是文档化的项目计划书,在项目的不同阶段都需要进行项目策划,只不过在不同时机项目策划的目的不同,花费的工作量也不同。当有了概要的客户需求而没有形成详细的软件需求规格说明书(SRS)时,进行项目策划产生的是项目的概要计划或者是里程碑计划,当产生了详细的SRS 后,项目策划活动可以产生项目的详细计划,可以明确估计项目的规模、工作量、进度、资源等,作为项目管理的主要依据。当发生了需求变化或者项目计划与实际存在比较大的偏差时,可以对项目进行重计划。需要提醒注意的是在需求未确定的时候,进行软件的估计是比较粗略的,此时不需要在项目策划上花费太多的精力。 


(2)任务一定要明确 

  在进行项目策划时,建立工作任务分解(WBS)是必须要做的工作,即把 
  工作拆分成一个个独立的、明确的任务,所谓明确的任务是指: 
  ● 该任务一定有一个输出结果; 
  ● 输出的格式有明确的定义; 
  ● 输出的内容有明确的检测手段与验收标准; 
  ● 任务的时间是有具体要求的。 
  上述4个判定标准有一个达不到就不能称为是一个明确的任务。在实践中,有一些任务难以定义的很明确,因为有些结果是难以预测的,比如说分析工作,具体的时间要求是难以准确预测的。任务如果不明确,就无从谈起任务是否做完了。 

  在项目组中往往由于前一阶段的工作没做好,造成后续阶段的任务难以明确定义下来。设计没有做完,编码的工作就不能定义的很清楚,就往往会造成实际的编码工作难以在要求的时间内完工,形成项目风险。 



(3)识别的任务不要有遗漏 

  在软件策划时,常犯的一个毛病是:任务没有识别全。在项目的实际执行过程,经常出现计划外的、又必须执行的项目组的任务,而不是项目组外的干扰活动。为了识别的任务比较完备,可以建立任务识别指南以提醒项目经理。经常遗漏的任务包括: 
  ● 项目管理类的任务,如项目计划、计划的变更、计划评审等; 
  ● 横向关联类的任务,如集成任务、需求跟踪矩阵的制定与更新等; 
  ● 项目交付物的制作任务,如用户手册的编写、培训教材的编写等; 


(4)任务的颗粒度要适中 

  在划分任务时,任务的颗粒度不能太大,也不能太小。颗粒度太大,就难以及时发现问题;颗粒度太小,就会增加管理成本。任务的颗粒度最小可以到半天,最大到周,一般以小于3天为宜,也就是说,项目经理能够在1周中至少检查2次成员的工作进展情况。适当的任务颗粒度一方面便于监控,另一方面也有利于调整任务。当出现任务拖期时,可以比较灵活地重新安排人员接手其他人员的任务。 



(5)估计要尽可能的合理 

  为了保证估计的合理性,可以采用下面的措施: 
  ● 借助历史数据。历史数据是“经验”的量化,通过和历史项目的数据对比, 
  ● 可以降低估计的风险。需要注意的是,在借鉴历史数据的时候,要注意数据的可比性,要考察项目类型是否类似、生命周期模型是否类似等。 
  ● 采用多种估计方法互相验证。在估计时可以采用多种估计方法,然后对多种方法的结果进行对比,通过分析其差异以判断合理性。 
  ● 细分任务。任务拆分的越详细,就越容易估计,越容易和历史数据对比。 
  ● 任务要完备。在估计的时候,要识别出所有的工作内容,不要有遗漏。 
  ● 有估计经验的人参与估计。一方面要对参与估计的人员进行培训,另一方面需要在实践中积累估计经验,每次估计完成后,都要和实际的情况进行对比,经过3~5次的反复,则可以积累估计的经验,提高估计的准确性。 



(6)识别清楚任务之间的依赖关系 
  任务和任务之间存在下面的5种依赖关系: 
  ● 输入输出关系。即A任务的输出是B任务的输入,A任务完成后,B任务才可以开始。比如编码和测试之间的关系。 
  ● 资源依赖关系。即A任务和B任务使用同一个资源,当资源为A使用时,就不能为B使用,当资源为B使用时,就不能为A使用。例如一个程序员不能同时做2个模块的开发,必须做完一个模块再做另一个模块。 
  ● 需求之间的接口关系。即A任务和B任务的输出存在接口,2个部分的输出需要组装在一起,如果组装的任务是C,则A,B任务未完成,C任务也无法开始。 
  ● 调用关系。主要是对编码任务而言,任务A的代码为任务B的代码所调用,则A必须先完成。 
  ● 采购关系。如果存在需要采购的外部构件的话,则采购行为必须先完成。 
  定义了任务之间的依赖关系,就可以识别出项目的关键路径,以重点关注关键路径。 



(7)优先安排与系统架构有关的需求的开发 

  要优先安排关键功能需求、全局性功能需求、接口需求、非功能需求的开发,这些需求影响的范围比较广,一旦返工,工作量比较大,因此在安排任务前要先安排这些需求的设计、实现、测试与联调。在计划时若没有安排好任务的顺序,会造成在项目的后期阶段比如联调时,发现有些模块无法联调,需要写测试程序或者等待其他模块的完成。 



(8)建立项目的里程碑 

  在项目进展的过程中,项目经理、PPQA、CM等从项目的不同的侧面对项目组的进展进行了跟踪,但是缺乏全面、系统地分析与评价,借助里程碑评审可以综合各方面的分析数据进行判断。在项目的里程碑处,一般是通过里程碑评审全面地对项目组外部的成员展示项目的进展,以判断上一阶段的工作是否完成,是否可以进入下一个阶段。很多企业往往将里程碑评审搞成了一种形式,成了走过场,这违背了里程碑评审的初衷。在里程碑评审时,要注意是否全面评价了项目组的进展?是否对项目组外面的相关人员展示了项目组的进展?如果里程碑评审仅有项目组内部的成员参加,则往往大事化小,小事化了,掩盖了真实的问题,不利于发现项目组中存在的问题。 



(9)预留管理缓冲 

  在项目过程中总会存在突发事件和估计不准确的情况,因此可以在计划中留有缓冲时间。对于缓冲时间可以有2种设置方法,一是固定缓冲,即每周或者月等固定地留有一定缓冲时间,如半天或1天等。二是在所有的与关键路径接驳的任务之前留有固定比例的缓冲,如A任务是关键路径上的任务,B任务不是关键路径上的任务,但是B做完后,才可以做A,B和A是直接的先后时序关系,此时可以在B任务与A任务之间留有一定的缓冲时间,以降低进度风险。 

  管理缓冲应可以明确地识别出来,不要隐藏在每个任务中。 

  相信上述的9个要点一定能够给您的项目策划实践带来帮助! 


展开阅读全文

没有更多推荐了,返回首页