2014/8/13 11:46:33
软件开发项目有计划才能应对变化及案例聚焦

  俗话说,“计划赶不上变化”,可是在软件开发项目中,少了计划,就必将面临许多意想不到的变化。将实际情况与计划进行实时对比,就可以尽早发现偏差,及时纠正,降低项目失败的风险。这个计划,在项目管理中被称为计划管理过程。

  案例聚焦

  一个有两年软件开发项目管理经验的刘某,曾经负责某商场的CRM系统的软件研发工作,项目本身规模相对较小,但当时项目的主要困难是工期要求紧张。刘某根据经验,认为只要让每个人清楚自己的工作,各负其责,迅速投入研发,尽快完成编码,到时候把所有模块组装起来就应该没什么问题,没必要浪费人力、精力、时间在编写项目计划上。于是,大家简单沟通后便启动项目。

  在整个软件研发过程中,大家一直都很忙碌,编码工作在一天天进行,表面上看起来也没有任何异常。通过大家的共同努力,在项目的收尾阶段,编码工作基本完成。于是,项目经理组织进行实施前的准备工作。这时候,项目启动初期没意识到的问题、没有足够重视的问题都不约而同地爆发了,如系统联调卡壳、Bug层出不穷,在测试时需要同时纠错,而事先没有预留这步工作的时间;安装打包工作没有进行,文档没有编制,这需要调整人员应急处理,而当时没有计划这部分工作。结果,所有人乱作一团,如果按照原工期要求,即使全员通宵达旦赶进度,也已经无法按时完成,无奈之下只能延迟进场。

  事后,刘某反思得出结论,如果能在项目初期制定开发计划,界定工作范围,分解所有任务,就不会出现任务遗漏的现象;如果能在计划中制定项目阶段目标,按阶段控制项目偏差,及时纠正,就不会出现没有时间修改大量程序Bug的问题,也不会到最后一刻,才暴露出隐藏的各种各样的问题,从而产生延误工期的现象等。

  经过调整,综合分析后续剩余工作,刘某制定了详尽的工作计划,并且严格按照计划实施执行,终于保证项目在许可的时限内完成任务。

  从此案例可以看出:一个清晰可行的项目计划,对项目的顺利执行,影响重大。

  项目计划做什么?

  项目计划内容可以用3W+2H来简单描述,所谓3W+2H,就是What、Who、When、How to do、How Much Money,也就是项目准备做什么?由谁来做?什么时候做?怎么去做?花费多少?

  在软件开发项目管理过程中,做计划的具体思路是:首先要确定项目工作范围,其次要清楚定义工作责任划分,接下来是定义项目活动,最后对项目活动进行排序和历时估计。

  当制订项目计划文档时,以上四部分内容应该被清楚地描述。

  分解工作

  确定项目工作范围是为了有效完成项目目标。一般常用工作分解结构(WBS)的方法来实现,确保找出完成项目工作范围的所有工作要素,同时描述可交付成果和其组成要素的具体内容。

  有了明确的工作范围,在项目执行中,如果某个工作不包括在工作分解结构中,则该工作就会被排除在项目执行范围之外。

  当然,任何项目不是只有惟一一个正确的工作分解结构。工作分解结构一般用图表形式表达,当前常用的有两种:分级的树型结构和缩进图表。缩进图表类似于分级的图书目录,它能反映出项目的所有工作要素,相对树型结构直观性较差,但应用比较多,因为有些项目分解后,内容分类很多、容量很大,使用缩进图表示比较方便。

  分级的树型结构类似于组织结构图,表达起来层次清晰,非常直观,结构性较强。

  总之,两种表达方式各有千秋,可以根据实际情况选择使用。如图所示,是一个分级的树型结构的简单示例。

  划分职责

  接下来,需要划分工作责任,通常利用责任矩阵,来确定项目工作的各个责任接口,强调每一项工作具体由谁负责,并明确每一个人、组织、组织单元在整个项目中的地位和作用。

  在实际工作中,只有明确了某个工作目标由具体的某个人负责,才能确保项目的顺利推进。

  比如,在软件开发项目中,首先要进行需求分析,在需求分析阶段,就要确定某些个人或组织负责这个阶段的工作,某些个人或组织参与、辅助这项工作等;后续的概要设计、详细设计、软件开发等阶段,同样要照此处理,这样才能保证每个环节不出问题,或尽早发现问题,因为下游责任人会不断关注上游环节的输出物,这也是工作责任划分的优点所在。

  定义项目活动

  项目活动是为了达到项目阶段目标而进行的一系列工作单元,每一个工作单元是需要消耗一定时间和资源的明确的工作。项目活动的定义体现了计划的详细程度。

  比如说,在软件编码阶段,阶段目标是完成全部编码工作,结果是软件源代码以及技术白皮书等,那么,该阶段包括基础类库设计编码、公共控件提炼、软件框架搭建、A模块编码、B模块编码等项目活动。

  应该尽可能全面、清晰、详细地定义出所有项目活动,以保证有目的地掌控每项工作内容的状态。

  排序和历时估计

  最后需要进行项目活动的排序和历时估计。首先,要确定各活动间的关系,特别是各活动的先后依赖关系,最好同时完成活动历时和资源使用的确认,因为一项活动的历时与其先后活动和其它相关联活动有着紧密联系。

  例如,当需求不明确时,肯定无法进行软件概要设计,否则设计出来的东西肯定不能满足用户需求。

  这部分内容通常是由Gantt图(甘特图)来描述,也可以使用项目管理工具,比如微软的Project Professional。

  甘特图(Gantt chart)是在20世纪初由亨利.甘特开发的。它基本上是一种线条图,横轴表示时间,纵轴表示要安排的活动,线条表示在整个期间上计划的和实际的活动完成情况。甘特图直观地表明任务计划在什么时候进行,以及实际进展与计划要求的对比。

子墨 | 阅读全文 | 回复(0) | 引用通告 | 编辑 | 收藏该日志

发表评论:

    昵称:
    密码:
    主页:
    标题:
时间记忆
我的相册
$show_photo$
最新日志
最新评论
最新回复
我的好友
站点信息