项目是为提供一项独特产品、 服务或成果所做的临时性努力。
1、临时性( 一次性)。临时性是指每一个项目都有确定的开始和结束日期。(临时性一般不适用于项目所产生的产品、 服务或成果。)
2、独特的产品、服务或成果(独特性)。
3、逐步完善。
4、资源约束。资源成本是项目成功实施的一个约束条件。
5、目的性。项目工作的目的在于得到特定的结果,即项目是面向目标的。
时间、成本和质量是项目工作的三个主要目标。这三个目标经常存在冲突。
由于项自的不确定性和资源使用的竞争性,很少有项目最终能够完完全全地按照原先预定的时间、成本和质量要求完成。
为了做出好的决策,必须要由项目经理、项目组和发起人进行充分的协调和谈判,这是项目经理的重要任务。同样,项目中的其他一些要素也起着重要的作用。要平衡好这些项目矛盾,就需要好的项目管理。
(1)日常运作是持续不断和重复进行的,而项目是临时性的、独特的。
(2)项目和日常运作的目标有本质的不同。 项目的目标是实现其目标,然后结束项目,而持续进行的日常运作的目标一般是为了维持经营。
(3)项目的实现机制与日常运作大相径庭,因为当宣布的目标实现时,项目就结束了。 相比之下,日常运作是确定一组新目标,然后持续进行。
战略管理包括以下三个过程:
①战略制定:确定企业任务,认定企业的外部机会与威胁,认定企业内部优势与弱点,建立长期目标,制定供选择战略,以及选择特定的实施战略。
②战略实施:树立年度目标、制定政策、激励员工和配置资源,以便使制定的战略得以贯彻执行。
③战略评价: 重新审视外部与内部因素:度量业绩;采取纠偏措施。
对于典型的项日型企业,一般在企业的战略实施过程中,将企业的战略转化为一系列的项目来实施企业的战略,按多项目或项目群来管理各个项目,达到企业的战略目标。一个优秀的项目经理应该了解企业的商业战略目标,与企业高层管理者紧密合作。
项目管理就是把各种知识、 技能、 手段和技术应用于项目活动之中,以达到项目的要求。
(1)项目管理是一项复杂的工作。 项目一般由多个部分组成,工作可能跨越多个部门,需要运用多种学科的知识来解决问题;项目工作通常没有或很少有以往的经验可以借鉴,执行中有许多未知因素,每个因素又常常带有不确定性,还需要将具有不同经历、来自不同组织的人员有机地组织在一个临时性的组织内,在技术性能、成本、进度等较为严格的约束条件下实现项目目标等等。
(2)项目管理具有创造性。 由于项目具有一次性的特点,因而既要承担风险又必须发挥创造性。
(3)项目管理需要集权领导和建立专门的项目组织。
(4)项目负责人(或称项目经理)在项目管理中起着非常重要的作用。
(5)社会经济、 政治、 文化、 自然环境等对项目的影响。
有效的管理要求项目管理组至少能理解和使用以下五方面的专门知识领域:
国际项目管理协会 (Intemational Project Management Association, IPMA)
国际项目管理专业资质认证(Intemational Project Management Professional,IPMP)
PMP (Project Management Professional)指项目管理专业人员资格认证。PMP证书的有效期为三年。PMP认证只有一个级别,对参加PMP认证学员资格的要求与IPMA的C级相当。 PMP 应考人员必须具备以下条件:①学士学位或同等的大学学历,至少具有4500小时的项目管理经历。②虽不具备学士学位或同等学历, 但且具有至少7500小时的管理经历。申请人需要提交用英文写成的在规定时间范围内具有至少的4500~ 7500工时的项目管理工作经验的书面材料,这一点就排除了很多不具备项目管理经验的人。
在国际七被称为项目管理王者认证,PRINCE2 是一种基于流程的结构化项目管理方法,包括4个被称为要素的主要部分。达4个要素包捂原则、流程、主题以及项目环境。
PRINCE2 方法具有七个原则
强调通过 “原则" 定义项目:
PRINCE2 的 7 个主题
PRINCE2 有7个流程
它们提供了成功地指导、管理和交付项目所要求的一系列活动:
(1)项目准备流程:这个流程主要是项目指导和管理层用。
(2)项目指导流程:使项目管理委员会能够对项目的成功负责。
(3)项目启动流程: 该流程是接下来项目开展工作的坚实基础,他需要定义项目控制的六个要素的基线
(4)阶段控制流程: 项目是在这个阶段完成工作,同时监督这些工作,处理问题,
向项目管理委员汇报进展, 以及纠正项目中保证项目在容许偏差范围内。
(5)阶段边界管理:是向项目管理委员会提供充分信息,评审当前阶段成果,批准下一阶段计划,确保项目的业务验证和风险可接受。
(6)产品交付管理流程: 通过有关接受、 执行和交付项目工作的正式要求,控制项目经理和小组经理的联系。
(7)项目收犀流程: 提供一个固定点来确认对项目产品的验收,认可项目启动文件中最初设立的目标已经实现(或实现了己批准的变更目标),或者项目不再有更多的贡献。
1.9 组织体系
实施项目组织的结构往往对能否获得项目所需资源和以何种条件获取资源起着制约作用。
1、职能型组织(项目经理的权利最低)
当出现制造方面问题的时候,这些问题被逐级提交给本部门领导,部门领导再与制造部门的领导进行协商,问题的答复再由部门的领导逐级下传给工程项目经理。
2、项目型组织(项目经理权利最高)
绝大部分的结织资源宣接配置到项目工作中,并且项目经理拥有相当大的独立性和权段。项目型组织通常也有称为部门的单位,但是旦这些部门或是直接向项目经理汇报工作, 或是为不同项目提供支持服务。
3、矩阵型组织
兼有职能型和项目型的特征。 弱矩阵型组织保持着很多职能型组织的特征,项目经理的角色与其说是管理者,更不如说是协调人和发布人。 同理, 强矩阵型组织保持着很多项目型组织的特征,拥有很大职权的专职项目经理和专职项目行政管理人员。
弱矩阵型组织:
平衡矩阵型组织:
强矩阵型组织:
复合型组织:
适用的生命周期结构具有以下特征:
(1)成本与人力投入在开始时较低,在工作执行期间达到最高,并在项目快要结束时迅速回落。
(2)风险与不确定性在项目开始时最大,并在项目的整个生命周期中随着决策的制定与可交付成果的验收而逐步降低。
采用项目阶段结构,把项目划分成合乎逻辑的子集,有助于项目的管理、规划和控制。
所有的项目阶段都具有以下类似特征:
对于多阶段项目而言,各个阶段之间可能存在不同的关系(交叠、 顺序、 并行)。
一般将软件开发分为: 可行性分析(计划)、 需求分析、软件设计(概要设计、 详细设计)、 编码(含单元测试〉、 测试、 运行维护等几个阶段。
(1)从上一项开发活动接受该项活动的工作对象作为输入。
(2)利用这一输入,实施该项活动应完成的工作内容。
(3)给出该项活动的工作成果,作为输出传给下一项开发活动。
(4)对该项活动的实施工作成果进行评审。 若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前工页的活动。 尽量减少多个阶段间的反复。以相对来说较小的费用来开发软件。
螺旋模型是一个演化软件过程模型,将原型实现的选代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来。 使得软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。在早期的选代中,发布的增最可能是一个纸上的模型或原型;在以后的迭代中,被开发系统的更加完善的版本逐步产生。
螺旋线代表随着时间推进的工作进展;开发过程具有周期性重复的螺旋线状。 四个象限分别标志每个周期所划分的四阶段: 制订计划、 风险分析、 实施工程和客户评估。 螺旋模型强调了风险分析,特别适用于庞大而复杂的、 高风险的系统。
水平方向为时间维,从组织管理的角度描述整个软件开发生命周期,分四个阶段:初始、细化、构造、移交,可进一步描述为周期(Cycle),阶段(Phase)、 迭代(Iteration);核心工作流从技术角度描述迭代模型的静态组成部分,包括:业务建模、 需求获取、 分析与设计、实现、 测试、 部署。
(1)初始阶段: 系统地阐述项目的范围,选择可行的系统构架,计划和准备业务案例。
(2)细化阶段: 细化构想,细化过程和基础设施,细化构架并选择构件。
(3)构造阶段: 资源管理、 控制和过程最优化,完成构件的开发并依评价标准进行测试,依构想的验收标准评估产品的发布。
(4)移交阶段: 同步井使并发的构造增量集成到一致的实施基线中,与实施有关的工程活动(商业包装和生产、人员培训等)根据完整的构想和需求集的验收标准评估实施基线。
V模型从整体上看起来,就是一个V字型的结构, 由左右两边组成。 左边的下画线分别代表了需求分析、 概要设计、 详细设计、 编码。 右边的上画线代表了单元测试、 集成测试、 系统测试与验收测试。
它的重要意义在于,非常明确的表明了测试过程中存在的不同的级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系。
(1)单元测试;验证软件单元是否按照单元规格说明(详细设计说明)正确执行,即保证每个最小的单元能够正常运行。 单元测试一般由开发人员来执行,首先设定最小的测试单元,然后通过设计相应的测试用例来验证各个单元功能的正确性。
(2)集成测试:检查多个单元是否按照系统概要设计描述的方式协同工作。 集成测试的主要关注点是系统能够成功编译,实现了主要的业务功能, 系统各个模块之间数据能够正常通信等。
(3)系统测试:验证整个系统是否满足需求规格说明。
(4)验收测试:从用户的角度检查系统是否满足合同中定义的需求或者用户需求。
V模型的特点:
V模型体现的主要思想是开发和测试同等重要,左侧代表的是开发活动,而右侧代表的是测试活动。
V模型针对每个开发阶段,都有一个测试级别与之相对应。
测试依旧是开发生命周期中的阶段,瀑布模型不同的是,有多个测试级别与开发阶段对应。
V模型适用于需求明确和需求变更不频繁的情形。
原型化模型第一步就是创建一个快速原型,能够满足项目干系人与未来的用户可以与原型进行交互,再通过与相关干系人进行充分的讨论和分析,最终弄清楚当前系统的需求,进行了充分的了解之后,在原型的基础上开发出用户满意的产品。 在实际的项目过程中步借助于组织过程资产以及快速模型软件, 一般在需求分析的时候,就可以建立一些简单的原型。原型化模型是极具意义的项目实践。先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。
原型化模型适于用户需求开始时定义不清、管理决策方法结构化程度不高的系统开发,开发方法更易被用户接受;但如果用户配合不好,盲目修改,就会拖延开发过程。
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,相对于传统软件开发方法的 “非敏捷”更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
Scrum 是一种选代式增量软件开发过程,通常用于敏捷软件开发。
项目管理就是将知识、技能、工具和技术应用于项目活动之中,以满足项目的要求。它是通过利用项目管理知识、技能、工具和技术的过程实现的,这些过程凭借每个过程的输入条件创造出成果。
过程就是一组为了完成一系列事先指定的产品、 成果或服务而需执行的互相联系的行动和活动。
软件开发项目的面向产品的过程一般有: 需求获取、 需求分析、 概要设计、 详细设计、 编码、 单元测试、 集成测试、 验收测试和安装部署等。
项目管理各过程组成的 5 个过程结可以对应到 PDCA 循环,即戴明环:“计划(Plan)一 执行(Do)—— 检查(Check)一 行动(Act)" 循环。
2.7.1 项目管理过程组
①启动过程组:②计划过程组:③执行过程组:④监督与控制过程组;⑤收尾过程组。