软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件项目管理和其他的项目管理相比有相当的特殊性,因为软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。 一般来说,软件项目管理的内容主要包括以下几个方面: 1. 人员的组织与管理 2. 软件度量 3. 软件项目计划 4. 风险管理 5. 沟通能力 6. 软件质量保证 7. 软件过程能力评估 8. 软件配置管理 以下就几个常用方面展开讨论: 人员的组织与管理 软件项目的管理是从人员的组织和管理开始的,人员也是软件风险管理的一个主要方面。 项目组织结构的设计首先应该一些特定的要求。这需要考虑管理的层次和管理幅度,专业化程度,集权程度,分工形式,关键职能,规范化程度,职业化程度,以及人员结构。必须具有以下成员角色: 软件项目管理 项目经理—领导。工作清单中的所有工作都是项目领导的责任。 项目成员---责任人。要合理的配置人员,根据项目的工作量、所需要的专 业技能,再参考各个人员的能力、性格、经验,组织一个高效、和谐的开发小组。 一般的,项目成员可以分成5类人:第一类人--有能力且希望做,第二类人—有能力且准备去做,第三类人—有能力但不准备去做,第四类人—通过培训或指导后有能力做,第五类人—没有能力。应该尽量的增多第一类的人的比例。 软件项目计划 项目范围管理包括:立项,项目范围计划编制,范围定义,范围核实,范围变更控制。 工作定义 定义活动依赖关系(串行性,并行性,集合性) 给要做的工作列清单: 制定检查清单 确定工作 给要做的工作列清单 制定检查清单 ●需要的资源(设备、产品、服务、工具) ●需要的技能以及他们能否通过雇佣或者培训得到 ●有明确的、可以明显识别的里程碑清单 ●有时间量程、成本和预算---显示怎样实现你估计的目标 ●已经明确地陈述了你所做的假设 ●已经明确地陈述了不在你直接控制范围内的事情之间的相关性 ●已经明确了每件工作的责任人 ●已经考虑了风险很高的领域 风险管理 风险管理主要过程包括:风险识别,风险量化,风险应对措施设计,风险应对措施控制。 风险识别----包含确定哪种风险可能影响一个项目,并将各风险的特征归档;风险识别检查表,根据项目的特性及项目所生产产品的特性来识别风险;通过项目管理知识领域,比如范围、时间、成本和质量等识别风险。例如:计划不充分;错误的资源配置;质量要求的定义不完全;范围控制不当;估算错误;忽略了风险;差劲的冲突管理;计划和沟通比较粗心等。 风险量化----涉及对发现或发现的相互作用的评估,以评价项目可能结构的范围。量化风险的工具和技术包括:预期货币价值、风险因子计算、PERT估计、模拟和专家判断。风险量化过程包括:估计各风险发生的概率、估计它对项目 的影响、降低各风险可能采取的战略。项目经理可以按优先顺序排列风险。 应对风险的3项基本措施:规避--风险规避涉及根除某一具体的威胁或风险,通常采用根除其原因的方法;接受--风险接受指如果风险发生,接受其带来的后果;减轻--风险减轻涉及通过减少风险事件发生的概率来减轻风险事件的影响。 执行风险管理过程和风险管理计划,以应对风险事件,执行风险管理过程,确保风险意识是一项在整个项目过程中、由全部项目团队成员执行的不间断的活动 实施单独的风险管理计划包括:根据规定的里程碑监督风险、制定风险决策与风险减轻策略。 风险储备:为偏差留出余量,有回旋余地,明确提出的或隐含的风险储备,占项目预算或是项目周期的15%,隐藏风险储备,寻找风险储备,功能性、交付日期、工作量(或成本)、质量。 可在以下几个层次上做这项工作: 1.以项目的整体的基础上增加风险储备,始终贯穿项目 2.以项目每个阶段的基础上增加风险储备(主要里程碑) 3.为关键路径上增加风险储备 4.在交付时间上增加风险储备 软件质量保证 软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。 软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。 软件配置管理 软件配置管理,贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。软件配置管理无论是对于软件企业管理人员还是研发人员都着重要的意义。软件配置管理可 以概括为以下几个方面内容。包括: 软件配置管理计划 软件配置标识 变更管理 版本管理 配置审核 配置状态报告 软件配置管理工具 日常管理中,软件项目管理人员可以执行以下步骤以实现有效的管理: 第1步:可视化目标、关注结果 第2步:给要做的工作列清单 第3步:必须有一个领导 第4步:分工明确,责任到人 第5步:管理期望值和风险储备 第6步:采用恰当的领导风格 第7步:了解正在发生的事情 第8步:告诉人们正在发生的事情 第9步:重复前面的8个活动 第10步:项目结果 2006年3月至5月,笔者所在的Union Team 软件开发小组尝试开发一个基于JAVA语言的C/S结构的图书馆管理系统,项目未能按期完成,以下是从项目组织者的角度谈谈失误之处。 项目开始前,应该对开发人员组织相关技术的培训。 开发人员必须保证良好的精神状态和足够的工作时间,并且工作地点要集中。 项目组长要激励成员的工作激情,提供必要的工作指导,控制项目开发进度。 项目版本控制应该制定合理的版本控制计划并采用功能完善,性能稳定的版本控制软件。 项目组织结构设计应该考虑项目环境,项目技术,项目规模,项目生命周 期和人员素质等方面的要求;项目人员合理的技术分工和层次的搭配是项目成功实施的必要条件之一。 任何时候组织中的任何人都要目标明确;任务分解要权责结合。 项目管理和项目技术主管应该由不同的组织人员来担任。 从本次实践中我们也获得了一些宝贵的经验: 项目计划要制定的符合实际情况,并在项目过程中根据实际需要及时调整计划。 项目小组应该坚持每周例会,总结评价上阶段工作,讨论协调下阶段工作。 项目难度较大时有必要改为每日例会,以便于及时沟通与协作。 项目管理应该建立信息沟通平台;建立强大的技术支持库。 在实践中改良工作流程。 快速原型化方法有助于项目成员统一认识,明确产品结构,功能;在产品原型上开发功能完善的最终产品难度较小。
信息发布:广州名易软件有限公司 http://www.myidp.net
|