软件开发过程中的项目管理
- 格式:doc
- 大小:32.00 KB
- 文档页数:6
软件开发过程中的项目管理
随着计算机技术的快速发展,软件应用范围越来越广,软件产品的规模日益庞大,软件复杂度也越来越高。
传统“作坊式”开发模式已经不能适应大型软件的开发需要,大型软件项目必须按软件工程的开发模式,由团队共同协作完成。
如果软件开发过程中缺乏统一有效的项目管理,将造成软件成本日益增长,开发进度难以控制以及软件质量差、软件维护困难等情况。
因此,为了使软件项目能够按照预定的成本、进度、质量顺利完成,必须对软件开发过程实施项目管理,规范软件开发的过程。
一、软件项目管理的重要性
所谓项目管理就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求,实际上就是通过项目各方干系人的合作,把各种资源应用于项目,以实现项目的目标,满足项目的需求,其本质就是对时间、质量和成本的管理。
软件项目管理和其它的项目管理相比有相当的特殊性。
首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。
其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。
而实施软件项目管理的根本目的就是通过对成本、人员、进度、
质量、风险等进行分析和管理,使软件项目的整个生命周期都能在有效的控制下,按照预定的成本、进度、质量顺利完成。
因此,软件开发者开始逐渐意识到项目管理在软件开发过程中的重要性。
二、软件项目管理的内容
软件项目管理的对象是软件工程项目,它所涉及的范围覆盖了整个软件工程的过程,它贯穿于软件开发的整个过程需求分析阶段、设计阶段(概要设计和详细设计)、编码阶段、测试阶段以及运行维护阶段。
软件项目管理的内容主要包括软件项目需求管理、软件项目估算与进度管理、软件项目配置管理、软件项目风险管理、软件项目质量管理、软件项目资源管理。
2.1软件项目需求管理
许多软件项目失败的根本原因在于开发人员没有正确理解客户的真正需求。
需求管理是一种获取、组织并记录系统需求的系统化方案,它使用户和实现用户需求的软件项目之间达成共识。
需求管理的目标是:控制系统软件需求,为软件工程和管理建立基准线,使软件计划、产品和活动与软件需求保持一致。
需求管理包括需求评审、需求变更控制和需求跟踪等内容,需求管理中最基本的任务是明确需求,使开发人员和用户双方达成共识,同时建立需求跟踪能力联系链,确保所有用户需求被正确地应用,并且在需求发生变更时,能够完全地控制其影响范围,始终保持产品与需求的一致性。
因此,需求变更
控制管理,是软件项目管理的核心和关键。
实现变更管理的目标是从流程及管理上控制变更风险,做到有序变更,同时尽可能快速、顺利地进行变更,实现灵活性需求和稳定性需求之间的平衡。
2.2软件项目估算与进度管理
软件项目计划是开展软件项目活动的基础,是跟踪、监督、评审执行情况的依据。
软件项目计划的目标是提供一个能使项目管理人员对资源、成本和进度做出合理估算的框架。
软件项目计划主要包括:2.2.1确定项目范围和目标
确定项目范围和目标是制订软件开发计划的根据,它包括对功能、性能、接口和可靠性的确定。
通过项目范围管理,明确项目管理的目标与边界,它是对项目范围的定义与控制过程。
这个过程确保了项目组和项目关系人对作为项目结果的软件产品以及软件开发过程有一个共同的理解。
2.2.2工作量的估算
软件项目管理过程开始于项目的计划,估算是完成项目计划的基础,它主要包括对完成该软件项目所需的资源、成本和进度的估算。
估算具有风险性,它需要一定的经验、有用的历史信息、足够的定量数据等来完成。
估算的精确程度取决于项目的复杂度、项目的规模、项目的结构化程度以及历史信息的有效性等的影响。
估算的依据是软件的范围,包括功能、性能、限制、接口和可靠性。
软件项目估算一般采用分解技术、经验估算模型和自动估算工具
进行估算。
在估算开始之前,应对软件的功能进行评价,并对其进行适当的细化以便提供更详细的细节。
由于成本和进度的估算都与功能有关,因此常常采用功能分解的办法。
性能主要考虑包括处理和响应时间的需求。
约束条件则标识外部硬件、可用存储和其它现有系统对软件的限制。
2.2.3活动计划的编制
软件项目的进度安排主要是考虑软件开发具体工期的安排,进度安排必须根据软件项目估算的实际情况,制定切实可行的进度计划。
在软件开发的各个阶段设置里程碑,以便实现对项目进度的有效控制与检测。
进度安排通常采用甘特图或网络图描述。
制定计划的过程不仅是一个对项目逐渐了解掌握的过程,也是在进度、资源、范围之间寻求平衡的过程。
好的计划有助于在项目过程中防范各种问题的出现,保障项目顺利完成。
2.2.4资源分配管理
完成工作确定目标范围、估算工作量和编制活动计划后,应该为每项活动分配相应的资源。
在软件项目计划中,资源分配主要指人员的分配,指定了时间资源以后,应该指定人力资源。
为活动分配资源可以采用自下而上和自上而下两种不同的方法。
自下而上是先估计最小单位的活动所需要的资源,项目所需的资源则取决于所有项目活动的关键路径;自上而下则是确定完成项目所需要的总的资源,然后将时间分配给不同的活动。
这两种方法在实际中都有应用,对于软件项目,很多情况下只能采取自上而下的方式,因为大多数项目都事先确
定好了项目的交付时间。
一项工作任务是否能够完成,所需要的时间和人员是两个最主要的变量。
在一定的范围内,时间和人员是可以互换的。
即增加人员会缩短工作时间;延长时间会降低对人员的需求量。
如果已经确定了活动的完成时间,则指定相应的人员作为完成活动的责任人。
2.2.5风险管理
目前,风险管理被认为是软件项目中减少失败的一种重要手段。
当不能很确定地预测将来事情的时候,可以采用结构化风险管理来发现计划中的缺陷,并且采取行动来减少潜在问题发生的可能性和影响。
风险管理意味着危机还没有发生之前就对它进行处理。
这就提高了项目成功的机会和减少了不可避免风险所产生的后果。
项目风险管理实际上就是贯穿在项目开发过程中的一系列管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监控。
它能让风险管理者主动“攻击”风险,进行有效的风险管理。
软件项目风险管理是一种特殊的规划方式,当对软件项目有较高的期望值时,一般都要进行风险分析。
进行过大中型项目开发的人都亲身体验到许多事情可能出错,最成功的项目就是采取积极的步骤对要发生或即将发生的风险进行管理。
对任何一个软件项目,可以有最佳的期望值,但更应该要有最坏的准备,“最坏的准备”在项目管理中就是进行项目的风险分析。
2.2.6监督和控制
软件项目具有建设范围难界定、技术含量高、人员流动快、协作
性强、开发成功率低等特点,在目前国内对软件项目的监理制度尚未普及,对软件开发仍然缺乏有效控制的情况下,由企业的信息技术管理部门设立软件监督岗位,加强对软件项目的开发过程管理,就显得尤为重要。
软件监督的主要职责是在项目进行过程中,协调业务需求部门和软件开发方的关系,监控软件开发任务的执行情况,给开发人员和管理层提供反映软件过程质量的信息和数据,提高项目透明度,从而保证项目按照计划实施,实现预期目标。
所选的软件监督人员应具备3方面基本素质:具有较强的工作责任感和良好的沟通能力;熟悉业务管理流程,掌握软件开发流程、开发规范以及相关标准;具有软件开发项目的建设和管理经验,掌握项目管理知识。
监督人员除了监督职责外,还应该协调各个部门对软件进度及时调整。
为确保项目按时、按量、按质完成,督导人员必须控制任务和跟踪里程碑。
按照软件项目的开发规律,将软件开发过程分为几个重要阶段,对这几个阶段的关键事件设立里程碑进行跟踪管理。
三、总结
当然项目管理方式多种多样,根据实际项目的不同、人员的不同管理模式应做适当的调整。
适合目标项目的模式才是做好的模式,先进的管理方法在不同的项目中取得的效果是不同的,这有待于我们去研究、探索、实践和总结。