登录      新用户注册      English
站点首页公司简介产品与服务知识库专家队伍人才招聘联系我们典型案例


资料下载 文章分享 推荐书籍
   文章分享
成功进行软件项目策划的九个基本要点
2008-02-29    Views:671     [Back]

成功进行软件项目策划的九个基本要点
The nine key factors of successful software project planning
山东中创软件工程股份有限公司  葛梅
北京赛柏科技有限责任公司 任甲林


摘  要 总结了进行软件项目策划成功的9个基本要点,涉及到了项目策划的时机、任务的分解、估计的方法、任务之间的依赖关系、任务的优先级以及管理的缓冲预留问题,为软件项目的策划提供了一个简洁实用的指南。
关键词  估计方法 颗粒度 优先级 依赖关系 里程碑 管理缓冲
Abstract: it summarizes the nine key factors of successful software project  planning, it includes that the occasion for project planning, the breakdown of tasks, the dependency relationship of tasks, the priority of tasks and the buffer for management. This issue gives a simple and practical guideline for software project planning.
Keyword: Estimating methods   granularity    priority   dependency relationship     milestone     management buffer

    古人云“万事预则立,不预则废”,项目要成功必须做好计划。软件项目策划是项目管理过程中最基本的一个过程,软件项目策划的方法是软件项目经理必须掌握的。在实际的项目策划过程中,必须掌握以下的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个要点一定能够给您的项目策划实践带来帮助!

 

 

2008-02-29    
关于我们 | 人才招聘 | 联系我们 | 任甲林博客 | English | 技术支持:35互联
备案号:京ICP备08002867号  © 2008 麦哲思科技(北京)有限公司   -