信息技术和现代管理学知识的飞速发展和迅速普及,使得政府、企业对于IT应用的需求越来越强烈和苛刻,但是不容忽视的事实却是“软件项目的规模和复杂程度在不断增加”。对政府、企业中的软件项目管理人员来说,把项目管理的理论和方法落实到工作实践中去,是提高软件开发质量的重要手段。
精确管理,保质保量
软件质量的高低,由符合软件质量要素要求的程度来决定。软件的质量要素包括功能性、可靠性、易用性、效率、可维护性、可移植性等6个方面。软件开发过程中从需求、设计、编码、测试到上线验收的任何一个环节,都将对软件质量要素产生重要影响,因此为了开发出符合高质量的软件产品,必须加强对软件开发全过程的项目管理。
软件项目管理是按需求确定范围、按目标制定项目计划、按计划执行管理的过程。对软件开发各阶段加强项目管理的根本目的在于增强对软件开发的控制能力,提升软件开发的质量。软件项目的建设按软件工程的生命周期法可分为项目立项、启动、需求分析、系统设计、系统开发、系统测试、系统上线、项目验收和上线后评估等9个阶段进行。
加强软件项目管理,是以软件工程的各个环节为管理主线,将动态项目管理贯穿其中,通过对软件开发的项目范围、项目进度、项目质量、项目沟通、人力资源、项目成本六大核心要素的集成管理,实现软件开发管理效能的大化,从而大大提高软件开发质量。
明确需求,准确立项
软件开发项目的提出,应由迫切的业务需求来驱动。很多不成功的软件项目,往往是由信息技术部门提出,按照技术人员的思路主导开发,并理所当然地认为能够在业务部门取得良好的应用效果。这样的项目由于得不到业务部门的理解和支持,脱离业务需求,多数面临失败或半途而废的命运。
软件项目的立项,应由软件的需求单位根据自身业务的工作需要,向信息技术管理部门提出软件项目的立项建议,对立项目的、业务需求范围、技术经济指标、开发周期要求等方面做简要概述,由信息技术管理部门组织业务专家和信息技术专家组成联合专家组,进行项目立项的可行性论证。
通过专家组论证审核后,项目提出单位需要进行开题设计,进一步明确软件开发范围、技术路线、进度安排、经费预算、研究人员组成、合作队伍,并以此为基础编制完成开题设计书。信息技术管理部门组织专家组对开题设计进行论证,只有业务需求合理、技术路线可行、开发队伍落实的项目,才能通过专家组审核,进入项目启动阶段。
《需求分析说明书》是对软件开发范围的书面表达依据。由于《需求分析说明书》往往是采用软件设计的术语编写,因此常常令计算机背景知识较少的业务需求方难以理解,也很难发现需求报告中与实际需求不符之处,更难提出建设性的意见。
软件监督要对软件开发范围进行管理,首先要确定双方都能认可的《需求分析说明书》。在软件开发过程中,双方应严格按照签字确认的《需求分析说明书》中规定的业务范围进行开发。有些需求可能在项目初期很难确定,在开发过程中需要不断地加以修正,项目软件监督要及时与用户充分沟通,建立可以直接联系的渠道,共同进行需求确认,保证项目范围可控。
适时督导,掌控进度
软件开发项目具有建设范围难界定、技术含量高、人员流动快、协作性强、开发成功率低等特点,在目前国内对软件项目的监理制度尚未普及,对软件开发仍然缺乏有效控制的情况下,由企业的信息技术管理部门设立软件监督岗位,加强对软件项目的开发过程管理,显得尤为重要。
软件监督的主要职责是在项目进行过程中,协调业务需求部门和软件开发方的关系,监控软件开发任务的执行情况,给开发人员和管理层提供反映软件过程质量的信息和数据,提高项目透明度,从而保证项目按照计划实施,实现预期目标。
所选的软件监督人员应具备3方面基本素质:具有较强的工作责任感和良好的沟通能力;熟悉业务管理流程,掌握软件开发流程、开发规范以及相关标准;具有软件开发项目的建设和管理经验,掌握项目管理知识。
监督人员除了监督职责外,还应该协调各个部门对软件进度及时调整。为确保项目按时、按量、按质完成,督导人员必须控制任务和跟踪里程碑。按照软件项目的开发规律,将软件开发过程分为几个重要阶段,对这几个阶段的关键事件设立里程碑进行跟踪管理。
项目进度管理可以通过以下方式完成:制定项目里程碑管理运行表(见下);定期举行项目状态会议,由软件开发方报告进度和问题,用户方提出意见;比较各项任务的实际开始日期与计划开始日期是否吻合;确定正式的项目里程碑是否在预期完成。
当然,软件开发不像加工螺钉、螺母,有具体的标准和检验方法。软件的标准柔性很大,往往在用户的心里,用户好用是软件成功的标准,而这个标准在软件开发前很难确切地、完整地表达出来。因此,开发过程项目组和用户的沟通互动是解决这一现实问题的好办法。
把握要点,有效验收
软件验收应是一个循环渐进的述程,包括验收前的系统测试、系统上线和正式验收3个阶段。
系统测试:系统测试是对系统进行全面的测试,应在测试环境中进行,以确保系统的功能和技术设计满足企业的业务需求,并能正常运行。系统测试阶段应包括以下主要流程和工作内容:制订测试计划,编制测试用例,建立测试环境;测试:在测试环境中,项目组根据需要,对系统依次进行单元测试、集成测试、压力测试和用户接受测试;提交测试报告、用户确认签字:项目组撰写测试报告,将测试报告提交给各相关用户,用户应在测试报告上签字确认。
系统上线: 系统上线前应做好准备工作,在上线前,软件监督要组织软件开发方制定系统上线计划,系统上线计划应经过信息技术部门和业务部门管理层的正式批准,并通知各相关部门。
所有的上线准备工作做好之后,由软件监督确认上线系统版本正确性后,与用户确认系统上线时间,下达上线指令。系统上线操作人员将后版本的系统程序移植到生产环境。
正式验收:正式验收前,软件开发方应向信息技术管理部门提交软件开发过程中各阶段性文档,包括需求分析说明书、概要设计说明书、详细设计说明书、数据库设计说明书、源程序代码、可供安装使用的系统安装程序、系统管理员手册、用户使用手册、测试计划、测试报告、用户报告、数据移植计划及报告、系统上线计划及报告、用户意见书、验收申请等。
信息技术管理部门接到验收申请后,组织专家对项目进行初审。初审通过后,组织管理层领导、业务管理人员和信息技术专家成立项目验收委员会,负责对软件项目进行正式验收。
软件监督应根据软件开发方在整个软件开发过程中的表现,向验收委员会提出全面的软件监督报告,并根据开题设计书、软件开发合同以及《需求分析说明书》,制定验收标准,提交验收委员会。信息技术管理部门组织由验收委员会、软件监督、软件开发方参加的项目验收会,软件开发方以项目汇报、现场应用演示等方式汇报项目完成情况,验收委员会根据验收标准对项目进行评审,形成终验收意见。