我是一支君子兰,离开生我养我的土壤,就会慢慢枯萎!

有关项目管理

上一篇 / 下一篇  2008-01-10 16:21:15

项目管理

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动,从而以最合理、最有效、最经济的手段保证软件开发项目的成功完成。在软件开发中,项目管理起着重要的作用,一方面是提高质量,降低成本,另一方面,也是更重要的一点,它是软件工程化开发的前提。进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即降低开发风险)。项目管理的质量与软件产品的质量有着直接的对应关系。因此,提高项目管理的能力对于软件组织软件生产力的提高是最为重要的。对软件开发的各个阶段进行管理,增强对软件开发的控制能力,提高软件开发质量,这是软件项目管理的根本目的。软件的质量高低取决于其是否符合包括功能性、可靠性、易用性、效率、可维护性、可移植性等在内的六个方面的要求。而要达到这六个方面质量要求,就必须对软件开发过程中各个环节进行全过程的项目管理,从需求分析、设计、编码、测试到上线验收进行控制。根据软件工程的生命周期,软件项目可分为项目立项、启动、需求分析、系统设计、系统开发、系统测试、系统上线、项目验收和上线后评估等9个阶段进行。加强软件项目管理,就是以软件工程的各个环节为管理主线,将动态项目管理贯穿其中,通过对软件开发的项目范围、项目进度、项目质量、项目沟通、人力资源、项目成本六大核心要素的集成管理,实现软件开发管理效能的最大化,从而大大提高软件的开发质量。

一、项目管理的组织

项目管理的组织主要对一个项目的研发队伍的确立,主要是项目经理和研发组成员的确定。项目经理作为项目工程建设的总指挥,肩负着保证工程项目质量的重任,必须要以质量立信誉,以管理求效益,强化施工现场管理。为此,项目经理的要求不光能够使小组每个成员都能发挥能力、有一定的组织能力、有提出解决问题方案的能力、对问题的理解有一定的深度、要能让成员知道软件质量的重要性,还要能对本项目有相当的经验和熟练程度,能够对本项目进行系统分析、系统设计、系统实施,制定项目的计划和管理制度,有效控制项目的实施,降低项目研发周期,提高项目产品质量的能力。小组成员要求具有团队协作精神,与本项目相关的技能和开发经验。合理的配置人员,根据项目的工作量、所需要的专业技能,再参考各个人员的能力、性格、经验,组织一个高效、和谐的开发小组,是影响对软件项目质量的决定性因素。

二、项目计划

软件项目计划是一个软件项目进入系统实施的启动阶段,主要进行的工作包括:确定详细的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、人力资源计划等。对于一个项目管理者(项目经理),他要根据系统工程的方法并结合项目的总进度要求,为系统开发制定一份工作计划,即制定出具体的工作内容与要求,落实到具体人员,限定完成时间的行动方案,并对计划的落实进行组织、监督与控制。为此,项目管理者必须制定一个足够详细的进度表,以便监督项目进度并控制整个项目。常用的制定进度计划的工具主要有甘特图(Gantt)和工程网络计划法两种。Gantt图具有悠久历史、直观简明、容易学习、容易绘制等优点,但是,它不能明显地表示各项任务彼此间的依赖关系,也不能明显地表示关键路径和关键任务,进度计划中的关键部分不明确。因此,在管理大型软件项目时,仅用Gantt图是不够的,不仅难于做出既节省资源又保证进度的计划,而且还容易发生差错。工程网络计划法不仅能描绘任务分解情况及每项作业的开始时间和结束时间,而且还能清楚地表示各个作业彼此间的依赖关系。从工程网络图中容易识别出关键路径和关键任务。因此,工程网络图是制定进度计划的强有力的工具。通常,联合使用Gantt图和工程网络计划法这两种工具来制定和管理进度计划,使它们互相补充、取长补短。

三、项目控制

对于软件开发项目而言,控制是十分重要的管理活动,是项目能够按时完成、软件产品的质量保证(SQA)的重要环节。在实际开发过程中,有一些特殊原因,导致项目开发不能如期按照项目计划进度完成,主要原因由:

1.各项开发活动的工作量是任经验估计的,实际工作量与预计数发生较大的差别。
2.
开发过程中产生不少事先未估计到的活动,使工作量增加。
3.
由于需求或其他情况发生变化,使已完成的成果要作局部修改,造成返工。
4.
突发事性导致人员变动或环境变化。

上述导致计划不能如期进行的原因往往是不可避免的,任何一个原因发生都将造成项目开发的延误,甚至影响产品的质量。针对的不同的原因,可能采取的解决措施有:

1.对开发中的不确定性问题,事先在工作计划中留有一定的宽裕度,工作步骤的工作量取上限,预设机动时间。
   2
.开发过程中经常性地与用户交换意见,随时掌握企业的发展动向,及时地明确遗留的不确定的问题,以减少返工现象。
   3
.当关键路线上的活动延误时,及时调配现有开发人员,或增加开发人员或加班加点,或集中人力予以重点解决。
   4
.在上述措施难以有效解决延误问题时,对原定计划作适当的调整。

四、运行管理

运行管理是使项目系统在其生命周期内保持良好的可运行状态,保证其功能的发挥。主要围绕以下三个方面的任务展开:

1.系统测试

系统测试是对系统进行全面的测试,应在测试环境中进行,以确保系统的功能和技术设计满足企业的业务需求,并能正常运行。在测试环境中,项目组根据需要进行单元测试、集成测试、系统测试和验收测试等,记录测试结果并由相关测试人签字确认,编制相应的测试报告。对于未通过测试的内容,项目组应查找失败的原因,并修改相应程序或设置,重新进行测试。除了进行充分的系统功能测试,测试应包含与内部控制相关的测试内容,如系统认证和授权、交易完整性及数据真实、完整性的有关功能。提交测试报告、用户确认签字。项目组撰写测试报告,将测试报告提交给各相关用户,用户应在测试报告上签字确认。 

2.日常运行管理

日常运行的管理是系统投运后最主要的与最频繁的工作,其目的是使系统能始终保持良好的可运行状态。系统的日常运行管理具体有系统运行情况的记录、系统运行的日常维护及系统的适应性维护。系统运行情况记录主要是记录系统的运行过程中的功能使用情况。系统运行的日常维护主要是对一个故障的诊断与排除以及对突发事件的解决。系统的适应性维护是对系统在运行过程中所暴露出的问题给予及时解决,同时为适应环境的变化及克服本身存在的不足对系统作调整、修改与扩充。系统的适应性维护是一项长期的有计划的工作,并以系统运行情况记录与日常维护记录为基础,其主要内容有:系统发展规划的研究、制定与调整,系统缺陷的记录、分析与解决方案的设计,系统结构的调整、更新与扩充,系统功能的增设、修改,系统数据结构的调整与添置,系统维护的记录及维护手册的修订等。

3.系统文档的管理

软件系统实际上由系统实体与此对应的文档两大部分组成,系统的开发要以文档的描述为依据,系统实体的运行与维护更需要文档来支持。没有系统文档,系统的开发、运行和维护将处于一种混沌状态,严重影响系统的质量,甚至导致系统开发或运行的失败,特别当系统开发人员发生变动时,系统文档显的尤为重要。

具体文档要视公司视项目而定。有些公司嫌文档管理费时费力耗财而不做这方面的工作,是不可取的。

工程进度表

从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段,并在各个阶段都有相关书面的文档输出。不论是作坊式开发,还是团队协作开发,这六个阶段都是不可缺少的。可以根据公司实际情况,公司在进行软件项目管理时,可以有重点进行管理或加入、删除一些不必要的内容。


TAG:

 

评分:0

我来说两句

Open Toolbar