重量级IT项目敏捷管理方法研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重量级IT项目敏捷管理方法研究
[摘要]重量级IT项目具有高度复杂性和不确定性,以过程为基础的项目管理需要借敏捷方法加以改进。本文以阐明IT项目的复杂产品系统特性为起点,从复杂产品系统的模块化及分解入手,讨论了IT产品的动态形成过程,提出了一个重量级IT项目敏捷管理方法框架。在该方法中,探讨了复杂产品分解的随机Petri网概念模型、柔性团队行为模型、重载方法适度规范集以及基于知识转移的敏捷开发过程。
[关键词]IT项目管理;敏捷思想;管理框架;柔性团队
doi:10.3969/j.issn.1673-0194.2009.15.003
IT项目敏捷开发方法,具有早期客户参与、快速迭代交付、自组织团队、柔性等典型特征[1],能够提供客户满意的知识产品,非常适用于特定的环境——高风险、不可预测和小规模的探索型软件研发项目[2]。但是,软件产品的规模日益庞大,重量级IT项目越来越多。相对而言,重量级IT项目具有较高的复杂性和不确定性,风险性、不可预测性也更高。本文针对重量级IT项目敏捷管理的需要,提出一个基于敏捷开发过程的重量级IT项目管理框架,反映传统开发方法的敏捷性改造,为改进重载方法过程、提高开发效率和产品质量提供基本思路。
1 IT复杂产品系统及其模块化
复杂产品系统(Complex Product Systems, CoPS)指高成本的、技术密集型的、用户定制、单件或小批量生产的生产资料、系统、网络、控制单位、软件包、建筑物和服务[3]。
IT产品规模日益庞大,其复杂性也日益增加。一方面,软件规模的扩展意味着功能扩展,整个软件的复杂度以更大的非线性增长。另一方面,软件本身的技术复杂性引发了更多的管理复杂性。Ren和Yeo认为[4],IT项目是典型的基于人工的,实质上更富个人主义色彩,因而难以预测、控制和自动化。虽然有效的管理系统和管理过程是必要的,但多数软件工程对规范系统背后的不确定性、不规范性估计不足。因此,工具与系统难以与项目绩效关键因素充分有效地结合,这些因素包括个体动机与决策、领导质量的变化、杂乱(messy)的工作环境等。在沟通与团队建设、关系与接口、培训、领导力等方面的不足与失效,拖累了太多的软件项目。因此,以ERP系统为代表的大型IT项目属于复杂产品系统范畴[5]。
对于复杂产品系统的开发,一般应首先采取模块化方法进行分解,才能有效实现产品目标。Simon等提出了系统的层级特性和可分解特性以便于降低系统的复杂性,并研究了软件结构化设计程度与软件复杂性、多变性和改进之间的相互关系,系统地提出了复杂产品系统的特性和划分准则[6][7]。IT产品的模块划分是在对整个产品系统框架以及功能需求分析的基础上,将整个IT产品系统的研发任务按照应用技术类别划分为相对独立的模块/子系统进行的,在各模块开发完成后,交给集成商整合为一个完整的复杂产品系统。在这个意义上说,模块化是实施复杂产品系统的前提条件或必要条件。
2 IT产品的动态形成过程
从IT项目复杂性可以看出,IT项目最终交付的软件产品,是多种知识、资源动态结合而成的知识产品。不少学者[8]认为,敏捷产品是知识产品,产品的价值主要产生于它所包含的知识,而非产品的有形部分,同时认为过程也是一种知识产品。Wang[9]认为,ERP实施的关键是组织中系统和过程的相互适应,ERP系统知识必定产生于实施过程,并反映于产品之中。
ERP系统作为一种典型的IT复杂产品系统,反映了重量级IT项目复杂性的两个方面:一是最终知识产品的高度复杂性,是业务知识、管理模型和软件技术的综合体;二是知识产品生产过程的复杂性,即据以对用户需求的预测,以人为载体的多种知识、资源的相互作用、相互影响、相互结合,由于人的因素,过程管理具有较大的不确定性、不可预见性。实践中,IT复杂产品系统的第二个复杂性,即动态生产过程的复杂性要远远高于第一个复杂性,而项目成败也多决定于此,项目风险的控制也主要存在于此。
3 基于敏捷过程的重量级IT项目管理框架
基于敏捷过程的重量级IT项目管理框架,力图达到的目标是:依据―敏捷灵活‖与―过程规范‖相平衡的原则,解决长周期性、高集成性、功能全面性等重量级项目特性下敏捷方法的有效性。框架的核心思想是:①建立复杂产品架构及系统动力学模型,实现复杂产品基于动态关系的分解与优化,导出最优知识产品单元划分;②构造基于多智能主体的柔性团队,设定团队内部协同的元规则,设定团队功能绩效指标,实现外科手术式团队构建和能力评价;③基于能力的柔性团队与知识产品单元匹配,根据团队特性分配开发任务;④基于适度规范的过程管理,微观上是柔性团队的自组织迭代,宏观上是过程管理的规范框架,实现重量
级IT项目的动态、柔性、规范。框架内容如图1所示。
3.1 IT复杂知识产品的模块化分解
传统软件架构理论一般基于产品功能的静态划分[6],主要从信息流角度考虑模块单元的内聚与耦合关系,更多来自于项目初期基于需求的预测和设计;而敏捷方法更关注过程中需求创新,趋于对最终目标的逼近,是一种迭代更替渐进式方式。因此,此种方式下,关于知识产品的模型表述,势必与传统软件架构描述方法有所不同。复杂IT项目的模块化除了考虑最终知识产品的功能特征外,还要考虑开发过程的协同与控制问题。为此可以建立IT产品基于最小完备单元图的随机Petri网模型[10],采用消解规则进行系统分析,静态分析和动态分析相结合,有效地反映产品结构中任务执行或信息传递的主要特征,反映知识产品单元之间顺序、并行、交叉等多种复杂的网状动态结构关系。
随机Petri网模型中,用变迁表示单元本身,而变迁之间的关系则代表单元之间的关系。根据每个变迁(单元)的内在特征,可形式化定义为一个七元组:
P=(As, PI,PO, C1,C2,E,Ms),
即{活动,输入产品,输出产品,前置条件,后置条件,环境,度量指标}。
其中,As(Activities)指开发过程中的具体活动,构成了功能模型。活动在人或程序的操作下,将输入产品转换成输出产品。时间、优先级、风险等是活动的关键属性。产品PI (Input products)是指活动被输入或引用的相应程序、文档和数据。PO(Output products)指活动输出的成果,也是相应的程序、文档和数据。PI,PO是原子的,或者是包括其他产品的复合产品,构成了产品模型。C1,C2分别为活动的前置条件和后置条件,由活动间和活动产品间的约束关系组成。E是开发活动中涉及的环境及资源,包括场地、人员、工具、机器、技术等,是开发