解决软件危机的过程中,越来越多的软件开发公司意识到在软件项目开发过程中有效的管理所起到的重要作用。而在软件项目管理过程中,软件项目的计划管理则是决定项目能否顺利实施的关键内容。
本文将在下面具体阐述软件项目的计划管理。
1 软件项目计划概述
软件项目计划是指为软件工程的运作和软件项目活动的管理提供一个合理的基础和可行的工作计划的过程。其目的是为执行软件工程和管理软件项目制定合理的计划。
具体来讲,就是:
(1)使软件项目的开发建立在可靠的基础之上,并将计划文档化,由开发人员遵循,并据此跟踪检查计划的执行。
(2)确定软件项目开发的活动的承诺,使软件开发工作有序而协调的开展,以便根据软件计划的资源、约束和能力逐步向客户履行承诺。
(3)明确与软件项目相关的组织和个人的承诺,将责任落实到组和个人,从组织管理上保证项目开发的成功。
2 制定计划应遵循的原则
2 . 1 重视对项目信息的了解
制定软件项目计划,不仅仅需要经验,更需要全面了解项目的相关信息。必须掌握的信息包括:关于所在组织的信息,包括组织结构图,各部门的职能,各关键部门的经理和部分成员(并尽可能认识这些人);
关于市场的信息,包括本行业新产品和新技术的发布,竞争对手的情况,竞争对手的主要客户群信息;关于历史项目的信息,尤其需要注意以往项目实施过程中出现的问题记录和解决方法;
关于客户的信息,与客户的沟通是相当重要的,特别要理解清楚客户对时间、进度和效果上的要求。只有在了解足够信息的基础上制定计划,才能增强指导性和针对性。
2 . 2 重视项目计划的层次性
软件项目计划的层次通常分为高级计划、阶段计划和低级计划。高级计划是项目的早期计划,主要进行项目的阶段划分,主要包括人、财、物3个要素。大的阶段交替之前,我们要做好下一阶段的详细计划,称之为阶段计划。
阶段计划要确定各项任务的负责人、开始和结束时间、设备资源、任务之间的依赖关系、小的事件点(即里程碑)。开发人员的个人计划是低级计划,由开发人员根据自己的任务自行制定。
通常,软件项目计划至多有4级,较小的软件项目有2级计划(高级计划与低级计划)也是可行的。
2 . 3 重视历史数据的运用和积累
要充分利用以往类似软件项目的历史数据。不光成功项目的数据具有参照价值,失败项目的数据也具有借鉴作用。可以根据它们来制定和改进计划。此外也要注意积累历史数据,以便于为我所用,这些是可复用的资源。最好是通过文档化的过程形成模板,将以往的成功经验高效继承。.
2 . 4 重视用过程化的思想指导开发
我们知道软件能力成熟度模型CMM,描述了五个级别的软件过程成熟度:初始级,可重复级,已定义级,已定量管理级,优化级。在可重复级即CMM2这个等级上,该过程具备了对软件项目基本的管理控制、方针和规程,并强调文档化的过程,一个项目成功了,就可以认为下一个项目也可以成功。
在项目的实施过程中,通常需要根据项目的进展情况及变更对项目计划进行修改,在策划和重新策划中涉及的内容,都包含在CMM2过程中。运用软件过程化CMM2的思想指导计划的编制与实施,可以提高软件项目的可控程度。尽管当前大多数企业都难以达到CMM2级及以上的等级能力水平,但至少要具备过程化的思想。
3 计划的技术方法
在制定软件项目的计划时,以下是常用的技术。
3.1 PERT
PERT(计划评审技术,Program Evaluationan Review Technique)是50年代末美国海军部在研制北极星潜艇系统时为协调3000多个承包商和研究机构而开发的,其理论基础是:假设软件