1.2 软件项目管理
从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度和质量顺利完成,而对成本、人员、进度、质量和风险等进行分析和管理的活动。软件开发不同于其他产品的制造,软件开发的整个过程都是设计过程(没有制造过程)。另外,软件开发不需要使用大量的物质资源,主要是人力资源,并且软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性。下面是软件项目管理的几个属性。
· 一个目标:实现项目干系人对项目的要求和期望。
· 两个管理:项目干系人管理,项目干系人的需求与期望不断的变化;项目阶段管理,项目产生和存在的环境也在不断变化。
· 三种约束:时间、成本和范围,任何一个元素的变化都会引起整体的变化。
· 四个阶段:定义(需要做什么)、计划(什么时候做)、实施(如何做)和收尾(验证是否正确)。
· 五个过程:启动、计划、执行、监控和收尾。
· 九大体系:整合、范围、时间、成本、质量、人力、沟通、风险和采购。
以上属性是从PMP中梳理出来的,它对应的是传统的CMMI管理模型,共分为5个级别、22个KPA(Key Process Area)。PMP管理理论和CMMI管理模型都采用传统瀑布式软件开发模型,如图1-2所示。
图1-2 瀑布式软件开发模型
软件项目开发过程除了传统的瀑布型开发(Waterfall Development)模式,还有敏捷开发(Agile Development)模式。敏捷开发模式只是一个笼统的概念,可以细分出很多子模式。
· 极限编程(Extreme Programming,简称XP)。XP是由KentBeck在1996年提出的,是一种近螺旋式的开发方法。XP注重的核心是沟通、简明、反馈和勇气,要求纪律性,提倡测试先行。
· Scrum。Ken Schwaber 和Jeff Sutherland 于1995年OOPSLA大会上首次介绍了Scrum。Scrum是一个包括了一系列实践和预定义角色的过程,是迭代的增量化过程。
· 透明水晶方法(Crystal)。Crystal是由Alistair Cockburn 和 Jim Highsmith 建立的敏捷方法系列,其目的是发展一种提倡"机动性的"方法。
· 特征驱动开发(Feature-Driven Development,简称FDD)。FDD由Peter Coad、Jeff de Luca和Eric Lefebvre共同开发,1999年首次在《Java彩色UML建模》书中提出,是一个以客户为中心和以架构为中心的实用软件过程。
· 自适应软件开发(Adaptive Software Development,简称ASD)。ASD由Jim Highsmith在1999年正式提出。ASD关注于快速创建开发软件系统。
如图1-3所示是典型的敏捷开发模式的项目开发过程。从需求、计划、开发、测试,直到回顾,整个周期一直在迭代中,而其中的开发、测试、发布又可以单独迭代多次。
图1-3 敏捷开发过程
采用敏捷开发模式容易有一些误区。
· 误区一:敏捷开发意味着不要文档。敏捷开发同样需要文档,敏捷只是一些实践的结合。
· 误区二:敏捷只适用于小项目。
· 误区三:敏捷只会对研发产生改变,管理者不需要亲自了解敏捷,只要管理上支持。
· 误区四:敏捷只注重快速交付,架构不重要。
有适合传统瀑布式开发的CMMI管理模型,也有适合敏捷开发的Scrum模型。图1-4很好地解释了瀑布式模型与敏捷式模型的差别。瀑布式模型分为计划、分析、设计、程序开发、测试、修改和整合,一个阶段结束,另一个阶段接着开始。而敏捷式模型着重迭代式开发,分析、设计、开发、测试和发布会不停地迭代直至需求完成、产品上线。
图1-4 瀑布式模型与敏捷式模型的区别
选择项目开发模式时,读者应该明白没有哪个模型是绝对正确的。正如英国的乔治·博克斯(George Box)说过的一句话,"所有的模型都是错的,但有些却是有用的"。选择模型时,一定要选择适合这个项目的,要在实践过程中不停地调整,使其适应整个项目开发,并且保证执行顺利。
提示:适合公司的、项目的、团队的模型就是最好的模型。
上面主要讲解了公司的管理规范和开发模式,下面讲解软件工程师关注的管理证书。
针对个人项目管理证书的管理体系如表1-3所示。
表1-3 项目管理体系的对比
(2)七大主题:商业论证、组织、控制、风险、质量、变更、进展。
(3)七大过程:项目准备、项目启动、项目指导、阶段控制、阶段边界管理、产品交付管理、项目收尾 (1)项目管理知识体系:
- 项目和项目管理;
- 项目开发的四个阶段,即概念阶段、规划阶段、实施阶段和收尾阶段;
- 项目管理方法与工具。
(2)ICB3.0能力基准 (1)项目及生命周期:项目定义、项目管理定义、项目生命周期定义。
(2)五大过程组:启动、规划、监控、执行、收尾。
(3)九大知识领域:整合、范围、成本、进度、质量、人力资源、沟通、风险、采购
PRINCE2、PMP和IPMP三大国际主流项目管理体系是目前行业内最流行的。IT工程师或者IT项目经理非常热衷考PMP证书有两个原因,第一个原因是PMP宣传得当,第二个原因是PMP证书的推广遥遥领先另外两个证书的推广。PMP理论通俗易懂,而且在项目上比较容易推广,适合中国的IT公司。
本文选自《质量全面管控—从项目管理到容灾测试》第一章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。