软件工程的项目管理

软件项目管理是一项比较复杂的工作,它是为了实现项目目标,运用相关的知识、技能、方法和工具,对项目的计划、进度、质量、成本、资源等进行管理、控制或协调的活动。其涉及面广、风险大,所以加强对软件工程项目管理显得尤为重要,这样才能提升软件企业的竞争力,加快推进我国的信息化建设。

一、软件工程项目的特点

1、软件产品具有不可见性。软件是非物质的其可见性不够直接,需要专门的软件工程方法和有效的测试才能感知软件的存在。

2、软件产品的不确定性和多样性而且没有标准的软件过程。

3、大型的项目往往是一次性项目,其需求不确定、系统结构复杂、工作量大、风险大,而且应用国际先进技术较多

二、软件工程项目的管理内容

1、人员的组织与管理

在计算机软件工程项目中,对人员 的配置和安排贯穿于整个软件开发的过程中,人员的组织管理是决定软件项目是否成功的关键因素。

首先,要根据项目的工作量和需要并结合各个人员的能力、经验等因素,组成一个高效协调的的开发小组。

其次,分工协作、密切配合进行项目计划:确定项目实施范围,评估实施过程中的风险,制定项目实施的时间、成本和预算计划以及人力资源计划等。

再次,项目管理者要合理安排项目进度,监督项目进度以控制整个项目。

2、编写软件项目计划书

它是软件项目管理组的首要任务, 主要包括工作量、 成本、 开发时间的估计。 并根据估计值制定和调整项目组的工作, 详细记录了开发日程安排, 资源供需, 项目管理等各项情况。 使从事该项目的人员了解该项目的大致情况。

3、软件质量管理

软件质量管理在工程项目实施过程中决定着质量方针与责任的范畴, 质量管理主要包括三个过程:质量计划制定、质量保证和质量控制。

质量计划:是质量管理的第一过程域,它主要指依据公司的质量方针、产品描述以及质量标准和规则等制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。

质量保证:是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。

质量控制:是对阶段性的成果进行测试、验证,为质量保证提供参考依据。在软件实施项目中,质量保证对应于技术评审与过程检查,质量控制对应于软件测试等工作。

4、软件配置管理

主要内容包括:在开发者中, 标识, 控制和管理软件变更的一种管理。 配置管理的使用取决于项目规模和复杂性以及风险水平。 软件配置管理针对开发过程中人员、 工具的配置、 使用提出管理策略。及时地确定软件的配置,系统地控制软件配置的变更,保证整个软件生命周期软件配置的完整性和可追溯性。

目的:软件配置管理的目的是建立和维护在项目的整个软件生存周期中软件项目产品的完整性。

作用:在质量体系的诸多支持活动中,配置管理处在支持活动的中心位置,它记录软件项目产品的更新过程, 从而保证研发者在软件项目周期的各个阶段能够获得准确的产品配置。 对项目开展过程软件开发进行有效调控和有效预测具有重要作用。

5、组织模式

封闭式范型:以传统的控制层次组织团队。垂直通信,难以创新性的工作,适合于开发产品相似的软件。

松散式范型:松散的组织团队,团队工作依赖于团队成员个人的主动性。

开放式范型:试图以一种具有封闭式范型的控制性,又包含松散式范型的创新性的范型。良好的沟通和集体决策是它的主要特征,适合于解决复杂问题,可能会造成工作效率低。

同步式范型:依赖于问题的自然划分,组织团队成员各自解决问题的一部分,主动交流差。

项目组中每位成员都会负责各自的一部分内容,根据组织模式的不同,成员间互相交流的方式的不同,对项目的侧重点也不同。因此,现在衍生出来的比较综合有效的组织模式为混合式范型。它吸收了每种范型的优势,可以达到一个综合的高效的目标。

6、工程项目的风险管理

风险管理是使计算机软件工程项目规避风险的一项重要措施。计算机软件风险预测的准确性评估与有效防范措施的应用都利于提高软件工程的效益, 降低风险带来的经济损失, 有效保证相关利益业主的权益。风险管理包括风险的识别、估测、评价等。

计算机软件工程项目的风险管理应该注意以下几点:

第一,识别风险。 这是管理人员进行风险管理的第一步,通过识别已知和预测的风险,项目的管理者就有可能避免这些风险,并且在关键时候控制风险的发生。

第二,风险估测。计算机软件工程项目的管理人员可以从风险发生的原因和风险发生后带来的损失来估测风险。在估测时,必须明确指出风险发生带来的后果和损失。

第三,风险应对。风险应对是将已经发生的风险通过各种手段尽可能降到最低的过程。制定解决风险的措施等,对计算机软件工程项目的风险进行有效的预测与管理,能够最大程度地降低风险发生对于项目所造成的损失,也能够保证相关利益人员的的权益。

7、软件过程能力评估

软件过程能力描述了一个开发组织开发软件开发高质量软件产品的能力。现行的国际标准主要有两个:ISO9000.3和CMM。

ISO9000.3是ISO9000质量体系认证中关于计算机软件质量管理和质量保证标准部分。它从管理职责、质量体系、合同评审、设计控制、文件和资料控制、采购、顾客提供产品的控制、产品标识和可追溯性、过程控制、检验和试验、检验/测量和试验设备的控制、检验和试验状态、不合格品的控制、纠正和预防措施、搬运/贮存/包装/防护和交付、质量记录的控制、内部质量审核、培训、服务、统计系统等二十个方面对软件质量进行了要求。

CMM(能力成熟度模型)是美国卡纳基梅隆大学软件工程研究所(CMU/SEI)于1987年提出的评估和指导软件研发项目管理的一系列方法,用5个不断进化的层次来描述软件过程能力。现在CMM是2.0版本。

ISO9000和CMM的共同点是二者都强调了软件产品的质量。所不同的是,ISO9000强调的是衡量的准则,但没有告诉软件开发人员如何达到好的目标,如何避免差错。CMM则提供了一整套完善的软件研发项目管理的方法。它可告诉软件开发组织,如果要在原有的水平上提高一个等级,应该关注哪些问题,而这正是改进软件过程的工作。

CMM描述了五个级别的软件过程成熟度(初始级,可重复级,已定义级,已定量管理级,优化级),成熟度反映了软件过程能力的大小。

CMM是科学评价一个软件企业开发能力的标准,但要达到较高的级别也非常困难,根据1995年美国所做的软件产业成熟度的调查,在美国的软件产业中,CMM成熟度等级为初始级的竟占70%,为可重复级的占15%,为定义级的所占比例小于10%,为管理级的所占比例小于5%,为优化级的所占比例小于l%。而国内企业的水平就更加堪优,到目前为止,只有东软一家达到优化级,少数几家能够达到可定义级。

三、 计算机软件工程项目管理中存在的问题及解决方法

1、管理团队的协作问题

如果进行团队工作,很容易出现团队人员的专业素质各不相同,团队目标不明确,领导核心不确定,团队间交流不够等协作问题。针对这些团队问题,如何进行管理,这是一个难题。

首先团队一定要有一个强大的领导核心,引导团队成员进行软件开发工程的协作,并能确定高效的决策。不同的队员拥有不同的专业素质和专业特长,那么领导人员就可以应用不同人员的素质进行新的软件开发,同时促进团队人员的沟通,一个团队只有沟通在,才能够齐心协力一起进行新软件开发项目,将软件更快的推向市场。

2、需求分析与实际中业务存在差距的问题

一开始的软件市场需求分析总是会与实际的业务量存在差距。这一问题的出现也基于在对团队成员的现状和理想工作状态上存在差距,从而造成了需求分析与实际业务中存在的问题。

针对这一问题,软件开发项目管理团队要进行发现问题,预先分析问题,进行资料收集,最后对比进行解决问题的解决步骤。不管是提前对市场需求估计错误还是软件本身的系统存在问题,一旦发现问题及时修改。一般软件开发人员都是通过找绩效差距,从而发现需求与实际的差距问题,所以,这也就要求需求分析也要考察未来组织需求和工作说明。把软件工作设计和培训就高度结合在一起,进行问题的解决。

3、风险管理问题

单纯的进行软件的市场推广营销很容易完成资金缺损等任何有风险,损害企业利益的问题出现。很多领导人员不能正确地对待风险,对于风险的预先管理疏忽,风险管理部门设置不齐全,风险管理人员培训素质不高等问题,都有待解决。

风险管理的重点应放在风险发生前的预防,而非风险发生后的处理上。进行软件开发工程时,提高经营效率,降低成本,减少损耗,使软件开发环境安全稳定。各开发领导层要加强风险决策性的考量,认真做决策,解决软件开发的风险管理问题。

posted @ 2016-12-07 20:56  1406卜令军  阅读(1450)  评论(0编辑  收藏  举报