软件项目管理教程
软件项目管理实用教程
前言
“和谐”是软件项目管理的精髓。
软件项目管理是一门科学也是一门艺术。我们既要遵循科学的规律去管理软件项目,也要因地制宜,灵活机动,随行就市地做好项目中的每一个子任务,实现每个子目标。
如何做好项目管理?作者以为,我们需要知晓如何定义项目的目标,制定项目的目标计划;需要知晓项目的开发周期、开发模型与开发步骤,做好软件项目的系统分析与设计;需要知晓如何建立项目质量的标准体系,定期和不定期地进行项目质量的检查与评比;需要知晓如何分析一个项目的工作任务结构,制定出项目的工作计划(时间计划)和成本计划;需要依据项目的工作任务结构(WBS)来预知、规避与处理项目的风险,做好项目的风险计划;需要知晓如何招募项目组成员,有效地分配项目任务,并带领您的项目团队在规定的时间内,以有限的项目资源(人、财、物与时间)去实现一个既定的项目目标。
本书结合我国目前软件项目开发与管理的实际,在上述几个方面都做了简要与实用的阐述,希望您能从中获得收益,在以后的软件项目开发活动中取得成功。
本书的任务与目的: (1)定义项目范围; (2)预估项目工作量;
(3)编制项目计划、成本计划、风险计划; (4)如何做好系统分析;
(5)如何做好软件系统的架构设计; (6)项目团队建设;
(7)软件质量分析与管理; (8)项目变更控制与管理;
(9)软件项目的招投标、项目立项、可行性分析、合同签订、项目验收等。
1
软件项目管理教程
第1章 项目管理综述
我们的企业要两条腿走路,一个是科学技术,一个是项目管理。
——华罗庚
1.1什么是项目
项目是为完成某个独特的产品或服务所做的一次性任务。 软件项目的特点:
(1)项目是一项有计划的活动。若一项工作的开展与完成无需与之对应的工作目标计划、工作任务计划、工作时间计划、工作成果质量计划与资源(人、财、物、时间)使用计划,我们就不能把该工作看做为一个项目,也就是说,项目是一项耗时长,有一定技术难度,相对复杂,且需要消耗一些资源的工作。
(2)项目是一项基于日常工作与科学探索之间的活动。从一般概念上来讲,日常工作应该是简单的,容易完成的,具有固定的工作流程与工作模式,变化小,挑战性低,工作结果具有明显的确定性;科学探索活动尽管拥有坚实的理论体系,科学的探索途径,但需要多长的时间,其工作结果怎样却不能预先知晓。
软件项目工作居于上述两者之间,既拥有枯燥繁杂的日常工作之特点,也拥有自身的理论体系,具有一定的技术性与挑战性,吸引了一批又一批,一代又一代的仁人志士为之而奋斗。
(3)项目是一项具有确定的工作目标,需要产出固定的项目产品或需要实施与完成项目所规定的若干服务。比如开发出一套ERP软件系统或完成ERP软件系统中的数据库系统的升级。
(4)项目具有预先确定的时间周期。比如用一年的时间开发出一套ERP软件系统或用三个月的时间为某个企业实施ERP软件系统。
(5)项目是一群人的工作,需要相互合作,共同完成,不是只由你自己也不是只需要你自己就能完成的工作。
(6)项目需要专家的支持与参与,需要拥有广泛的领域知识与一定的专业技术,不是一般人所能胜任与完成的工作。该特性强调了项目工作的难度与复杂性。
(7)项目需要分阶段完成。该特性强调了项目工作的长期性,项目成果的阶段性,同时也指明了项目最终目标实现的途径。
(8)所需的项目资源是有限的,是受限的。
软件项目的分类:
? 按规模划分,可分为大型项目、中型项目和小型微型项目等。 ? 按软件开发模式划分,可分为组织内部项目(软件产品项目)、为用户开发的外部
项目(定制项目)和软件外包项目(承接子模块、子系统)。
? 按产品交付类型划分,可分为产品型项目、一次型项目。产品型项目往往来源于多
个的一次性项目。
2
软件项目管理教程
? 按软件商业模式划分,可分为软件产品销售、在线服务(SaaS)两种模式,或者分
为随需服务模式(on-demand)和内部部署(on-premise/on-Site)模式。
? 按软件发布方式划分,可分为新项目、重复与类似项目,也可分为完整版本、次要
版本或服务包(service pack)、修正补丁包 (patch)等。
? 按项目待开发的产品划分,可分为组织型、嵌入型和半独立型。
? 按系统架构划分,可分B/S、C/S多层结构,也可分集中式系统和分布式系统,或
者分为面向对象、面向服务、面向组件等类型。 ? 按技术划分,可分为Web应用、客户端应用、系统平台软件等,也可分为J2EE、.Net
等不同平台之上的项目。
1.2什么是项目管理
PMBOK(Project Management Body of Knowledge,项目管理的知识体系)给出的定义: 项目管理是为了满足项目需求,在项目活动中采用的知识、方法、技术和工具的集合。
PRINCE2(PRoject IN Controlled Environment,受控环境下的项目管理)给出的定义:项目管理是对项目各个方面的计划、监督和控制,并激励项目的所有参与人员去达到项目的时间、质量、成本、性能等多方面的目标。
作者特别推崇PRINCE2给出的定义。PRINCE2 由英国政府商务部(OGC)所有,于1996年开始推广,它的运用不仅仅局限于在英国,事实上成为了所有类型项目的管理标准,并已迅速发展成为国际标准。世界各地的许多企业将其作为他们管理项目的首选方法。PRINCE2描述了如何以一种有逻辑性的、有组织的方法,按照明确的步骤对项目进行管理。PRINCE2不是一种工具也不是一种技巧,而是结构化的项目管理流程,这也是它为什么容易被调整和升级,为什么适用于所有类型的项目的原因。 一般来说,项目管理包含下列一些活动:
(1) 计划---确定项目的目标即确定要做什么,实现目标需要多长的时间(How long
的问题)和成本(How much的问题),项目的质量标准是什么,质量如何保证,目标的实现过程中可能会出现什么样的风险;
(2) 组织---做项目需要有一个合法的机构,需要有一个能战斗的团队,在恰当的机
构组织内做好各方面的安排(人、财、物与时间的安排);
(3) 人员---让合适的人做合适的事。遵循能者多劳,把不合适的人今早地踢出项目
团队的原则;
(4) 指导---解决困难与冲突。困难有在实现目标的多种方法与途径中选择一合适方
法与途径的困难,有某些实现技术上的困难,有人员短缺、时间紧迫、资金不足等等方面的困难;
(5) 监督---确保按计划开展,即确保项目能在规定的时间、规定的成本、规定的质
量要求下完成;
(6) 控制---及时弥补项目缺陷。例如:某团队成员离岗了怎么办?某人员最近制造
的错误非常地多怎么办?眼看项目的截止时间快到了,但任务还有许多没完成怎么办?
(7) 创新---提出问题的新的解决方案,乃至提出新的问题。创新是一个软件企业的
最核心的竞争力;
(8) 关系---与客户、用户、软硬件系统供应商、咨询顾问、团队其他人员等项目利
益人(Stakeholder)保持联系。
3
软件项目管理教程
图1.2.1我说你做就是管理
项目管理的四要素是:项目范围、项目时间、项目成本(资金预算)与项目质量。它们之间的关系如图1.2.2所示。
任务 Task 质量 quality 时间Schedule 成本 平衡 图1.2.2 项目管理要素间的和谐关系
4
Cost
软件项目管理教程
项目管理的本质是:如何让项目团队成员依据项目的开发制度与过程,运用必备的软件工具,在确定的项目范围之内,以计划好的时间与成本,制造或完成满足质量要求的产品或服务。项目管理的本质如图1.2.3所示。
范围 预算
人过程工具时间 项目管理 质量
目 标
图1.2.3项目管理的本质
项目成功的标志有如下几点:
? 在规定的时间内完成已知的项目;
? 项目成本控制在预算之内(过底的成本不一定是好事); ? 功能特性(项目质量)达到规格说明书所要求的水平; ? 项目通过客户或用户的验收;
? 项目实施者收到了全部的项目经费(最重要的标志); ? 项目范围变化是最小的或可控的;
? 没有干扰或严重影响整个组织的工作流程。
项目管理成功要素有下列几点:
? 制定计划:预估和确定项目的工作量大小、所需资源和进度、风险应对措施等; ? 建立组织:建立项目组,并有明确的角色定义和任务分工;
? 配备资源:任用各种层次的技术人员和管理人员,以及准备所需的软硬件; ? 监控执行:协调项目各方人员,监控各种风险,督促项目进展,随时检查实施情况,
确保项目按计划进行,按时、按质完成任务;
? 总结提高:项目完成后,及时进行总结,吸取教训,分享经验,丰富组织的项目管
理数据库或知识库。
项目实施过程中的项目状态与项目成功要素之间的关系如图1.2.4所示。
5