痔疮早期图:软件的目标与项目计划

来源:百度文库 编辑:偶看新闻 时间:2024/03/28 22:10:02
 在关系到软件项目成功与否的众多因素中,软件的目标与项目计划、成本估算、进度
计划、人员分配、软件配置管理、风险管理、软件质量管理和软件工程文件规范等都是与
项目管理直接相关的因素。由此可见,软件研发项目管理的意义至关重要。
    软件项目管理是包括项目计划、项目组织和控制的一系列活动。而软件计划就是对软
件开发过程的详尽描述与安排。
一、软件开发项目的特点
    了解软件开发项目的特点对于项目的计划制定和管理控制是非常必要的。
    与其他类型项目的共同点:项目成功与否不仅取决于项目过程中所采用的技术方法工
具,还取决于项目管理的水平,特别是计划与控制的水平。
    与其他类型项目的不同点:
    (1) 软件产品和其他产品不同,软件产品是一种“逻辑”产品,是无形的,没有物理
属性的,看不见、摸不着、难以理解。
    (2) 需求难以明确且频繁变更:由于用户的成熟度或责任心的原因,用户开始无法给
出明确的需求。在开发过程中,需求可能要经常修改,因此需要经常地修改程序与文档。
    (3) 难以在早期发现问题:需求不明确,加上后期修改可能没有进行全局性的考虑,
产生的问题难以从早期的文档中直观地发现,需要等系统设计出来后才会发现。
    (4) 项目成员对文档的重视不够,符合用户需求的高质量软件,需要依赖于大量准确
规范的文档编辑工作,但项目组成员对它并不感兴趣,很少有人愿意认真去做,因而直接
影响了软件的质量。
    (5) 劳动密集型+智力密集型:软件开发过程需要大量高强度的脑力劳动,这些劳动
非常细致、高度复杂、容易出错,质量难以用简单的度量来衡量,使得软件的正确性难以
保证。对于不深入地掌握软件工程知识或缺乏软件开发实践经验的人员,是难以做好软件
开发项目管理工作的。
二、项目计划目的与作用
    根据软件能力成熟度模型(简称 CMM)集成 CMMI,软件开发项目计划的目的是:建立
和维护定义项目活动的计划。    项目计划属于 CMMI 的第二级,其过程域包括开发项目计划、
与相关人员交流、获取对计划的承诺、维护计划。项目计划为实施和监控项目活动提供了
基线。
    1. 项目计划的目标
    (1) 项目计划的第一个目标:建立估计值,即建立和维护项目计划因素的估计值。为
此应该确定项目范围,即通过建立高层工作分解结构来估计项目范围;监理工作产品和任
务属性的规模与复杂度;确定项目的生命周期阶段,以此来限定计划范围;基于估算的原
理进行对工作产品和任务的项目工作量和成本的估算。
    (2) 项目计划的第二个目标:开发项目计划文档,即文档化项目计划、维护项目计划,
并以此作为项目管理的基线。为此应该建立和维护项目的预算和进度表;要识别和分析项
目风险;确定如何采集和管理项目数据;确定实施计划所需要的各种资源;确定项目实施
所必需的知识和技能;确定各项任务或活动的承担人;编写项目计划文档。
    (3) 项目计划的第三个目标:获得并维持所有项目干系人对项目的承诺。为此应当评
审影响项目的所有计划,使所有项目干系人理解项目承诺;必要时调整项目计划以适应有
效的和已经估计的资源;获取所有项目干系人特别是项目任务或活动的承担人对项目计划
的承诺。
    项目计划是项目实施的基础。通过所有项目干系人认可的项目计划形成文件,便于本
企业高层领导、相关管理部门领导、相关参与部门领导、项目组成员、客户、协作单位、
分包单位等所有项目干系人之间的交流沟通。项目计划是项目组为实现项目目标而科学地
预测并确定项目生命周期的行动方案。任何项目计划都是为了解决 3 个问题:
    ① 确定项目目标;
    ② 确定为了达成项目目标的各项行动的顺序和时间;
    ③ 确定项目中每项行动所需要的资源。
    所以制定项目计划就是在明确项目目标的基础上,确定项目行动方案,分配相关资源
的项目综合管理过程,就是通过对历史的、当前的项目或组织内部的项目或组织外部的有
关信息进行分析和评价,对项目生命周期过程中可能的发展进行评估、预测,对新项目实
施工作进行的各项活动做出尽可能周密的安排,最终形成一个所有项目干系人认可的、约
定项目各项活动、作为项目实施工作基础的文件——项目计划。项目计划围绕项目目标的
完成系统地确定项目的任务、安排任务进度、编制完成任务所需的资源预算等,从而保证
项目能够在合理的工期内,用尽可能低的成本达到尽可能高的项目质量要求。在制定项目
计划过程中必须明确 5 个基本问题:做什么、如何做、何时做、谁去做、需要多少资源。
    2. 项目计划的作用
    简单地说,项目计划可以起到如下作用:
    (1) 确定完成项目目标所需的各项任务范围,落实责任,制定各项任务的时间表,明
确各项任务所需的人力、物力、财力;
    (2) 确定项目的工作规范、遵循的标准,成为项目实施的依据和指南;
    (3) 明确项目组各成员及其工作责任范围以及相应的职权,使项目组成员明确自己的
工作目标、工作方法、工作途径、工作期限要求;
    (4) 保证项目进行过程中项目组成员与项目干系人之间的交流、沟通与协作,使得项
目各项工作协调一致,提高客户满意度;
    (5) 为项目的跟踪控制提供基础;
    (6) 项目计划在项目中起到承上启下的作用,计划批准后应当作为项目的工作指南。
三、项目计划制定的原则
    (1) 目的性:任何项目计划的制定应当围绕项目目标的实现展开。制订计划的第一步
就是分析目标进而找出为了完成目标所要完成的所有任务。
    (2) 系统相关性:项目计划由一系列子计划组成,如范围计划、人力资源计划、进度
计划、资源计划、质量管理计划、风险管理计划等。各个子计划不是孤立存在的,彼此之
间相对独立,又紧密相关,应当形成一个有机的整体。构成项目计划的任何子计划的变化
都会影响到其他子计划的制定和执行,进而影响到项目计划的正常实施。
    (3) 经济性:项目不仅要有较高的效率,而且要有较高的效益,因此计划过程是对多
种选择权衡、优化的过程。
    (4) 动态性:由于项目环境一般处在变化之中,经常使计划的实施偏离项目的基准计
划,因此项目计划要随着环境和条件的变化不断调整和修改,以保证项目目标的完成。如
何防止项目计划多变,对出现的问题及时加以处理以保证进度按原计划实现,在一定的意
义上说甚至是更为重要的。防止项目计划多变,就要改进计划的编制工作,提高计划的质
量,这首先要求项目经理和项目计划制定人员应当较好地掌握项目的环境条件,对各种条
件进行深入的调查落实并做出有根据的预测,据以制定实施方案,适当留有余地,以使编
制的项目计划切实而可行。其次就是要使这种计划能够得到贯彻执行,因为再好的计划,
如果不能认真执行,也不过是毫无意义的一纸空文。根据各方面的经验,实行各种不同形
式的责、权、利机制是保证计划实现的关键。
四、项目计划的内容
    项目计划可以包含如下要素。
    1. 项目范围说明
    项目范围说明阐述进行这个项目的原因或意义,形成项目的基本框架,使项目所有者
或项目管理者能够系统地、逻辑地分析项目关键问题及项目形成中的相互作用要素,使项
目干系人在项目开始实施前或项目相关文档编写以前,能够就项目的基本内容和结构达成
一致;项目范围说明应当形成项目成果核对清单,作为项目评估的依据,在项目终止以后
或项目最终报告完成以前进行评估,以此作为评价项目成败的依据;范围说明还可以作为
项目整个生命周期监控和考核项目实施情况的基础,以及项目其他相关计划的基础。
  2. 项目进度计划
  进度计划是说明项目中各项工作的开展顺序、开始时间、完成时间及相互依赖衔接关
系的计划。通过进度计划的编制,使项目实施形成一个有机的整体。进度计划是进度控制
和管理的依据,可以分为项目进度控制计划和项目状态报告计划。在进度控制计划中,要
确定应该监督哪些工作、何时进行监督、监督负责人是谁,用什么样的方法收集和处理项
目进度信息,怎样按时检查工作进展和采取什么调整措施,并把这些控制工作所需的时间
和人员、技术、物资资源等列入项目总计划中。
  3. 项目质量计划
  质量计划针对具体待定的项目,安排质量监控人员及相关资源、规定使用哪些制度、
规范、程序、标准。项目质量计划应当包括保证与控制项目质量有关的所有活动。质量计
划的目的是确保项目的质量目标都能达到。根据 ISO 9001 要求和 PMBOK 2000,为实现质
量目标,组织者应遵循以顾客为中心、领导作用、全员参与、过程方法、管理的系统方法、
持续改进、基于事实的决策方法、互利的供方关系 8 项质量管理原则。
  4. 项目资源计划
  有了项目范围计划和进度计划后,资源计划就是决定在项目中的每一项工作中用什么
样的资源(人、材料、设备、信息和资金等),在各个阶段使用多少资源。项目费用计划包
括资源计划、费用估算和费用预算。
  5. 项目沟通计划
  沟通计划就是制定项目过程中项目干系人之间信息交流的内容、人员范围、沟通方式、
沟通时间或频率等沟通要求的约定。
  6. 风险对策计划
  风险对策计划是为了降低项目风险的损害而分析风险、     制定风险应对策略方案的过程,
包括识别风险、量化风险、编制风险应对策略方案等过程。
  7. 项目采购计划
  项目采购计划过程就是识别哪些项目需求可通过从本企业外部采购产品或设备来得到
满足。如果是软件开发工作的采购,也就是外包,应当同时制定对外包的进度监控和质量
控制的计划。
  8. 变更控制、配置管理计划
  由于项目计划无法保证一开始就预测得非常准确,在项目进行过程中也不能保证准确
有力的控制,导致项目计划与项目实际情况不符的情况经常发生,所以必须有效处理项目
的变更。变更控制计划主要是规定变更的步骤、程序,配置管理计划就是确定项目的配置
项和基线,控制配置项的变更,维护基线的完整性,向项目干系人提供配置项的准确状态
和当前配置数据。
五、项目计划编制过程
    由于软件开发的手工性、个体性特征,软件开发项目计划不可能是一个静态的计划,
在项目启动时,可以先制定一个颗粒度相对比较粗的项目计划,确定项目高层活动和预期
里程碑。粗颗粒度的项目计划需要不断地更新迭代,根据项目的大小和性质以及项目的进
展情况进行迭代和调整。迭代和调整的周期也是根据项目的情况进行制订的,一般短到一
周,长到 2 个月左右。经过不断的计划制订、调整和修订等工作,项目计划从最初的粗颗
粒度,到变得非常详细。这样的计划将一直延续到项目结束,直到项目的成果出现。
    制定计划的过程就是一个对项目逐渐了解掌握的过程,通过认真地制定计划,项目经
理可以知道哪些要素是明确的,哪些要素是要逐渐明确的,通过渐近明细不断完善项目计
划。阶段计划中包含的工作汇报和下一阶段工作安排是掌握项目进度的依据,从阶段计划
对照总体计划,才能一目了然地看出工作的进展情况。制定计划的过程,也是在进度、资
源、范围之间寻求一种平衡的过程。制定计划的精髓不在于写出一份好看的文档,而在于
运用您的智慧去应对各种问题和面临风险并尽可能做出前瞻性的思考。一旦计划被负责任
地完成,他就可以给自己一个和管理层或客户交流与协商的基础,帮助你在项目过程中防
范各种问题的出现,帮助你保证项目按时完成。
    企业确定要开始某个项目时一般会下达一个立项的文件,暂且叫“项目立项文件”,
主要内容是遵照合同或相关协议,项目的大致范围、项目结束的截止时间和一些关键时间,
指定项目经理和部分项目成员等。
    接下来的项目计划编写一般要按照以下过程进行。
    1. 成立项目团队
    相关部门收到经过审批后的“项目立项文件”和相关资料,正式按“项目立项文件”
中指定的项目经理组织项目团队,成员可以随着项目的进展在不同时间加入项目团队,也
可以随着分配的工作完成而退出项目团队。但最好都能在项目启动时参加项目启动会议,
了解总体目标、计划,特别是自己的目标职责、加入时间等。
    2. 项目开发准备
    项目经理组织前期加入的项目团队成员准备项目工作所需要的规范、工具、环境,如
开发工具、源代码管理工具、配置环境和数据库环境等。前期加入的项目团队成员主要由
计划经理、系统分析员等组成,但快要制定好的项目计划一定要尽可能经过所有项目团队
成员和项目干系人之间的充分沟通。如果项目中存在一些关键的(指将影响项目成败)技术
风险,则在这一阶段项目经理应组织人员进行预演,预演的结果应留下书面结论以备评审。
    说明:项目计划书必须在相应阶段对项目目标、阶段目标和各项任务进行精确的定义,
就是要在相应阶段进一步进行项目目标的细化工作,特别是在概要设计阶段完成,详细设
计阶段或编码实现开始之前,应该对下一阶段的目标任务进行细化,应当充分调查并掌握
影响项目计划的一切内部和外部影响因素;应当尽可能充分地分析项目工作分解结构,这
样不仅可以获得项目的静态结构,而且还能获得项目各工作任务之间动态的工作流程;应
当将项目目标、任务进行分解,制定详细的实施方案。
  3. 项目信息收集
  项 目经理组织项目 团队 成员 通 过分 析 接 收 的项目相关文档 及 进一 步 与用户 沟通等途
径,在规定的 时间内尽可能全面收集 项目 信息 。项目信息收集要 讲究 充分的、有 效率 的
沟通,并要达成共识。有些成员认为,电子邮件发来的文档(计划、需求、周计划等)是在
沟通不够充分的情况下完成的,成员看过后有不了解或与自己的能力或意愿不符的情况,
但通 过电 子邮 件等方式沟通 的效率不高,这也 许是个习惯的问题,也 许和 某 个具 体 问题
本身 是否 容易通过 电子 邮件 沟通清楚 有关。因此重要的 内容 需要开会进行 讨 论,确保所
有重要问题都得到理解,最终达成共识。讨论会上达成共识的应当记录成文字落实在具体
的文档中。
  4. 编写《软件项目计划书》
  项目经理负责组织编写《软件项目计划书》。《软件项目计划书》是项目策划活动的
核心输出文档,包括计划书主体和以附件形式存在的其他相关计划,如配置管理计划等。
《软件项目计划书》的编制参考《GB/T 8567-1988 计算机软件产品开发文件编制指南》中
项目开发计划的要求。各企业在建立 ISO 9001 质量管理体系或 CMM 过程中也会建立相应
的《软件开发项目计划书规范》。
  编制项目计划的过程应当分为以下几个步骤:
  (1) 确定项目的应交付成果。这里,项目的应交付成果不仅是指项目的最终产品,也
包括项目的中间产品。例如通常情况下软件开发项目的项目产品可以是:需求规格说明书、
概要设计说明书、详细设计说明书、数据库设计说明书、项目阶段计划、项目阶段报告、
程序维护说明书、测试计划、测试报告、程序代码与程序文件、程序安装文件、用户手册、
验收报告、项目总结报告等。
  (2) 任务分解:从项目目标开始,从上到下,层层分解,确定实现项目目标必须要做
的各项工作,并画出完整的工作分解结构图。软件开发项目刚开始可能只能从阶段的角度
划分,如需求分析工作、架构设计工作、编码工作、测试工作等,当然规模较大时也可把
需求、设计拆分成不同的任务。特别是在概要设计完成时可以对下一阶段的目标任务进行
横向的细化。
  (3) 在资源独立的假设前提下确定各个任务之间的相互依赖关系,以确定各个任务开
始和结束时间的先后顺序,获得项目各工作任务之间动态的工作流程。
  (4) 确定每个任务所需的时间,即根据经验或应用相关方法给任务确定需要耗费的时间;                   
确定每个任务所需的人力资源要求,如需要什么技术、技能、知识、经验和熟练程度等。
  (5) 确定项目团队成员可以支配的时间,即每个项目成员具体花在项目中的确切时间;
确定每个项目团队成员的角色构成、职责、相互关系和沟通方式。
  (6) 确定管理工作,管理工作是贯穿项目生命周期的,如项目管理、项目会议、编写
阶段报告。项目团队成员之间的沟通时间、项目团队成员和其他项目干系人之间的沟通时
间也比较容易被忽视,而沟通时间也是比较不容易固定地量化和日程化。但这些工作在计
划中都应当充分地被考虑进去,使项目计划更加合理,能更有效地减少因为计划的不合理
而导致的项目进度延期。
    (7) 根据以上结果编制项目总体进度计划,总体进度计划应当体现任务名称、责任人、
开始时间、结束时间、应提交的可检查的工作成果。
    (8) 考虑项目的费用预算、可能的风险分析及其对策、需要公司内部或客户或其他方
面协调或支持的事宜。
    5. 软件项目计划书评审、批准
    项目计划书评审、批准是为了使相关人员达成共识、减少不必要的错误,使项目计划
更合理更有效。
    项目经理完成《软件项目计划书》后,首先组织项目团队内部的项目团队负责人、测
试负责人、系统分析负责人、设计负责人、质量监督员等对项目计划书进行评审,评审可
采取电子或会议方式,并进行阶段成果项目团队内评阅记录。应当要求所有相关人员在收
到软件项目计划书后的一个约定时间内反馈对计划书的意见。项目经理确保与所有人员就
项目计划书中所列内容达成一致。这种一致性是要求所有项目团队成员对项目计划的内容
进行承诺,无法承诺或者说是无法达成一致的,要么修改项目计划去适应某些项目团队成
员,要么是由某些项目团队成员采取妥协措施,去适应项目计划的要求。
    项目经理将已经达成一致的软件项目计划书提交项目高层分管领导或其授权人员进行
审批,审批完成时间不能超过预先约定的时间。对于意义重大的项目,由过程控制部门如
质量管理部和项目分管领导同时对《软件项目计划书》进行审批。
    批准后的软件项目计划书作为项目活动开展的依据和本企业进行项目控制和检查的依
据,在必要时根据项目进展情况实施计划变更。
    项目质量监督员根据《软件项目计划书》和《软件开发项目质量计划书规范》编制软
件开发项目质量计划。大型的项目应当编制单独的《软件开发项目质量计划书》;规模较
小的可以在《软件项目计划书》的某个章节说明“软件开发项目质量计划”,也可单独编
制类似“软件开发项目质量控制表”的文档。
    配置管理员根据计划书编制《项目配置管理计划》。以项目工作计划书中的阶段成果
为依据,根据配置管理计划规范编制配置管理计划,项目经理审批配置管理计划,并对配
置管理计划的有效性负责。
    项目策划工作完毕,软件项目计划书通过评审。一般情况下,对软件开发项目来说,
工作转入需求分析阶段。
六、项目计划内容确定
    项目计划内容的确定一般要按照以下过程进行。
    1. 确定项目概貌
    合同项目以合同和招投标文件为依据,非合同项目以可行性研究报告或项目前期调研
成果为依据,明确项目范围和约束条件,并以同样的依据,明确项目的交付成果,进一步
明确项目的工作范围和项目参与各方责任。
  2. 确定项目团队
  确定项目团队的组织结构和与项目开发相关的职能机构,包括管理、开发、测试、评
审和验收等。确定项目团队人员及分工,与相关人员协商,确定项目团队人员构成,如内
部不能满足人员需求,则提出人员支援申请。
  3. 明确项目团队内、外的协作沟通方法
  明确与用户单位的沟通方法。明确最终用户、直接用户及其所在本企业/部门名称和
联系电话。客户更多的参与是项目成功的重要推动力量,加强在开发过程中与用户方项目
经理或配合人员的主动沟通,将有助于加强客户在项目的参与程度。建议采用周报或月报
的方式通告项目的进展情况和下一阶段计划,提出需要客户协调或了解的问题。当项目团
队需要与外部单位协作开发时,应明确与协作单位的沟通方式,确定协作单位的名称、负
责人姓名、承担的工作内容以及实施人的姓名、联系电话。
  明确本企业内部协作开发的部门名称、经理姓名、承担的工作内容以及工作实施责任
人的姓名、联系电话。
  明确项目团队沟通活动。项目团队成员规模在 3 人以上的项目应该组织项目团队周例
会,项目团队采用统一的交流系统建立项目团队的交流空间。
  4. 规划开发环境和规范
  说明系统开发的所采用的各种工具、开发环境、测试环境等,列出项目开发要遵守的
开发技术规范和行业标准规范。对于本企业还没有规范的开发技术,项目经理应组织人员
制订出在本项目中将遵守的规则。
  5. 编制工作进度计划
  根据本企业规定和项目实际情况,确定项目的工作流程。编制项目的工作计划,此计
划为高层计划,各阶段的工作时间安排要包括完成阶段文档成果、文档成果提交评审及进
行修改的时间,各阶段结束的标志是阶段成果发布。在计划中要求明确以下内容:
  (1) 工作任务划分;
  (2) 显示项目各阶段或迭代的时间分配情况的时间线或甘特图;
  (3) 确定主要里程碑、阶段成果;
  (4) 要求用文字对项目工作计划做出解释。最终用一张时间表格来完整说明整个工作
计划。
  对于迭代开发的项目,应编制出第一阶段的阶段计划。阶段内的任务分割以 2~5 天为
合适,特殊任务的时间跨度在两个星期内;在项目的进行过程中,项目经理编制双周工作
计划,指导成员的具体工作。
  6. 编制项目的监控计划
  说明进度控制、质量控制、版本控制和预算控制等。
  7. 编制项目的风险计划
  分析项目过程中可能出现的风险以及相应的风险对策。对于大型项目,建议以附件方
式编制,便于不断更新。
  8. 制定辅助工作计划
  根据项目需要,编制如培训计划、招聘计划等。
  9. 规划开发支持工作
  如供方管理计划。
  10. 规划项目验收
  制定项目的验收计划,此项工作可以视需要进行裁减。
  11. 规划项目收尾与交接活动
  制定项目的验收、培训和项目进入维护阶段与技术支持部的交接工作