1 软件交付项目管理面临的挑战项目管理者联盟
软件交付项目管理的特殊性在于其管理对象是软件交付,虽然其基本管理思想和管理方法都跳不出通用项目管理范畴,但其面临的全球化、复杂性和治理等方面的独特问题,迫使相关人员不断地去思考和创新软件交付方法和项目管理模式。项目管理者联盟
创新时代企业发展速度的加快和全球化软件交付模式的出现,给软件交付项目管理带来了很多挑战,这些可以总结归纳为四个方面:复杂性、团队、流程和工具。在漫长的IT系统建设过程中,技术的进步、语言的变迁、系统平台的演进以及Web2.0的出现,项目管理者联盟
往往会给企业留下错综复杂的IT基础架构和遗留系统。面对百花齐放的软件开发方法,软件开发团队想方设法建立合适的流程,提高流程的敏捷性,增加业务的响应速度。然而企业内部普遍存在的工具竖井,导致不同的工作环节有不同的工具、流程和数据,
这些内容无法整合,就无法提供应用生命周期管理的能力。所有这些正带给今天的软件开发团队前所未有的挑战。项目管理者联盟
1.1 软件交付项目工件和活动管理的挑战项目管理者联盟
首先分析一下软件交付过程本身。和人类的其他生产过程一样,软件生产过程就是作为软件交付主体的人或团队,通过项目管理、需求分析、设计、开发、测试和发布等一系列活动,生产出各种工件(交付物),项目管理者联盟
实现软件从早期的需求,到中期的架构和代码,再到可运行的发布版本的不断演进。与任何生命体的成长过程类似,在周而复始的活动到工件的交替过程中,会产生许多软件产品的阶段产物(版本),它们代表了软件产品生命历程的一个快照。blog.mypm.net
所有这些快照的集合,记录了软件产品从孕育出生到长大成熟的整个生命发展历程。这期间,作为软件生产过程中的主体,人(团队)起到了重要作用,是人(团队)凭借其无比的智慧和经验,始终“呵护”着软件产品,项目管理者联盟
完成其从“童年”、“少年”、“青年”到“成年”的成长历程,处理各种突发事件。项目管理者联盟
由此可见,软件交付项目最基本的要素,就是作为项目主体的人,及其执行的各种活动和产生的各种工件。整个软件交付生命周期正是在这种以人为主体,以活动和工件为核心的循环往复中,不断向满足利益相关方需求的软件产品靠近。项目管理者联盟
因此,管理好了活动和工件这两个部分,整个软件交付生命周期就会变得清楚明白,团队协作的力量就会慢慢绽放。这也回答了为什么近些年关注软件交付活动管理的需求管理、变更管理和关注工件管理的配置管理工具会如此盛行,成为很多企业进行过程改进工作的首选。training.mypm.net
因此,提高软件交付团队的需求管理、配置管理和变更管理能力,是软件交付项目管理面临的首要挑战。项目管理者联盟
1.2 软件交付项目进度估计的挑战项目经理圈子
如何评估软件交付项目的进度,是软件交付项目管理面临的又一大挑战。对于土木工程项目来说,项目进度一目了然。然而,如果采用传统的瀑布模型,在软件交付项目的大多数里程碑,项目的交付物只是一堆文档或代码,club.mypm.net
它们就是项目管理团队赖以评估项目进度的唯一依据,进度评估更多地靠主观估计,而不是客观度量,无法客观考虑项目的不确定性、风险和质量偏差导致的进度延期,其结果并不可靠。项目管理者联盟
因此,在整个软件交付生命周期中,项目计划始终是动态的、不断向目标演进的路标。出现偏差然后修正,这一循环贯穿了项目执行的始终。在采用传统瀑布模型的软件交付项目中,整个项目的风险是在系统集成阶段才迅速降低,而系统集成阶段却发生在整个生命周期的后端,PgMp.mypm.net
从而造成项目风险和不确定性在整个生命周期中难以快速降低,项目进度难以控制。因此,常常可以听到人们笑谈软件开发的“二八”原则,即当软件项目完成80%时,剩下的20%的工作量往往会消耗掉80%的时间。出现这一现象的根本原因,正是软件项目进度难以估算。项目管理者联盟
1.3 软件交付项目需求不断变更带来的挑战club.mypm.net
软件交付项目的另外一个重大挑战来源于软件需求的善变,这是快速发展的业务环境的特产,也是激烈的市场竞争环境的必然结果。对于软件项目来说,项目范围并不是一个需求文档或合约,而是一个持续谈判和变更的过程。talent.mypm.net
软件的特殊形态决定了在软件发布之前,软件本身一般是看不到、摸不着的,没有人知道未来的软件到底是什么样子。因此,在项目开始阶段,要想把软件需求说得清清楚楚,基本上是不可能的事情。
而且,需求沟通本身就是一个启发的过程,在用户还没看到可运行的软件之前,本身也很可能不清楚自己的真实需求。而一旦用户看到了实际可运行的软件,人类创造性的思维能力就仿佛瞬间开足马力,新的想法和要求不断奔涌。项目管理者联盟
2 敏捷开发和项目管理方法项目管理者联盟
为解决软件交付项目管理面临的挑战,软件工程领域催生了敏捷开发方法。2008年,IBMRational推出大规模敏捷(Agile@Scale)最佳实践,明确指出了以迭代式软件开发、两级项目规划、整体团队协作、持续集成和测试驱动开发作为敏捷过程的核心最佳实践,项目管理者联盟
无缝集成IBMRational最新推出的协作的应用生命周期管理平台。这一最佳实践不但全面地诠释了敏捷开发的实施方法,还能够帮助团队快速建立敏捷项目管理能力,从容应对软件开发项目所面临的各种挑战。项目管理者联盟
|