龙源期刊网 http://www.qikan.com.cn
如何做好软件项目管理
作者:吴中岱
来源:《硅谷》2010年第16期
摘要: 软件项目管理通过应用知识,技能,工具和技术来指导软件项目开发以满足软件项目的需求。
关键词: 软件项目管理;需求管理;系统设计
中图分类号:TP3文献标识码:A文章编号:1671-7597(2010)0820127-02
1 什么是软件项目管理
软件项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。 2 软件项目管理的特点
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,合理地配置和使用各种资源,而对人员、进度、质量、风险等进行分析和管理,以达到既定目标的过程。软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。软件项目管理更强调项目经理的作用和团队的合作精神,更加关注人的因素,关注客户服务,着重于提高软件项目研发的效率和质量。
3 做好软件项目前期管理 3.1 项目计划管理
在软件项目管理过程中一个关键的活动是制定项目计划,它是软件开发工作的第一步。项目计划的目标是为项目负责人提供一个框架,使之能合理地估算软件项目开发所需的资源、经费和开发进度,并控制软件项目开发过程按此计划进行。主要进行的工作包括:确定详细的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、人力资源计划等。 3.2 项目需求管理
龙源期刊网 http://www.qikan.com.cn
需求管理是每个软件开发的基础,是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法,可用于获取、组织和记录系统需求并使客户和项目团队在系统需求变更上保持一致。软件需求主要包括业务需求、用户需求、功能需求和非功能需求、软件需求规格说明。需求分析包括提炼、分析和仔细审查已收集到的需求,为最终用户所看到的系统建立一个概念模型以确保所有的风险承担者都明白其含义并找出其中的错误、遗漏或其他不足的地方。在项目需求分析阶段,双方必须全面地尽可能细致地讨论项目的应用范围、业务流程、性能要求、操作界面要求、与其他软件的接口要求,以及对项目进行评估的各种评价标准。 3.3 项目团队管理
建立项目团队是项目开发过程的开始,一切工作都是由项目团队的成员完成的在整个项目的运行过程中,需要很多不同的角色参与到项目中,完成不同阶段的任务。所以在建立项目团队的过程中要把握好人员角色的划分,尽量发挥项目成员特长是项目经理进行工作分配要考虑的问题。各项目成员的知识技能评估,个性特点分析,优点和缺点是要事先分析和考虑的内容。团队的管理是项目管理的关键,也是项目成功的基本保障。 3.4 生命周期模型
生命周期模型指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。目前软件开发实践中使用的各种生命周期模型,主要如下:
1)瀑布模型。需要对每一个阶段进行验证,瀑布模型要求每一个阶段都有明确的文档产出,对于严格的瀑布模型每一个阶段都不应该重叠,而应该是在评审通过,相关的产出物都已经基线后才能够进入到下一个阶段。采用瀑布模型可以保证系统在整体上的充分把握,使系统具备良好的扩展性和可维护性。但对于前期需求不明确,而又很难短时间明确清楚的项目则很难很好的利用瀑布模型。
2)螺旋模型。首先螺旋模型是遵从瀑布模型的。即需求->架构->设计->开发->测试的路线。螺旋模型最大的价值在于整个开发过程是迭代和风险驱动的。通过将瀑布模型的多个阶段转化到多个迭代过程中,以减少项目的风险。螺旋模型实现了随着项目成本投入不断增加,风险逐渐减小。以帮我我们加强项目的管理和跟踪,在每次迭代结束后都需要对产出物进行评估和验证,当发现无法继续进行下去时可以及早的终止项目。
3)增量和迭代模型。增量迭代是RUP统一过程常采用的软件开发生命周期模型。就对风险的消除上,增量和迭代模型都能够很好的控制前期的风险并解决。但迭代模型在这方面更有优势。迭代模型更多的可以从总体方面去系统的思考问题,从最早就可以给出相对完善的框架或原型,后期的每次迭代都是针对上次迭代的逐步精化。 3.5 项目风险管理
龙源期刊网 http://www.qikan.com.cn
风险管理贯穿项目管理的各个阶段和各个领域,是项目管理中的重点和难点。软件项目风险管理是指对在软件开发过程中所遇到的预算和进度等方面的问题进行分析,寻求风险应对方法,做好风险管理计划。通过缓和或预知等手段来减轻风险,降低风险发生的可能性或减缓风险带来的不利后果。
针对软件项目中的风险管理问题,主要风险管理模型如下:
1)SEI的连续风险管理模型(CRM)。SEICRM模型的风险管理原则是不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:风险识别、分析、计划、跟踪、控制。
2)BarryBoehm模型。Boehm模型的思想核心是:10大风险因素列表。针对每个风险因素,都给出了一系列的风险管理策略。在实际操作时,Boehm以10大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这10大风险因素的解决情况进行总结,产生新的10大风险因素表,依此类推。
3)软件工程风险模型(SERIM)。SERIM模型要求从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等。它还提供了一些指标和模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力。 4 项目过程管理 4.1 软件设计
软件设计采用自顶向下、逐次功能展开的设计方法,首先完成总体设计,然后完成各有机组成部分的设计。
根据工作性质和内容的不同,软件设计分为概要设计和详细设计。概要设计实现软件的总体设计、模块划分、用户界面设计、数据库设计等等;详细设计则根据概要设计所做的模块划分,实现各模块的算法设计,实现用户界面设计、数据结构设计的细化,等等。
概要设计是详细设计的基础,必须在详细设计之前完成,概要设计经复查确认后才可以开始详细设计。概要设计,必须完成概要设计文档,包括系统的总体设计文档、以及各个模块的概要设计文档。每个模块的设计文档都应该独立成册。
详细设计必须遵循概要设计来进行。详细设计方案的更改,不得影响到概要设计方案;如果需要更改概要设计,必须经过项目经理的同意。详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明。 4.2 设计评审