摘 要:项目管理是当今最受关注的管理思潮,拥有先进的管理思想和一整套实用技术。当前,随着世博会、区域经济升温和企业组织扁平化、柔性化、流程改造等热潮涌动,商机纷至沓来,项目已经成为最常见的业务载体。项目管理措施规划了软件开发项目从“初始”至“交付”的所有阶段。本文主要对项目管理以及软件项目管理开发进行了分析。
关键词:项目管理;软件开发
一、软件项目管理
软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进行,当软件工程过程最后结束时才终止.。
软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用 。软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。庞大的系统如果没有很好的管理,其软件质量是难以想象的。
软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估等。 这几个方面都是贯穿、交织于整个软件开发过程中的,其中人员的组织与管理把注意力集中在项目组人员的构成、优化;软件度量把关注用量化的方法评测软件开发中的费用、生产率、进度和产品质量等要素是否符合期望值,包括过程度量和产品度量两个方面;软件项目计划主要包括工作量、成本、开发时间的估计,并根据估计值制定和调整项目组的工作;风险管理预测未来可能出现的各种危害到软件产品质量的潜在因素并由此采取措施进行预防;质量保证是保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动;软件过程能力评估是对软件开发能力的高低进行衡量。
二、软件项目管理开发
(一)初始阶段
“初始”阶段的首要目标是:在关心系统开发项目目标的风险承担了人之间取得共识。在软件项目开发过程的这一阶段,系统描述必然会空泛而笼统,因此经济评估也是极其不精确的。这里解决的是,所提议的系统是否承诺了足够的潜在收益,使人们能投入必需的额外资源以完成“细化”阶段。
“初始”阶段生成的最重要的工件有:一份展望文档;一个用例模型;一份系统结构描述;一份初始业务案例;一份风险评估;以及一份项目计划。另外,“初始”阶段也许会生成一个概念证明式的原型,以此向用户或客户展示这套系统能够支持他们的业务目标。原型是对完工系统形态的一种部分实现或模拟。有些情况下,使用原型有助于风险或可行性的评估。
“需求”和“环境”这两项措施在“初始”阶段后期使用的比率比较大;“项目管理”和“环境”这两项措施在整个“初始”阶段使用率都很大。
(二)细化阶段
“细化”阶段的目标是“定义一套能当作系统后续开发基础的系统体系结构,并生成一份更可靠的项目计划和成本估算。
在实践中,要开发一份可靠的成本估算,需要根据经验对系统细节做出假设,或者会涉及到系统某种程度上的部分实现。这里也许存在着重大的、能导致改变进度或成本的风险。这份估算应带有一份风险清单,以便必要时量化这些风险的影响。
“细化”阶段还有着具有的分析任务——构造出用例以便描述系统体系结构所支持的 用户需求。该阶段还囊括了系统最重要部分的设计和初始实现。
“细化”阶段生产的主要工件都旨在可实现性,对用例模型进行拓展。所提议的系统体系结构会发展成一套可执行的原型。对最关键的用例进行编程。展望文档、业务案例、风险评估及项目计划等都会根据“细化”阶段所学到的东西进行修订。还会准备好一份用于“构造”阶段的详细计划。需要的话,也会生成一份初步用户手册。
结果是对完工开发的作用域和基础取得共识。此后,对系统作用域的任何修改都需要得到正式的批准。
“需求”、“设计”、“实现”、“测试”、“项目管理”以及“环境”这些措施在此阶段使用率比较高。
(三)构造阶段
在“细化”阶段之后,接着就要构造系统高“构造”阶段会生成一套可运作的系统,以便在用户环境或客户环境中进行测试。在构造期间,开发的进展是迭代式的、增量式的,这一阶段在效果上就是软件制造过程。所有需要的特征都会被开发出来,并被集成到这套软件产品中。重点是对该过程的管理和控制,这样才能优化成本、进度以及质量。
构造计算机信息系统涉及到编码、测试及调试各个程序单元。这些单元会被逐一进行编码、测试和调试。接着再增量合并它们。即每次只向前一合并集添加一个程序单元,接着会测试该单元与系统其余部分的接口。如果存在问题,则会定位在这个新增加的程序单元上或者那些接口上。如此继续下去,直到测试完整个的系统。
(四)交付
“交付”阶段的目标是将软件交到用户手上。这时会发布产品用于测试。开发人员递交了已文档化、已测试的软件,用户在接受了这些软件之后,还必须将其集成到用户组织中。这需要培训用户、递交并安装所有额外软件、转化或创建系统所需的文件或数据库,也许还要并行运行新、旧两套系统一段时期。在“交付”阶段的末尾将有一次实现后评审,这次评审也许会对系统做出修改和细微改进。
“测试”、“部署”、“配置和变更管理”以及“项目管理”在此阶段的使用率比较高。
参考外文献:
[1] 周慧. 论软件项目管理[J]. 现代电子技术, 2003, (18) .
[2] 石庆喜,刘建国. 软件项目管理研究[J]. 重庆工商大学学报(自然科学版), 2004, (05) .
[3] 郭研. 软件项目管理[J]. 物流科技, 2005, (02) .