第1章软件项目初始过程25 1.4项目授权 启动一个项目的重要原因是为了满足商业目标,提供一个合理的投资回报等,项目发起人组织相 关人员提出需求,确定项目管理者及其相关成员,编写必要的项目说明书。 当选择了一个项目之后,就需要对这个项目进行授权和初始化,以便确认相关的人知晓这个项目。 这就需一个文档化的输出,这个文档可以有很多不同的形式,一个最主婴的形式是项目章程。 1.4.1项目章程 项目章程(project charter)是指项目执行组织高层批准的一份以书面签署的确认项目存在的文件 包括对项目的确认、对项目经理的授权和项目目标的概述等。严格说,项目章程包括对开始一个项目 或者项目阶段的正式授权,但是通常而言,在每个项目阶段都进行一次授权的做法并不多见。 项目章程是 个正式的文档,它正式的认可 个项目的有效性 并指出项目的目标和管理方向。 它授权项目经理来完成项目,从而保证项目经理可以组织资源用于项目活动。项目章程通常由项目发 起人、出资人或者高层管理人员等签发。 项目章程和项目目标类似,但章程更加正式,叙述也更加完整详尽,更符合公司的项目视图和目 标。项目目标使这种描述更加具有特定性,并且加上了截止日期。而项目章程使目标形式化,就好像 是到达目的地的一张通行证。总之,项目章程正式的授权项目。有的项目没有明确的项目章程,但是 合同也可以作为项目章程。 章程不仅清楚地定义了项目,说明了它的特点和最终结果,还指明了项目权威。项目权戚通常是 项目的发起人、项目经理和团队领导(如果需要的话),章程可以详细规定了每个人的角色,以及相 互交流信息的方式。 当然不同企业的做法是不一样的,有不同的形式,例如有的企业采用一个简单的协议,有的是 个很长的文档,或者使用合同作为项目章程。 建立项目章程时,你可以把任何想要加人的信息都包括进去。一般说来,包括下列要素: 项目的正式名称 。项目发起人及联系方式。 ·项目经理及联系方式。 。通目目标。 关于项目的业务情况(项目的开展原因)。 项目的最高目标和可交付成果 团队开展工作的一般性描述。 ·开展工作的基本时间安排(详细的时间安排在项目计划中列举)。 ·项目资源、预算、成员以及供应商。 无论采用哪种形式 这个过程正式的授权项目开始,任命项目经理,说明项目的背景,来源等, 定的假设或者约束等。例如,表12是 个项目章程的例子 表1-2T升级项目的项目章程 项目开始时间:2008.3.10 项目结束时间:2008.5.15 经赵:的业标对企业所有人员的软件件进行升级,新的标准见尉件。升可能影响服务和 此计算机以及一些网络的软硬件。软硬件的费用300万元,人工成本为20万。 建议方式方法: 本估算,然后上报 获取软硬件报价 尽可能用内部的人员参与项
26第一篇项目初始 (续) 人 角 赵强 项目经理 规划、监控项目 质量经理 负责项目的质量 有系统、网络 签字:XXX,XxX 注释: XXXXXXX 项目章程类似项目的授权书,相当于对项目的正式授权,表明项目可以有效地开始了。项目章程 授权项目,它律立了项目经理的责任心、发起人的主人翁意识以及项目团队的闭队意识。项目意程可 以解决很多令人头痛的问题,确立负责人, 帮助你更加自信地快速向目标前进。 1.4.2项目经理的责任和权利 项目经理是项目组织的核心和项目团队的灵魂,对项目进行全面的管理,他的管理能力,经验水 平、 知识结构、 个人魅力都对项目的成败起着关键的作用。 同时作为团队的领导者】 他的管理素质 组织能力、知识结构、经验水平、领导艺术等都对团队管理的成败有着决定性的影响。在一个特定的 项目中,项目经理要对项目实行全面的管理,包括制定计划,报告项目进展,控制反馈,组建团队, 在不确定环境下对不确定性问题进行决策,在必要的时候进行谈判及解决冲突等。其中组建团队是项 目经理的首要责任 项目要取得好的成绩 个关键的要素就是项目经理应该具备把各方人才聚 集在一起,组建一个有效的团队的能力。在团队建设中,要确定项目所需人才,从各有关职能部门获 得人才,定义成员任务和角色,把成员按任务组织起来形成一个高效的团队。要建立并使团队有效运 行,项目经理需要起关键的作用。 项目经理是沟通者,团队领导者,决策者,气氛创造者等多个角色的综合。以身作则与有威信是相辅 相成的。规范制度的权威性主要还是靠项目经理自己,只有坚持以身作则,才能将自己优秀的管理思想在整 个项目中贯穿下去,取得最后的成功。项目经理关系到一个项目的成败,是自己的责任就要敢于承担。有相 应的权利就必然有相应的责任。如果不负责任,项目管理中就可以不再需要项目经理了。当然负贵归负责, 退一步而言并不是要项目经理负项目中所有的责任。但只有项目经理敢于负责, 才能使得责任对应的 个人有勇气站出来!而这样也将使项目朝更快更好的方向发展。项目经理的职责可以总结为如下: 1)开发计划。项目经理的首要任务就是计划、计划、再计划。计划安排项目工作,使各项目工作 形成有机整体 完善合理的计划对于项目的成功至关重要。项目经理要在对所有的合同、需求等熟知、 掌握的基础上,明确项目目标,并就该目标与项目客户达成一致,同时告知项目团队成员 然后为到 现项目目标制定基本的实施计划(成本、进度、产品质量),在项目的实施过程当中,还要根据项目 的实际进展情况,在必要的时候,调整各项计划方案。 2)组织实施 同有关部门联络,选择并确定项目团队的职责。确定职能专业部门和其他项目参与 者之间的分工,有效的调用项目团队和每个成员。项目经理组织实施项目主要体现在两个方面:其一 设计项目团队的组织结构图,对各职位的工作内容进行描述,并安排合适的人选;以及对项目所需的 人力资源进行规划、开发。其二,对于大型项目,项目经理应该决定哪些任务由项目团队完成,廓些 由承包商完成 3)项目控制。项目实施过程中,项目经理要时时监视控制项目的运行,积极预防,防止意外的发 生。及时解决出现的问题,同时要预测可能的风险和问题,保证项目在预定的时间、资金、资源下顺 利完成。 既燃项目经理相负着确保项目成功的重大贵任,那么就必须威予项目经理一定的权利,保证项目 得以顺利实施。实际上, 尽管项目经理对项目负有主要职责,但由于大多数项目资源(如人力资源)
第1章软件项目初始过程27 不直接受项目经理的控制,职权与职责并不是统一在项目经理一个人身上,因此,项目经理地位最主 要的一个特点是 “责任大于权利”,项目经理在管理项目中会更多的依赖个人权利。通常项目经理主 要有以下三方面权利: 1)制定项目的有关决策。项目在实施过程当中必然会面临各种各样的决策,而制定决策是项目经 理所拥有的最主要的权利,这也是项目经理最基本 最重要的权利 2)挑选项目成员的权利。项目组织是一个临时性的组织,项目成员为了一个共同的目标而团结在 一起。项目启动后,项目经理有权根据自己的判断、自己的方式选择项目成员,组建项目团队。 3)对项目获得的资源进行再分配。上级组织将资源划拨给项目组织,项目经理有权决定这些资源 的具体使用,根据项目具体工作要素的情况进行资源再分配。 1.4.3项目经理的能力 专职的项目经理是必需的,他是团队的灵魂人物。项目经理的贵任重在管理,同时也应具备相应 的技术能力 般说,作为项目经理应该具备基本的计算机及网络的应用能力、对T新技术的接受 (了解)能力、较强的自我更新能力等。同时,也应该具备沟通能力、协调能力、项目控制能力、资 源管理与控制能力、服务意识与能力,当然也应该具备个人人格魅力等。 经调查,作为一个理想的项目经理,它应具备的特点如下: 对项目的目标有透彻的理解 具备了解项目成员需要的能力 对细节问题头绪清楚, 对项目有强烈的责任心 能应付挫折和失望。 具备很好的谈判技巧 面向成果,注重实际 有成本意识和基本的经营技巧 有政治头脑 知道该做什么,不该做什么。 ·能忍受模糊不洁的煎熟 丽时项目经理职声,我们可以看出项目经理在项目中所相当的角色,其中重要的角色应该是组织 协调能力。 计算机信息系统涉及的领域较多 知识面较广 技术复杂度有时候是难以预料的 项目经 理不可能对每个领域都知道,不可能对所有的技术都了解,这就要求项目经理要调动项目团队的积极 性,激发各个专业人才的工作潜能,做好闭队内部沟通和纵横向沟通。 当前,在政府机关和企事业单位软件项目管理中存在主要问题是,没有专门项目管理专业的人员 来担任项目经理 被任命的项目经理主要是因为他们能够在技术上独当 一面,而管理方面特别是项目 管理方面的知识比较缺乏。因此,项目经理接受系统的项目管理知识培训是非常必要的。 1.5 初始项目范围 在项目的初期,一般会开发初始的项目范围说明书 ,说明项目所需要完成的工作和所需要提交的 成果。由于项目具有渐进明晰的特性,这个初始的范围说明书也需要不断的完善。 一个初始的项目范围说明,相当于确定初始的项目需求说明书,对项目需求进行初步的描述,将 来馆写需求趣格书的时候,可以在此基础上讲行详细的描述】 1.6生存期模型 在一个项目生存期中,每一项任务都通过一个或者多个过程的方式来完成的,在生存期中所有这 些相关过程的组合,称为软件生存期过程。建立软件生存期过程可以使用两个基本的程序,第一个程 序是软件开发生存期全局模型的选择,这个全局过程模型称为一个生存周期模型:第二个程序是特定
28第一藕项目初始 阶段及其任务所执行的一些单个过程的选择 在生存期模型中定义软件过程非常重要 人和过程是保证项目成功的两个最关健因素。由好的人 按好的过程进行项目开发,才能最大限度地保证项目的成功。 个好的过程可以保证差的人做出来的 东西不至于太差,但不能确保做出精品。通过过程可以实现一种规范化、流水线化、工业化的软件开 发。软件的生产过程不存在绝对正确的过程形式,可以肯定的是不同的软件开发项目应当采用不同的 或者说是有针对性的软件开发过程,而真正合适的软件开发过程是在软件项目的开发完成才能明了的。 因此项目开发之初只能根据项目的特点和开发经验进行选择,并在开发过程中不断的调整。 软件项目生存期模型的基本特征是: 1)描术了开发的主要阶段。 2)定义了每 个阶段要完成的主要过程和活动。 3)规范了每 个阶段的输入和输出 一定规模的软件企业,会有生存期模型库,模型库中有各种生存期模型的具体说明,项目经理可以 根据项目的具体情况选择适合本项目的生存期模型。这里我们介绍在软件开发中 可能用到的主要生存期 模型:V模型,瀑布模型,原型模型,增量模型,螺旋式模型,快速应用开发模型,渐近式阶段模型等 选择具体的T项目生命周期,需要按照项目的特点、项目管理的方式来确定。例如,软件开发项 目的生命周期划分方式有多种,它们具有不同的特点,在实际运用时应该根据具体情况予以裁剪。在 项目的开始阶段,成功完成项目的概率很低,风险和不确定性很高, 随着项目的发展,完成的概率越 来越高,直到最后完全明确。项目生命周期中一个阶段向另一个阶段过菠的过程都是 个风险过滤的 阀门,因而,这些阶段的结束(或开始)就是项目控制节点,就是项目里程碑。 1.6.1瀑布模型 瀑布模型(waterfall model)是一个经典的模 需求分析 型,也称为传统模型(conventional model),是一个 理想化的生存期模型,见图17。它要求项目所有 的活动都严格按照顺序执行的, 个阶段的输出是 下一阶段的输人。在很多的标准中都有明确定义溪 图17瀑布模型 布模型,而且是软件工程经常涉及的模型。这个模 型没有反馈, 个阶段完成后 般就不返回了。尽管实际的项目中要经常返回上一阶段。虽然瀑布 模型是一个比较“老”的模型,甚至有些过时,但在一些小的项目中还是经常用到的。 瀑布模型有如下特点: 易用、 直观。 ·开发进程比较严格 个进程顺着一个进程进行 ·模型中没有反馈过程。 模型执行过程中需要严密控制。 允许基线和配 早期接受控制 一个新的项目不适合澡布模型,除非在项目的后期 ·用户直到项目结束才能看到产品的质量,用户不是渐渐地熟悉系统 。不命许查事或者限制变更 瀑布模型使用指南可以从三个方面说明 1)开发前,要进行概念开发和系统配置的开发,概念开发主要是确定系统级的需求,提交一份任 务陈述。系统配置开发需要确定软件和硬件的情况 2)开发中,需进行需求过程、设计过程、实施过程。 3)开发后,需进行安装过程、支持过程、维护过程、抛弃过程等。 瀑布模型比较适合下列情况的项目:在项目开始前,项目的需求已经被很好的理解,也很明确】
第1章软件项目初始过程29 而且项目经理很熟悉为实现这一模型所需要的过程,、同时解决方案在项目开始前也很明确。很多的短 期项目可以采用爆布模型。 1.6.2V模型 V模型是瀑布模型的一种变种,见图1-8,同样需要一步一步进行,前一阶段任务完成之后才可以 进行下一阶段的任务。这个模型强调测试的重 要性,它将开发活动与测试活动紧密地联系在 项目规划 接收测试 一起。每一步都将比前一阶段进行更加完善的 测试。 需求分析 系统测试 实验证明 一个项目50%以上的时间花在 测试上。一般,大家对测试存在一种误解,认 「概要设计 集成测试 为测试是开发周期的最后一个阶段。其实,早 期的测试对提高产品的质量,缩短开发周期起 [详细设计.单元测试 着重要作用。 V模型也正好说明了测试的重要 性,它是与开发并行的,这个模型体现了全过 偏码和调试 程的质量意识。 V模型的特点如下 图1-8V模型 ·简单易用,只要按照规定的步骤一步一步执行即可 ·V棋型强调测试过程与开发过程的对应性和并行性,例如单元测试对应详细设计,集成测试 对应概要设计,系统测试对应需求分析。 使用V模型,要求开发的全过程是严格按照顺序进行的,一个阶段的输出是下一个阶段的输人。 同时,注意图18中虚线对应过程的并行考虑,例如需求分析阶段,应该有确认测试的准备;概要设 计阶段应该有集成测试的准备;详细设计阶段应有单元测试的准备等。 V模型比较适合下列情况的项目:项目的需求在项目开始前很明确,解决方案在项目开始前也很 明确,项目对系统的性能安全很严格。类似的项目如:航天飞机控制系统,公司的财务系统等。 1.6.3原型模型 原型模型是在需求阶段快速构建一部分系统的生存期模型,见图19。用户可以通过试用原型提出 原型的优缺点,这些反馈意见可以作为进一步修改系统的依据。 开发人员对开发的产品有时与客户不 致,因为开发人员更关注设计和编码实施,而客户更关注于需求。因此,如果开发人员快速构造 个原型将会很快与客户就需求达成一致。 设计完善 原型迭 快速分析一 用户认可 功能 项目计划数据库 长用户界面八 操作维护 图19原型模型