分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的
完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够
指导今后开发的通用原则,方法,同时避免前人的失误。
软件项目管理的提出是在 20 世纪 70 年代中期的美国,当时美国国防部专门研究了
软件开发不能按时提交,预算超支和质量达不到用户要求的原因,结果发现
70%的项目是
因为管理不善引起的,而非技术原因。于是软件开发者开始逐渐重视起软件开发中的各项管
理。到了
20 世纪 90 年代中期,软件研发项目管理不善的问题仍然存在。据美国软件工程实
施现状的调查,软件研发的情况仍然很难预测,大约只有
10%的项目能够在预定的费用和
进度下交付。
1995 年,据统计,美国共取消了 810 亿美元的商业软件项目,其中 31%的项目未做
完就被取消,
53%的软件项目进度通常要延长 50%的时间,只有 9%的软件项目能够及时
交付并且费用也控制在预算之内。
软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其
开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也
导致了开发过程中各种风险的难以预见和控制。
Windows 这样的操作系统有 1500 万行以
上的代码,同时有数千个程序员在进行开发,项目经理都有上百个。这样庞大的系统如果没
有很好的管理,其软件质量是难以想象的。
这几个方面都是贯穿、交织于整个软件开
发过程中的,其中人员的组织与管理把注意力集中在项目组人员的构成、优化;软件度量把
关注用量化的方法评测软件开发中的费用、生产率、进度和产品质量等要素是否符合期望值,
包括过程度量和产品度量两个方面;软件项目计划主要包括工作量、成本、开发时间的估计,
并根据估计值制定和调整项目组的工作;风险管理预测未来可能出现的各种危害到软件产
品质量的潜在因素并由此采取措施进行预防;质量保证是保证产品和服务充分满足消费者
要求的质量而进行的有计划,有组织的活动;软件过程能力评估是对软件开发能力的高低
进行衡量;软件
针对开发过程中人员、工具的配置、使用提出管理策略。因为大家对
人力资源管理和软件过程能力比较有兴趣,下面就详细的对这两方面展开讨论。
软件项目管理
- 软件项目的计划
软件项目计划是一个软件项目进入系统实施的启动阶段,主要进行的工作包括:确定详细
的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计
划、成本和预算计划、人力资源计划等。
软件项目管理过程从项目计划活动开始,而第一项计划活动就是估算:需要多长时间、需要
多少工作量、以及需要多少人员。此外,我们还必须估算所需要的资源(硬件及软件)和可
能涉及到的风险。
为了估算软件项目的工作量和完成期限,首先需要预测软件规模。度量软件规模的常用方法
——
有直接的方法
LOC
——
(代码行),间接的方法
FP(功能点)。这两种方法各有优缺
点,应该根据软件项目的特点选择适用的软件规模度量方法。
根据项目的规模可以估算出完成项目所需的工作量,我们可以使用一种或多种技术进行估
算,这些技术主要分为两大类:分解和经验建模。分解技术需要划分出主要的软件功能,接
着估算实现每一个功能所需的程序规模或人月数。经验技术的使用是根据经验导出的公式来