对软件项目管理的探讨

1、引言安全

随着信息技术的飞速发展,软件产品的规模也愈来愈庞大,我的单打独斗的做坊式开发方式已经愈来愈不适应发展的须要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。我公司是西安一家中型软件企业,在公司中已经实行了项目管理制度,软件项目管理是整个项目管理中的一个重要组成部分。网络

从概念上讲,软件项目管理是为了使软件项目可以按照预约的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不只仅如此,进行软件项目管理有利于将开发人员的我的开发能力转化成企业的开发能力,企业的软件开发能力越高,代表这个企业的软件生产越趋向于成熟,企业越可以稳定发展(即减少开发风险)。工具

软件开发不一样于其余产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不须要使用大量的物质资源,而主要是人力资源;而且,软件开发的产品只是程序代码和技术文件,并无其余的物质结果。基于上述特色,软件项目管理与其余项目管理相比,有很大的独特性。性能

2、软件项目管理的组织模式单元测试

软件项目能够是一个单独的开发项目,也能够与产品项目组成一个完整的软件产品项目。若是是订单开发,则成立软件项目组便可;若是是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产品项目组。测试

公司实行项目管理时,首先要成立项目管理委员会,项目管理委员会下设项目管理小组、项目评审小组和软件产品项目组。优化

一、项目管理委员会  编码

项目管理委员会是公司项目管理的最高决策机构,通常由公司总经理、副总经理组成。主要职责以下:设计

(1)依照项目管理相关制度,管理项目;调试

(2)监督项目管理相关制度的执行;

(3)对项目立项、项目撤消进行决策;

(4)任命项目管理小组组长、项目评审委员会主任、项目组组长.

二、项目管理小组

项目管理小组对项目管理委员会负责,通常由公司管理人员组成。主要职责以下:

(1)草拟项目管理的各项制度;

(2)组织项目阶段评审;

(3)保存项目过程当中的相关文件和数据;

(4)为优化项目管理提出建议。

三、项目评审小组

项目评审小组对项目管理委员会负责,可下设开发评审小组和产品评审小组,通常由公司技术专家和市场专家组成。主要职责以下:

(1)对项目可行性报告进行评审;

(2)对市场计划和阶段报告进行评审;

(3)对开发计划和阶段报告进行评审;

(4)项目结束时,对项目总结报告进行评审。

四、软件产品项目组

软件产品项目组对项目管理委员会负责,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设开发经理和产品经理。成员通常由公司技术人员和市场人员构成。主要职责是:根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工做。

3、软件项目管理的内容

从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不管是做坊式开发,仍是团队协做开发,这六个阶段都是不可缺乏的。

根据公司实际状况,公司在进行软件项目管理时,重点将软件配置管理、软件质量管理、软件风险管理及开发人员管理四方面内容导入软件开发的整个阶段。

在八十年代初,著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的七条基本原则,一样,咱们在进行软件项目管理时,也应该遵循这七条原则。它们是:

(1)用分阶段的生命周期计划严格管理;

(2)坚持进行阶段评审;

(3)实行严格的产品控制;

(4)采用现代程序设计技术;

(5)结果应可以清楚地审查;

(6)开发小组地人员应该少而精;

(7)认可不断改进软件工程实践地必要性。

4、编写《软件项目计划书》

项目组成立的第一件事是编写《软件项目计划书》,在计划书中描述开发日程安排、资源需求、项目管理等各项状况的大致内容。计划书主要向公司各相关人员发放,使他们大致了解该软件项目的状况。对于计划书的每一个内容,都应有相应具体实施手册,这些手册是供项目组相关成员使用的。

《软件项目计划书》通常应该包括下述内容:

  1.引言

  1.1计划的目的

  1.2项目的范围和目标

  1.2.1范围描述

  1.2.2主要功能

  1.2.3性能

  1.2.4管理和技术约束

  2.项目估算

  2.1使用的历史数据

  2.2使用的评估技术

  2.3工做量、成本、时间估算

  3.风险管理战略

  3.1风险识别

  3.2有关风险的讨论

  3.3风险管理计划

  3.3.1风险计划

  3.3.2风险监视

  3.3.3风险管理

  4.日程

  4.1项目工做分解结构

  4.2时限图(甘特图)

  4.3资源表

  5.项目资源

  5.1人员

  5.2硬件和软件

  5.3特别资源

  6.人员组织

  6.1组织结构

  6.2管理报告

  7.跟踪和控制机制

  7.1质量保证和控制

  7.2变化管理和控制

  8.附录

5、软件配置管理

是否进行配置管理与软件的规模有关,软件的规模越大,配置管理就显得越重要。软件配置管理简称SCM(Software Configuration Management的缩写),是在团队开发中,标识、控制和管理软件变动的一种管理。配置管理的使用取决于项目规模和复杂性以及风险水平。

一、目前软件开发中面临的问题

  。在有限的时间、资金内,要知足不断增加的软件产品质量要求;

  。开发的环境日益复杂,代码共享日益困难,需跨越的平台增多;

  。程序的规模愈来愈大;

  。软件的重用性须要提升;

  。软件的维护愈来愈困难。

二、软件配置管理应提供的功能

在ISO9000.3中,对配置管理系统的功能做了以下描述:

  。惟一地标识每一个软件项的版本;

  。标识共同构成一完整产品的特定版本的每一软件项的版本;

  。控制由两个或多个独立工做的人员同时对一给定软件项的更新;

  。控制由两个或多个独立工做的人员同时对一给定软件项的更新;

  。按要求在一个或多个位置对复杂产品的更新进行协调;

  。标识并跟踪全部的措施和更改;这些措施和更改是在从开始直到放行期间,因为更改请求或问题引发的。

三、版本管理

软件配置管理分为版本管理、问题跟踪和创建管理三个部分,其中版本管理是基础。版本管理应完成如下主要任务:

  。创建项目;

  。重构任何修订版的某一项或某一文件;

  。利用加锁技术防止覆盖;

  。当增长一个修订版时要求输入变动描述;

  。提供比较任意两个修订版的使用工具;

  。采用增量存储方式;

  。提供对修订版历史和锁定状态的报告功能;

  。提供归并功能;

  。容许在任什么时候候重构任何版本;

  。权限的设置;

  。晋升模型的创建;

  。提供各类报告。

四、配置管理软件PVCS 6.0

PVCS6.0是一套很是优秀的配置管理软件,它可以实现配置管理中的各项要求,而且能和多种流行开发平台集成,为配置管理提供了很大的方便。

6、软件质量管理

随着软件开发的规模愈来愈大,软件的质量问题显得愈来愈突出。软件质量的控制不仅仅是一个软件测试问题,在软件开发的全部阶段都应该引入质量管理。我公司除增强了国家标准"信息技术软件生存期过程"(GB/T8566--1995)的规范管理外,还积极为经过ISO 9000.3作准备。

一、软件质量保证计划

在进行软件开发前,须要有一个《软件质量保证计划》。目前较经常使用的是ANSI/IEEE STOL

730--1984,983--1986标准,包括如下内容:

  1.计划目的

  2.参考文献

  3.管理

  3.1.组织

  3.2.任务

  3.3.责任

  4.文档

  4.1.目的

  4.2.要求的软件工程文档

  4.3.其余文档

  5.标准和约定

  5.1.目的

  5.2.约定

  6.评审和审计

  6.1.目的

  6.2.评审要求

  6.2.1.软件需求的评审

  6.2.2.设计评审

  6.2.3.软件验证和确认评审

  6.2.4.功能评审

  6.2.5.物理评审

  6.2.6.内部过程评审

  6.2.7.管理评审

  7.测试

  8.问题报告和改正活动

  9.工具、技术和方法

  10.媒体控制

  11.供应者控制

  12.记录、收集、维护和保密

  13.培训

  14.风险管理

二、质量管理的基本原则

  。控制全部过程的质量;

  。过程控制的出发点是预防不合格;

  。质量管理的中心任务是创建并实施文件化的质量体系;

  。持续的质量改进;

  。有效的质量体系应知足顾客和组织内部双方的须要和利益;

  。按期评价质量体系;

  。搞好质量管理关键在于领导。

三、软件质量因素  

正确性:系统知足规格说明和用户目标的程度,即,在预约环境下能正确地完成预期功能的程度。

健壮性:在硬件发生故障、输入的数据无效或操做错误等意外环

境下,系统能作出适当响应的程度。

  效率:为了完成预约的功能,系统须要的计算资源的多少。

  完整性(安全性):对未经受权的人使用软件或数据的企图,系统能过控制(禁止)的程度。

  可用性:系统在完成预约应该完成的功能时另人满意的程度。

  风险:按预约的成本和进度把系统开发出来,而且为用户所满意的几率。

  可理解性:理解和使用该系统的容易程度。

  可维修性:诊断和改正在运行现场发现的错误所须要的工做量的大小。

  灵活性(适应性):修改或改进正在运行的系统须要的工做量的多少。

  可测试性:软件容易测试的程度。

  可移植性:把程序从一种硬件配置和(或)软件系统环境转移到另外一种配置和环境时,须要的工做量多少。有一种定量度量的方法是:用原来程序设计和调试的成本除移植时需用的费用。

  可再用性:再其余应用中该程序能够被再次使用的程度(或范围)。

  互运行性:把该系统和另外一个系统结合起来须要的工做量的多少。

四、软件评审

软件评审并非在软件开发完毕后进行评审,而是在软件开发的各个阶段都要进行评审。由于在软件开发的各个阶段均可能产生错误,若是这些错误不及时发现并纠正,会不断地扩大,最后可能致使开发的失败。下面这组数据能够清楚的看出前期的错误对后期的影响。

软件评审是至关重要的工做,也是目前国内开发最不重视的工做。

(1)评审目标

  。发现任何形式表现的软件功能、逻辑或实现方面的错误;

  。经过评审验证软件的需求;

  。保证软件按预先定义的标准表示;

  。已得到的软件是以统一的方式开发的;

  。使项目更容易管理。

(2)评审过程

  A、召开评审会议:通常应有3至5人参加,会前每一个参加者作好准备,评审会每次通常不超过2小时。

  B、会议结束使必须作出如下决策之一:接受该产品,不需作修改;因为错误严重,拒绝接受;暂时接受该产品。

  C、评审报告与记录;所提出的问题都要进行记录,在评审会结束前产生一个评审问题表,另外必须完成评审简要报告。

(3)评审准则

  。评审产品,而不是评审设计者(不能使设计者有任何压力);

  。会场要有良好的气氛;

  。创建议事日程并维持它(会议不能脱离主题);

  。限制争论与反驳(评审会不是为了解决问题,而是为了发现问题;

  。指明问题范围,而不是解决提到的问题;

  。展现记录(最好有黑板,将问题随时写在黑板上);

  。限制会议人数和坚持会前准备工做;

  。对每一个被评审的产品要尽力评审清单(帮助评审人员思考);

  。对每一个正式技术评审分配资源和时间进度表;

  。对所有评审人员进行必要的培训;

  。及早地对本身地评审作评审(对评审准则的评审)。

五、ISO9000.3软件质量认证体系

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

六、测试

软件测试是软件开发的一个重要环节,同时也是软件质量保证的一个重要环节。所谓测试就是用已知的输入在已知环境中动态地执行系统(或系统的部件)。测试通常包括单元测试、模块测试、集成测试和系统测试。若是测试结果与预期结果不一致,则极可能是发现了系统中的错误,测试过程当中将产生下述基本文档:

(1)测试计划:肯定测试范围、方法、和须要的资源等。

(2)测试过程:详细描述和每一个测试方案有关的测试步骤和数据(包括测试数据及预期的结果)。

(3)测试结果:把每次测试运行的结果纳入文档,若是运行出错,则应产生问题报告,而且必须通过调试解决所发现的问题。测试结果:把每次测试运行的结果纳入文档,若是运行出错,则应产生问题报告,而且必须通过调试解决所发现的问题。  

7、软件风险管理

软件项目管理存在着风险,若是咱们提早重视风险,而且有所防范,就能够最大限度减小风险的发生。进行风险管理是有效的手段。

一、风险的分类

根据风险内容,咱们能够将风险分为项目风险(成本提升,时间延长等)、技术风险(技术不成熟等)、商业风险(销售问题等)、战略风险(公司的经营战略发生了变化)、管理风险(公司管理人员是否成熟等)、预算风险(预算是否准确等)等。

另外,咱们还能够将风险分为已知风险(如员工离职等)、可预报风险(从以往经验得出可能有风险的)和不可预知风险。

二、风险的识别

风险识别的有效方法是创建风险项目检查表。主要涉及如下几方面检查:

  。产品规模风险检查

  。业务影响风险检查

  。与客户相关的风险检查

  。过程风险检查

  。技术风险检查

  。开发环境风险检查

  。与人员的模式和经验有关的风险检查

三、风险评估

风险评估主要从下面七个方面进行:

  。发生的可能性

  。发生的结果(影响)

  。创建一个尺度表示风险可能性(如,极罕见、罕见、普通、可能、很可能)

  。描述风险带来的后果

  。估计对产品和项目的影响

  。肯定风险评估的正确性

  。根据影响排定有限队列

另外,要对每一个风险的表现、范围、时间作出尽可能准确的判断。

四、风险的评价

对风险的评价主要依据三个因素:风险描述、风险几率和风险影响。从成本、进度及性能三个方面对风险进行评价。肯定项目的停止点,在停止点出再一次进行风险评价。

五、风险的驾驭和监控

风险的驾驭与监控主要要靠管理者的经验来实施。如,某开发人员的离职几率是0.7,离职后会对项目形成必定的影响,则该风险驾驭和监控的策略以下:

  。与在职人员协商,肯定流动缘由。

  。在项目开始前,把环节这些流动缘由的工做列入风险驾驭计划。

  。项目开始时,做好人是会流动的准备,采起一些措施确保人员一旦离开时,项目仍能继续。

  。制定文档标准,并创建一种机制,保证文档及时产生。

  。对全部工做进行细微详审,使更多人可以按计划进度完成本身的工做。

  。对每一个关键性技术人员培养后备人员。

在考虑风险成本以后,决定是否采用上述策略。

8、人员管理

一、对项目经理的要求

  。可以使小组每一个成员都能发挥能力

  。有必定的组织能力

  。可以使小组美味成员有成就感

  。有提出解决问题方案的能力

  。对问题的理解有必定的深度

  。要能让成员知道软件质量的重要性

二、人员的通信方式

  (1)正式非我的方式,如正式会议等;

  (2)正式我的之间交流,如成员之间的正式讨论等(通常不造成决议);

  (3)非正式我的之间交流,如我的之间的自由交流等;

  (4)电子通信,如E-MAIL(电子邮件)、BBS(电子公告板系统)等;

  (5)成员网络,如成员与小组以外或公司以外有经验的相关人员进行交流;

在实践中发现,(5)的通信效率最高,其次是(1)。

人力资源管理中的风险管理

在进行人力资源管理时,咱们每每重视招聘、培训、考评、薪资等各个具体内容的操做,而忽视了其中的风险管理问题。其实,每一个企业在人事管理中均可能遇到风险,如招聘失败、新政策引发员工不满、技术骨干忽然离职等等,这些事件会影响公司的正常运转,甚至会对公司形成致命的打击。如何防范这些风险的发生,是咱们应该研究的问题。特别是高新技术企业,因为对人的依赖更大,因此更须要重视人力资源管理中的风险管理

相关文章
相关标签/搜索