制订软件项目计划的方法与策略

制订软件项目计划的方法与策略

制订软件项目计划的方法与策略

制订软件项目计划的方法与策略

制订软件项目计划的方法与策略

制订软件项目计划的目的在于建立并维护软件项目各项活动的计划,软件项目计划其实就是一个用来协调软件项目中其它所有计划,指导项目组对项目进行执行和监控的文件。一个好的软件项目计划可为项目的成功实施打下坚实的基础。

软件项目有其特殊性,不确定因素多,工作量估计困难,项目初期难于制定一个科学、合理的项目计划。我曾主持和参与过大大小小的软件项目十余项,下面我将把我制订软件项目计划的经验分享给大家。

1.注重项目计划的层次性

软件项目计划的层次及其关系如下图所示。

制订软件项目计划的方法与策略

高级计划,是项目的早期计划。高级计划应当是粗粒度的,主要是进行项目的阶段划分,确定重大的里程碑,所需相关的资源,包括人力资源、设备资源、资金资源,即所谓的人、财、物三个要素。

大的阶段交替之前,应做好下一阶段的详细计划,我们称之为二级计划。详细计划要确定各项任务的负责人,开始时间,结束时间,任务之间的依赖关系,设备资源,小的事件点(即里程碑)。

如果项目规模相对较大,可以有多级的计划,比如说,一个项目组可能分为几个开发组,二级计划是各开发组制订的适合的自己小组的计划。如果开发组还分了小组,可以有小组的三级计划。

开发人员的个人计划是低级计划,由开发人员根据自己的任务自行制定,要把任务细化到人·日。

一般的,软件项目计划至多有四级就够了,过多的等级将会引发效率的瓶颈。大的项目不见得要有庞大的组织和人员数量来支撑,合理的划分小组,减少组织的层次,有利于项目计划的制

制订软件项目计划的方法与策略

制订软件项目计划的方法与策略

订和实施。较小的软件项目由于工期不长,人员较少,有二级计划(高级计划与低级计划)也是可行的。

2.重视与客户的沟通

与客户的沟通是很重要的。不必害怕客户知道我们的开发计划,特别是项目进度情况,应当和客户共享这些信息。

首先,客户会提出一些对项目时间、进度、效果上的要求,这个指标往往经不起推敲,有的还带有较强的政策性。如:在我主持的一个某单位人事MIS系统的开发中就发现,客户方对时间上的约束是有成形的文件的,是他们单位领导们开会的决定。客户给出的从项目启动到验收的时间只有三个月,但是,经过我们认真的需求调研,做出项目进度的粗计划和部分的二级计划后,发现三个月的时间是难于实现的。我们把做出的调研文档和项目计划摆出来和和客户讨论,最终使项目的开发时间延长为六个月。站在为了科学地分析和解决问题的立场上来看,项目组和客户的目的是一致的,所以对于合理的项目进度客户是会理解与支持的。

其次,我们有义务要让客户知道项目的计划。这样才能让客户和用户主动、积极参与项目,达到项目的最终目标。项目计划取得双方签字认可是一种好的习惯。客户可能不愿意签正式的文件,那么在文档的封面上签上双方负责人的姓名、联系方式也行,虽然是非正式的,但留下了项目工作的痕迹。有必要想办法让客户清楚签字意味着什么。这就意味说双方有了一个约定,既让用户感觉心里踏实,也让自己的项目组有了责任感,有一种督促和促进的作用。

3.该详细的详细,该简略的就简略

软件项目计划就如同软件项目本身一样有它特殊性,一个三五个人花两三个月就可以完工的小项目,可能项目计划就四五页纸,包括一个WBS(工作分解结构)和一个Gantee图(甘特图)。一个需要五六十个人甚至上百人,要花上半年或更长时间的大型软件项目则会有更多的项目计划内容。我们得按照项目的的特定情况量体裁衣。

如下表表1所示,这是我主持的一个某高校教务办公信息系统项目的风险管理计划表。项目较小,我们只用了两个月的时间就开发完工,通过验收。正因如此,我们在项目计划中大量的采用了这种表格来制订人员计划、培训计划、风险计划、成本估计、文档大小估计、进度计划,一目了然,责任到人,其效果和效益是很明显的。

制订软件项目计划的方法与策略

制订软件项目计划的方法与策略

制订软件项目计划的方法与策略

项目的工作安排一定要责任到人,这点是要详细的。如果是多个人共同完成的任务也要指定一位主要负责人,否则开发人员会操作不便,甚至互相推卸责任。

4.制订的项目计划要现实

软件项目中的项目经理和系统分析员大都是从程序员成长起来的,我亦是如此,担任项目经理之前我写了五年的VB、Java和数据库SQL代码。项目经理和系统分析员做出来的项目计划最终要能够被项目组成员所实现。

制订项目计划仅靠“个人经验”是不够的,不可能面面俱到,不要期希望于“个人经验”。解决的办法有两个方面。

一是充分鼓励、积极接纳项目干系人(包括客户、公司高层领导、项目组成员)来参与项目计划的制定。

可以邀请客户和公司高层领导来共同讨论高级计划的制订。客户会乐意参与的,因为追求项目的成功是大家的共同目标。公司高层领导的支持是项目组的坚强后盾,项目组需要获取必要的资源,需要及时获取对项目特殊要的审批,需要在领导事务上得到适当的指导和帮助,有些事项有时是需要公司高层领导加入才能解决的,如合同款项的按期支付。

制订二级、三级项目计划要与项目组成员互动。当规划由一个人做出而由另一个人实施时,如果项目没有按时完成,会使得他们怀疑项目计划的可行性,也会影响开发人员的士气。与项目组内部人员的沟通亦很重要。软件程序员平时通常表现得内向、清高,作为项目经理应当学会调节工作中的气氛,在轻松的氛围中去融合开发人员的意见。

可以让开发人员对自己职责范围内的事提出建议的时间和资源,再作讨论约定。这样开发人员在主观上会更加投入工作。客观上,开发人员的能力很难用时间及工作量来衡量,一名熟练的Java程序员比一名初学Java的程序员开发效率可能快上四五倍,因而安排的时间周期、任务量当然要不一样。我比较倾向于召开一次专题讨论会,事先写出一个初稿,再各抒已见,最后作出结论。

二是要充分利用一些历史数据。历史数据是宝贵的财富,是可复用的资源。不仅要注意积累这些数据,也要学会从中提炼出可以为我所用的数据。如,项目计划的模板,计划的资源数据等。

制订软件项目计划的方法与策略

制订软件项目计划的方法与策略

5.运用过程化的思想指导开发

软件项目计划是CMM2级的一个KPA。可用软件过程化的思想指导计划的编制与实施。

CMM2共有6个KPA,它们是:需求管理、软件项目计划、项目跟踪和监控、软件转包合同管理、软件质量保证、软件配置管理。一个软件组织如果达到了CMM2的各个过程方面的全部目标,就表明这个组织的软件能力达到了第2级成熟度等级。

这也可以是针对一个项目而言。通常需要根据项目的进展情况对项目计划进行修改,以便应付需求和承诺的变更、不够准确的估计、纠正措施和过程更改等。在策划和重新策划中涉及的活动,都包含在这个过程方面里。

6.利用成熟的项目管理工具

Microsoft Project 2000(或更高的版本)是一款公认的功能强大、操作方便的项目管理工具软件。它自带了一个叫做“软件开发”的模板,可以用它来生成大体的框架,再作细节方面的改动,也可以自己制作一个符合自己公司软件项目运作流程的模板。

Microsoft Project 2000的操作面版中可以安排任务,并设置开始时间、结束时间、前置任务、资源名称等参数,它能自动生成Gantt图、Pert图,找出项目中的关键路径。

7.结束语

软件项目计划分为高级计划、二次计划、三级计划和低级计划,制订软件项目计划应注意及时与客户沟通,该详细的详细,该简略的就简略,制出来的计划要是现实的,可以运用CMM2的思想指导计划的制订,Microsoft Project是倍受推荐的项目计划软件工具。愿我们多做出高质量的软件计划,从而打造软件精品。

 

第二篇:软件项目实施计划

1 前言

项目实施是指软件开发项目在开发过程完成后,系统在正式移交客户使用前,系统所进行的现场联调、系统试运行和实施培训的过程。

项目正式实施之前,相关实施工作人员需要认真做好实施前的准备,并仔细制定实施计划,以期顺利地做好后续各项实施工作,按时完成实施任务。

2 实施准备

2.1 人员准备

人员准备是指所涉及的项目在实施工作中可能需要沟通的人员,包括公司相关人员以及客户方相关负责人员。

2.2 技术准备

技术准备是指弄明白项目所涉及到的各项技术,如系统配置、环境配置、数据库配置、软件部署等。确保实施人员掌握了项目部署所需要的相关技术,确保项目实施工作能够顺利完成。

2.3 其他准备

其他准备是指考虑到与客户的沟通,以及可能遇到的出行方式、食宿等,以及所涉及到的辅助工具。

3 进度时间安排表

充分考虑实施工作中可能会遇到的风险与干扰,根据项目整体计划,制定实施进度的时间安排表。

4 任务分解

4.1 实施计划编制

公司项目实施人员根据项目的实际情况,和客户公司相关人员初步接触沟通后,编制实施计划文档,如有必要,可与公司以及客户方相关人员对实施计划进行修订与确认。

4.2 环境准备

4.2.1 硬件环境准备

列举项目所需要的各项硬件设备。确认客户方是否准备好运行项目所需要的服务器、附属硬件设备,用于安装数据库系统以及管理软件系统的中间层,负责数据的存取和业务规则的处理。

4.2.2 软件环境准备

列举、确认项目运行所需要的各项软件环境的要求。

4.2.3 网络环境准备

如果项目的部署需要网络环境的支持。实施人员需要考虑到项目运行所需要的网络环境支持,并与客户方确认沟通,以搭载必要的网络环境。

4.2.4 初始化数据准备

初始化数据准备是对项目的基础数据进行整理,如初始化客户方组织机构,以及各岗位工作人员及其对系统的使用权限,包括用户权限分派和业务权限分派等。实施人员需要与客户方进行深入沟通,确保初始化数据的准确。

4.3 系统培训

如项目实施需要对客户方进行系统的使用培训,需要实施人员根据系统的实际情况,与公司以及客户方相关人员进行协调沟通,明确客户方的培训要求、参加培训的人员组成、培训的目的、时间地点安排等。确定公司培训人员,督促培训人员做好培训准备并做好协调工作。

5 项目部署

5.1 软件部署

根据项目软件系统的要求,对项目进行部署,包括软件环境的部署、数据库部署、项目程序的部署等。

5.2 系统初始化

如需对系统进行数据的初始化,实施人员需要将前阶段整理的初始化数据导入系统,导入完毕后,及时核查数据准确性,有问题及时处理。

5.3 系统试运行

软件系统投入运行,进行综合测试,包括:测试硬件环境的稳定性,测试软件系统的稳定性,测试网络环境的稳定性,测试业务数据的准确性等。

5.4 问题及时沟通反馈

实施人员在整个实施过程中遇到的问题,及时与公司以及客户方进行沟通。针对软件稳定性或者以及软件缺陷方面的问题需要及时与公司相关开发人员进行沟通解决。 对系统的实施情况及时与客户方进行沟通和反馈,以达到项目实施的目的。

6 项目总结

6.1 编制该阶段所需要的文档

根据公司相关规定,编制在实施工作的产出物,如实施文档等。如果涉及到结项工作,需要根据项目的情况编制相关结项文档,并完成相关工作。

6.2 对该次实施工作进行总结。

对项目实施中出现的问题,实施的过程和实施中发现和改正的问题应有记录和总结,对系统现场测试的情况和出现的问题应进行记录,并记录改正情况。

相关推荐