软件项目管理综述

上传人:jiups****uk12 文档编号:90553451 上传时间:2019-06-13 格式:DOC 页数:6 大小:37.50KB
返回 下载 相关 举报
软件项目管理综述_第1页
第1页 / 共6页
软件项目管理综述_第2页
第2页 / 共6页
软件项目管理综述_第3页
第3页 / 共6页
软件项目管理综述_第4页
第4页 / 共6页
软件项目管理综述_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《软件项目管理综述》由会员分享,可在线阅读,更多相关《软件项目管理综述(6页珍藏版)》请在金锄头文库上搜索。

1、软件项目管理综述一. 引言 随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。我公司是西安一家中型软件企业,在公司中已经实行了项目管理制度,软件项目管理是整个项目管理中的一个重要组成部分。 从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软

2、件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。 软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性。 二. 什么是软件项目管理软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期即从分析,设计,编码到测试,维护全过程都能在管理者的控制之下

3、,以预定成本按期,按质的完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则,方法,同时避免前人的失误。软件项目管理的提出是在70年代中期的美国,当时美国国防部专门研究了软件开发不能按时提交,预算超支和质量达不到用户要求的原因,结果发现70%的项目是因为管理不善引起的,而非技术原因。于是软件开发者开始逐渐重视起软件开发中的各项管理。到了90年代中期,软件研发项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有10的项目能够在预定的费用和进度下交付。1995年,据统计,美国共取消了810亿美元的商业软件项

4、目,其中31的项目未做完就被取消,53的软件项目进度通常要延长50%的时间,只有9的软件项目能够及时交付并且费用也控制在预算之内。软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。Windows这样的操作系统有1500万行以上的代码,同时有数千个程序员在进行开发,项目经理都有上百个。这样庞大的系统如果没有很好的管理,其软件质量是难以想象的。软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过

5、程能力评估,软件配置管理等。这几个方面都是贯穿,交织于整个软件开发过程中的,其中人员的组织与管理把注意力集中在项目组人员的构成,优化;软件度量把关注用量化的方法评测软件开发中的费用,生产率,进度和产品质量等要素是否符合期望值,包括过程度量和产品度量两个方面;软件项目计划主要包括工作量,成本,开发时间的估计,并根据估计值制定和调整项目组的工作;风险管理预测未来可能出现的各种危害到软件产品质量的潜在因素并由此采取措施进行预防;质量保证是保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动;软件过程能力评估是对软件开发能力的高低进行衡量;软件配置管理针对开发过程中人员,工具的配置,使用

6、提出管理策略。因为我对人员管理和软件过程能力比较有兴趣,下面就详细的对这两方面展开讨论。三、软件项目管理的组织模式 软件项目可以是一个单独的开发项目,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发,则成立软件项目组即可;如果是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产品项目组。 公司实行项目管理时,首先要成立项目管理委员会,项目管理委员会下设项目管理小组、项目评审小组和软件产品项目组。 3.1、项目管理委员会 项目管理委员会是公司项目管理的最高决策机构,一般由公司总经理、副总经理组成。主要职责如下: (1)依照项目管理相关制度,管理项目; (2)监督项目

7、管理相关制度的执行; (3)对项目立项、项目撤消进行决策; (4)任命项目管理小组组长、项目评审委员会主任、项目组组长. 3.2、项目管理小组 项目管理小组对项目管理委员会负责,一般由公司管理人员组成。主要职责如下: (1)草拟项目管理的各项制度; (2)组织项目阶段评审; (3)保存项目过程中的相关文件和数据; (4)为优化项目管理提出建议。 3.3、项目评审小组 项目评审小组对项目管理委员会负责,可下设开发评审小组和产品评审小组,一般由公司技术专家和市场专家组成。主要职责如下: (1)对项目可行性报告进行评审; (2)对市场计划和阶段报告进行评审; (3)对开发计划和阶段报告进行评审; (

8、4)项目结束时,对项目总结报告进行评审。 3.4、软件产品项目组 软件产品项目组对项目管理委员会负责,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设开发经理和产品经理。成员一般由公司技术人员和市场人员构成。主要职责是:根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工作。 四、软件项目管理的内容 从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不论是作坊式开发,还是团队协作开发,这六个阶段都是不可缺少的。 根据公司实际情况,公司在进行软件项目管理时,重点将软件配置管理、软件质量管理、软件风险管

9、理及开发人员管理四方面内容导入软件开发的整个阶段。 在八十年代初,著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的七条基本原则,同样,我们在进行软件项目管理时,也应该遵循这七条原则。它们是: (1)用分阶段的生命周期计划严格管理; (2)坚持进行阶段评审; (3)实行严格的产品控制; (4)采用现代程序设计技术; (5)结果应能够清楚地审查; (6)开发小组地人员应该少而精; (7)承认不断改进软件工程实践地必要性。 五、编写软件项目计划书 项目组成立的第一件事是编写软件项目计划书,在计划书中描述开发日程安排、资源需求、项目管理等各项情况的大体内容。计划书主要向公司各相关人员发放,

10、使他们大体了解该软件项目的情况。对于计划书的每个内容,都应有相应具体实施手册,这些手册是供项目组相关成员使用的。 六、软件配置管理 是否进行配置管理与软件的规模有关,软件的规模越大,配置管理就显得越重要。软件配置管理简称SCM(Software Configuration Management的缩写),是在团队开发中,标识、控制和管理软件变更的一种管理。配置管理的使用取决于项目规模和复杂性以及风险水平。 6.1、目前软件开发中面临的问题: 在有限的时间、资金内,要满足不断增长的软件产品质量要求;开发的环境日益复杂,代码共享日益困难,需跨越的平台增多;程序的规模越来越大;软件的重用性需要提高;软

11、件的维护越来越困难。 6.2、软件配置管理应提供的功能:在ISO9000.3中,对配置管理系统的功能作了如下描述: 唯一地标识每个软件项的版本;标识共同构成一完整产品的特定版本的每一软件项的版本;控制由两个或多个独立工作的人员同时对一给定软件项的更新;控制由两个或多个独立工作的人员同时对一给定软件项的更新;按要求在一个或多个位置对复杂产品的更新进行协调;标识并跟踪所有的措施和更改;这些措施和更改是在从开始直到放行期间,由于更改请求或问题引起的。 6.3、版本管理 软件配置管理分为版本管理、问题跟踪和建立管理三个部分,其中版本管理是基础 版本管理应完成以下主要任务: 建立项目; 重构任何修订版的

12、某一项或某一文件; 利用加锁技术防止覆盖; 当增加一个修订版时要求输入变更描述; 提供比较任意两个修订版的使用工具; 采用增量存储方式; 提供对修订版历史和锁定状态的报告功能; 提供归并功能; 允许在任何时候重构任何版本; 权限的设置; 晋升模型的建立; 提供各种报告。 6.4、配置管理软件PVCS 6.0 PVCS6.0是一套非常优秀的配置管理软件,它能够实现配置管理中的各项要求,并 且能和多种流行开发平台集成,为配置管理提供了很大的方便。 七. 人员组织与管理软件开发中的开发人员是最大的资源。对人员的配置,调度安排贯穿整个软件过程,人员的组织管理是否得当,是影响对软件项目质量的决定性因素。

13、首先在软件开发的一开始,要合理的配置人员,根据项目的工作量,所需要的专业技能,再参考各个人员的能力,性格,经验,组织一个高效,和谐的开发小组。一般来说,一个开发小组人数在8到10人之间最为合适,如果项目规模很大,可以采取层级式结构,配置若干个这样的开发小组。在选择人员的问题上,要结合实际情况来决定是否选入一个开发组员。并不是一群高水平的程序员在一起就一定可以组成一个成功的小组。作为考察标准,技术水平,与本项目相关的技能和开发经验,以及团队工作能力都是很重要的因素。一个一天能写一万行代码但却不能与同事沟通融洽的程序员未必适合一个对组员之间通讯要求很高的项目。还应该考虑分工的需要,合理配置各个专项

14、的人员比例。例如一个网站开发项目,小组中有页面美工,后台服务程序,数据库几个部分,应该合理的组织各项工作的人员配比。对于一个中型倒购网站,对数据采集量要求较高,一个人员配比方案可以是2个美工,2个后台服务程序编写,3个数据采集整理人员。我觉得可以用如下公式来对候选人员能力进行评分,达到一定分数的则可以考虑进入开发组,但这个公式不包含对人员数量配比的考虑。Score=WiCi ( i =1 to 8) Ci 是对项目组人员各项能力的评估。其值含义如下Ci的取值0123含义该人此项能力很差,完全没有相关经验,或Ci不适合描述此人有一定此项能力,或曾从事过少量相关工作此项能力较好,或有较多相关项目经

15、验能力优秀,有丰富的同类项目开发经验Wi是权重值,对应Ci描述的能力在本项目中的重要性,其值含义如下Wi的取值0123含义本项目中不要求此项能力,或此项能力对目前的候选人来说都是认定满足的本项目对此项能力有一定要求,但不作为普遍要求此项能力在本项目中比较重要,要求所有人员都要达到一定的水准此项能力在本项目中非常重要,所有人员都必须达到比较好的水准对人员的各项能力Ci要求如下:C1代码编写能力,可以用单位时间内无错代码行数量进行按比例映射到Ci的取值范围进行衡量C2对新技术的适应,学习能力,即当项目需要开发人员学习新技术时,是否可以很快的进入应用阶段C3开发经验。特指从事开发的项目数量, C4相关开发经验,特指参加过的相关项目的数量C5抵受压力的能力,即是否能在高压力下完成工作C6独立工作的能力,即在缺乏同事合作,需要独立工作的情况下完成工作的能力C7合作能力,即与同伴沟通,协同完成工作的能力C8对薪水的要求在决定一个开发组的开发人员数量时,除了考虑

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号