在软件项目开发管理过程中,不仅要努力实现项目的范围、时间、成本和质量等目标,还必须协调整个项目过程,以满足项目参与者及其他利益相关者的需要 和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难。
纵观所有失败的软件项目,基本原因是不能管理其软件过程,在无纪律的、混乱的 项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制与管理不仅可以在每个阶段回顾和纠正项目的偏差,识别软件项目的风险甚至果断中止项 目,而且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。
软件项目管理总体流程设计为项目搜寻、立项、售前、合同生成和合同执行等5个主要阶段,分别以P1、P2、P3、P4、P5表示;同时设计了立 项完成、合同签定、功能定义、软件开发、项目验收等5个里程碑,分别以TM1、TM2、TM3、TM4、TM5表示,如图1所示。在这些流程中,合同执行 流程是软件项目管理的核心,其主要过程有:产品定义、软件开发、测试执行、内部验收、项目实施与验收、项目维护。
图1 软件项目管理总体流程
软件项目管理总体流程分析
1项目搜寻
项目搜寻是项目立项的基础,项目搜寻阶段的主要任务包括市场信息收集,用户需求跟踪,对潜在的项目进行分析和筛选。
2项目立项
立项阶段的主要任务是确认立项的理由,提出立项建议,提供合适的资金和资源,使立项建议成为正式项目。
3 项目售前
售前阶段从项目立项开始到项目合同的签定结束,主要工作有:制定与客户的交流计划,详细了解客户的背景资料,了解客户启动项目的缘由、目的和期 望,编制项目方案建议书,准备合同蓝本。
4合同生成
合同生成阶段的主要工作有:项目方案的评估与确定,技术合同、商务合同的商定、评估与签署。
5合同执行
合同执行是软件项目管理流程的重点,可分为软件开发、测试执行;内部验收、项目验收、系统维护等五个基本工作过程。
5.1软件开发
软件开发阶段分为:需求调研、系统分析、系统设计、编码、单元测试等过程。主要从三个方面进行管理:
1) 制定项目计划。软件项目计划是一个用来协调所有其他计划,以指导项目执行和控制的可操作文件。它体现了对客户需求的理解,是开展项目活动的基础,也是软件 项目跟踪与监控的依据。
2) 确定开发过程。根据软件项目和项目组的实际情况,建立起一个稳定、可控的软件开发过程模型,并按照该过程来进行软件开发。
3) 加强过程控制。过程控制主要包括过程管理、变更控制和配置管理。
5.2测试与执行
项目测试的目的是检查系统是否符合项目合同与任务书规定的要求。项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能—效率测 试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等。测试过程在模拟运行环境中进行。
5.3内部验收
项目完成集成测试和系统测试后进行项目内部验收,主要有三个步骤:1)文档准备。项目经理提交内部验收计划、项目开发总结报告、产品发布清单; 财务主管提交项目财务预算报告。2)内部验收测试。内部验收测试的测试内容与方法虽然与系统测试基本相同,但应站在用户验收的角度进行,因为它是试运行的 基础,通过这一步,为用户验收作充分的准备。3)内部评审。对提交的所有文档及测试结果进行内部评审,完成项目开发总结报告。
5.4项目试运行与验收
试运行与用户验收阶段的主要任务是,使所有的工作产品得到用户的确认。主要工作有:
1) 验收前的准备。项目经理负责检查产品的完整性,包括文档、介质和中间产品等,以确保现场实施的成功;负责应用软件的现场安装调试,完成安装调试总结报告; 负责制定用户验收计划,并得到客户的确认。
2) 用户进行验收测试和系统试运行,进行文档和系统的移交。
3) 用户确认。项目经理负责与客户协调,协助用户进行项目验收,形成用户验收报告。